Skip to content

feat(codex-workspace): BOXP-379 localllm 創作既定を gemma4-26b へ戻す - #980

Merged
boxp merged 1 commit into
mainfrom
codex-task-board/BOXP-379-20261102T042828Z-e578c902-0223-4e1e-b07b-14bb0ca17b67
Nov 2, 2026
Merged

boxp merged 1 commit into
mainfrom
codex-task-board/BOXP-379-20261102T042828Z-e578c902-0223-4e1e-b07b-14bb0ca17b67

Conversation

@boxp

@boxp boxp commented Nov 2, 2026

Copy link
Copy Markdown
Owner

概要

BOXP-379: Owner の指示「localllm の創作系(coder でないほう)は gemma4 26b に戻したい」に従い、Task Board localllm docs 経路(groom / 生成 / Review 改稿で docs-model 未指定時)の既定モデルを BOXP-367 (#965) で設定した ornith15-35b-a3b から gemma4-26b へ復帰します。

変更

  • argoproj/codex-workspace/deployment.yaml: task-board-runner の CODEX_TASK_BOARD_LOCALLLM_MODEL を gemma4-26b に変更(コメントを BOXP-379 の判断へ更新)。
  • docs/project_docs/BOXP-379/plan.md: 計画・反映手順・確認・ロールバックを記録。

不変のもの

  • CODEX_TASK_BOARD_LOCALLLM_CODER_MODEL=qwen3-coder-next(coder 既定・router preset Qwen3-Coder-Next-Q4_K_S.gguf)
  • CODEX_NOVEL_BOARD_LOCALLLM_MODEL=gemma4-26b(Novel Board は元から Gemma)
  • argoproj/local-llm/models-config.yaml の preset(gemma4-26b = Gemma4-26B-A4B-QAT-Uncensored-HauhauCS-Balanced-Q4_K_M.gguf、ctx 262144。Ornith / 他候補 preset・weights は削除せず、MTP 等の不採用最適化は再有効化しない)

検証

  • kustomize build argoproj/codex-workspace/ 成功。kubectl --dry-run=client は Deployment を含む全リソースが configured、Calico NetworkPolicy のみ既存のローカル patch 制約で失敗(本変更と無関係)。
  • 反映は ArgoCD auto sync(Recreate rollout)。task-board runner は preStop の prepare-shutdown で計画停止し再開します。反映後に env readback と、非 canon の日本語 fixture 票での生成・改稿(model=gemma4-26b、fallback なし)を実施します。

ロールバック

CODEX_TASK_BOARD_LOCALLLM_MODEL の value を ornith15-35b-a3b に戻す PR。

🤖 Generated with Claude Code

Owner 指示により Task Board localllm docs 経路(groom/生成/Review 改稿)の
既定モデルを BOXP-367 で設定した ornith15-35b-a3b から gemma4-26b
(router preset Gemma4-26B-A4B-QAT-Uncensored-HauhauCS-Balanced-Q4_K_M、
ctx 262144、runner code default と同値)へ復帰する。

- CODEX_TASK_BOARD_LOCALLLM_CODER_MODEL=qwen3-coder-next は不変
- Novel Board の CODEX_NOVEL_BOARD_LOCALLLM_MODEL=gemma4-26b は元から不変
- Ornith/候補 preset・weights は削除しない(docs-model で明示選択可能)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Nov 2, 2026

Copy link
Copy Markdown
Contributor

ArgoCD Diff Result

Auth path: tailscale

アプリケーション: codex-workspace の差分

パス: argoproj/codex-workspace

===== apps/Deployment codex-workspace/codex-workspace ======
1354c1354
<           value: ornith15-35b-a3b
---
>           value: gemma4-26b
ℹ️ 上記の差分が見つかりました

@github-actions

github-actions Bot commented Nov 2, 2026

Copy link
Copy Markdown
Contributor

Chainsaw Manifest Validation

✅ 全テスト通過

テスト対象コンポーネント: ["codex-workspace"]

📦 codex-workspace

✅ PASSED

テスト出力を展開
Version: 0.2.15
Loading default configuration...
- Using test file: chainsaw-test
- TestDirs [./tests/chainsaw/codex-workspace]
- Quiet false
- SkipDelete false
- FailFast false
- Namespace ''
- FastNamespaceDeletion false
- FullName false
- IncludeTestRegex ''
- ExcludeTestRegex ''
- ApplyTimeout 5s
- AssertTimeout 30s
- CleanupTimeout 30s
- DeleteTimeout 15s
- ErrorTimeout 30s
- ExecTimeout 5s
- DeletionPropagationPolicy Background
- Template true
- NoCluster false
- PauseOnFailure false
Loading tests...
- codex-workspace-metrics (./tests/chainsaw/codex-workspace)
Loading values...
Running tests...
=== RUN   chainsaw
=== PAUSE chainsaw
=== CONT  chainsaw
=== RUN   chainsaw/codex-workspace-metrics
=== PAUSE chainsaw/codex-workspace-metrics
=== CONT  chainsaw/codex-workspace-metrics
    sink.go:61: ������������| 04:36:18 | �[32;1mcodex-workspace-metrics�[0;22m | �[32;1m@chainsaw            �[0;22m | �[32;1mCREATE�[0;22m    | �[32;1mOK�[0;22m    | v1/Namespace @ chainsaw-possible-polecat
    sink.go:61: ������������| 04:36:18 | �[36;1mcodex-workspace-metrics�[0;22m | �[36;1mrequire-isolated-kind�[0;22m | �[36;1mTRY�[0;22m       | �[36;1mBEGIN�[0;22m |
    sink.go:61: ������������| 04:36:18 | �[36;1mcodex-workspace-metrics�[0;22m | �[36;1mrequire-isolated-kind�[0;22m | �[36;1mCMD�[0;22m       | �[36;1mRUN�[0;22m   |
        === COMMAND
        /usr/bin/sh -c set -eu
        case "${CHAINSAW_KIND_CONTEXT:-}" in
          kind-*) ;;
          *) echo "An explicit isolated kind context is required; this suite is not read-only." >&2; exit 1 ;;
        esac
        : "${CHAINSAW_KIND_KUBECONFIG:?An isolated kubeconfig is required}"
        test -r "$CHAINSAW_KIND_KUBECONFIG"
        test "$(kubectl --kubeconfig "$CHAINSAW_KIND_KUBECONFIG" config current-context)" = "$CHAINSAW_KIND_CONTEXT"
        expected_server="$(kubectl --kubeconfig "$CHAINSAW_KIND_KUBECONFIG" config view --minify -o jsonpath='{.clusters[0].cluster.server}')"
        actual_server="$(kubectl config view --minify -o jsonpath='{.clusters[0].cluster.server}')"
        test -n "$expected_server"
        test "$actual_server" = "$expected_server"
    sink.go:61: ������������| 04:36:18 | �[32;1mcodex-workspace-metrics�[0;22m | �[32;1mrequire-isolated-kind�[0;22m | �[32;1mSCRIPT�[0;22m    | �[32;1mDONE�[0;22m  |
    sink.go:61: ������������| 04:36:18 | �[36;1mcodex-workspace-metrics�[0;22m | �[36;1mrequire-isolated-kind�[0;22m | �[36;1mTRY�[0;22m       | �[36;1mEND�[0;22m   |
    sink.go:61: ������������| 04:36:18 | �[36;1mcodex-workspace-metrics�[0;22m | �[36;1mapply-and-check      �[0;22m | �[36;1mTRY�[0;22m       | �[36;1mBEGIN�[0;22m |
    sink.go:61: ������������| 04:36:18 | �[36;1mcodex-workspace-metrics�[0;22m | �[36;1mapply-and-check      �[0;22m | �[36;1mCMD�[0;22m       | �[36;1mRUN�[0;22m   |
        === COMMAND
        /usr/bin/sh -c set -eu
        manifest="$(mktemp)"
        trap 'rm -f "$manifest"' EXIT
        "${REPO_ROOT}/tests/chainsaw/codex-workspace/render-minimal.sh" > "$manifest"
        kubectl apply --server-side -f "$manifest"
        if ! kubectl wait --for=condition=Available deployment/codex-workspace -n codex-workspace --timeout=180s; then
          kubectl describe pods -n codex-workspace || true
          kubectl get events -n codex-workspace --sort-by=.lastTimestamp || true
          exit 1
        fi
        kubectl exec -n codex-workspace deployment/codex-workspace -c ai-ops-metrics -- python -c 'import urllib.request as u; assert u.urlopen("http://127.0.0.1:9464/healthz").read().strip() == b"ok"; m=u.urlopen("http://127.0.0.1:9464/metrics").read(); assert b"ai_ops_stub_metric 1" in m and b"ai_ops_metrics_file_present 1" in m'
    sink.go:61: ������������| 04:36:58 | �[36;1mcodex-workspace-metrics�[0;22m | �[36;1mapply-and-check      �[0;22m | �[36;1mSCRIPT�[0;22m    | �[36;1mLOG�[0;22m   |
        === STDOUT
        namespace/codex-workspace serverside-applied
        configmap/codex-workspace-ai-ops-metrics-4c4t7dc569 serverside-applied
        deployment.apps/codex-workspace serverside-applied
        deployment.apps/codex-workspace condition met
    sink.go:61: ������������| 04:36:58 | �[32;1mcodex-workspace-metrics�[0;22m | �[32;1mapply-and-check      �[0;22m | �[32;1mSCRIPT�[0;22m    | �[32;1mDONE�[0;22m  |
    sink.go:61: ������������| 04:36:58 | �[36;1mcodex-workspace-metrics�[0;22m | �[36;1mapply-and-check      �[0;22m | �[36;1mTRY�[0;22m       | �[36;1mEND�[0;22m   |
    sink.go:61: ������������| 04:36:58 | �[36;1mcodex-workspace-metrics�[0;22m | �[36;1mapply-and-check      �[0;22m | �[36;1mFINALLY�[0;22m   | �[36;1mBEGIN�[0;22m |
    sink.go:61: ������������| 04:36:58 | �[36;1mcodex-workspace-metrics�[0;22m | �[36;1mapply-and-check      �[0;22m | �[36;1mCMD�[0;22m       | �[36;1mRUN�[0;22m   |
        === COMMAND
        /usr/bin/sh -c # kind は job ごとに破棄するので削除完了は待たない (python の PID 1 は SIGTERM で
        # 止まらず、待つと terminationGracePeriodSeconds の 30s がそのまま critical path に乗る)。
        kubectl delete namespace codex-workspace --ignore-not-found --wait=false
    sink.go:61: ������������| 04:36:58 | �[36;1mcodex-workspace-metrics�[0;22m | �[36;1mapply-and-check      �[0;22m | �[36;1mSCRIPT�[0;22m    | �[36;1mLOG�[0;22m   |
        === STDOUT
        namespace "codex-workspace" deleted
    sink.go:61: ������������| 04:36:58 | �[32;1mcodex-workspace-metrics�[0;22m | �[32;1mapply-and-check      �[0;22m | �[32;1mSCRIPT�[0;22m    | �[32;1mDONE�[0;22m  |
    sink.go:61: ������������| 04:36:58 | �[36;1mcodex-workspace-metrics�[0;22m | �[36;1mapply-and-check      �[0;22m | �[36;1mFINALLY�[0;22m   | �[36;1mEND�[0;22m   |
    sink.go:61: ������������| 04:36:58 | �[36;1mcodex-workspace-metrics�[0;22m | �[36;1m@chainsaw            �[0;22m | �[36;1mCLEANUP�[0;22m   | �[36;1mBEGIN�[0;22m |
    sink.go:61: ������������| 04:36:58 | �[32;1mcodex-workspace-metrics�[0;22m | �[32;1m@chainsaw            �[0;22m | �[32;1mDELETE�[0;22m    | �[32;1mOK�[0;22m    | v1/Namespace @ chainsaw-possible-polecat
    sink.go:61: ������������| 04:37:03 | �[36;1mcodex-workspace-metrics�[0;22m | �[36;1m@chainsaw            �[0;22m | �[36;1mCLEANUP�[0;22m   | �[36;1mEND�[0;22m   |
--- PASS: chainsaw (0.00s)
    --- PASS: chainsaw/codex-workspace-metrics (45.88s)
PASS
Tests Summary...
- Passed  tests 1
- Failed  tests 0
- Skipped tests 0
Done.

@boxp
boxp merged commit 049edad into main Nov 2, 2026
7 checks passed
@boxp
boxp deleted the codex-task-board/BOXP-379-20261102T042828Z-e578c902-0223-4e1e-b07b-14bb0ca17b67 branch November 2, 2026 04:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant