Repository navigation
fix(llm): default to claude-opus-5-5 from one owner; keep claude-opus-5 on the ladder - #1941
Conversation
…-5 on the ladder The default Claude model was the previous-generation claude-opus-5, and it was spelled out again in the quantization runner, the report client (three times), the proposal-scorer defaults and the --proposal-scorer-models help text, so a default change had to be found and repeated by hand. DEFAULT_CLAUDE_MODEL is now claude-opus-5-5, the current Opus, and every code-side default derives from it (the help text renders %(default)s). claude-opus-5 stays in the allowlist as the second rung, so a gateway that serves Opus 5 but not 5.5 falls back one generation, not two, and an explicit --claude-model claude-opus-5 is still accepted under the strict allowlist. Docs and the setup skill name the new default; the AMD proxy template keeps its pinned ids, which an operator chooses for their gateway. Refs #1936 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HktBcjPwjE7QgkA8MgKH6q
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HktBcjPwjE7QgkA8MgKH6q
Code metrics gate: PASSEDJudged: the 23 files this change touches. Files it does not touch never fail it; anything found there is listed under Outside this change for information.
Module length warning: over 800 lines, within the 1200-line failure limit (not failing): 1
Already over at the base (backlog, not this change's): 1
96 findings in files this change does not touchOutside this change (informational): 96
...and 71 more; the job log lists every row.
Thresholds and sources: |
chaojhou
left a comment
There was a problem hiding this comment.
PR #1941 -- fix(llm): default to claude-opus-5-5 from one owner; keep claude-opus-5 on the ladder
What it does: moves DEFAULT_CLAUDE_MODEL (common/llm_config.py) from claude-opus-5 to claude-opus-5-5 and makes the copies that hard-coded the old id (quantization runner, the three report-client defaults, the proposal-scorer list and its --proposal-scorer-models help) derive from it; claude-opus-5 stays second on the strict allowlist ladder, so a gateway without 5.5 falls back to it and an explicit claude-opus-5 remains valid. Docs, the setup skill and the GEAK shell fallback name the new default.
Blocking issues: none
Checked: llm_config.py default and resolve path; credentials._CLAUDE_ALLOWED_MODELS; the --proposal-scorer-models default and help at parser.py:924-937; every remaining claude-opus-5 literal at head; model-id keyed logic (KernelForge adaptive-thinking parser, provider-reported cost in tracker/usage.py); docs naming the default | Ran: git grep over the head tree, gh api for checks and comments | Base: 7ff5758 | Head: bead7c2
DEFAULT_CLAUDE_MODEL(common/llm_config.py) moves fromclaude-opus-5toclaude-opus-5-5, the current Opus (per the Claude model table: Opus 5 is still served but is the previous generation; 5.5 is the successor, $4/$20 vs $5/$25 per MTok). The literal was also repeated inagents/quantization/driver/runner.py,breakdown/reporters/llm_client.py(×3),orchestrator/scoring/proposal_scorer.py, and the--proposal-scorer-modelshelp string; those now derive from the constant (the help renders%(default)s)._CLAUDE_ALLOWED_MODELSkeepsclaude-opus-5as the second rung, so the catalog fallback ladder is5-5 → 5 → 4-8 → 4-7 → 4-6, and an explicit--claude-model claude-opus-5stays valid underINFERENCE_OPTIMIZER_ALLOW_CUSTOM_ORCH_MODEL=0. Docs (install, slurm, authentication, SKILL, troubleshooting), the setup skill's default option andinstall_kernel_tools.sh's shell fallback name the new default.Deliberately unchanged:
assets/slurm/proxy.env.templatekeeps its pinnedclaude-opus-5values (AMD gateway operators pin what their gateway serves; GEAK has no catalog fallback), only its ladder comment is updated;.env.template's commented "pin an older id" example.Opus 5.5 request-shape check: no forced
tool_choice(any/tool) anywhere;temperatureis only sent when a caller sets it, and the one caller that does is the OpenAI-protocol report client; KernelForge's_supports_adaptive_thinkingparsesclaude-opus-5-5as major 5 → adaptive thinking, neverbudget_tokens(now pinned by a test case).test_agent_roles_and_policyladder,test_proposal_scorer,test_reporters_llm_client, KernelForgetest_resolve_and_cli,test_agent_env_contract,test_claude_resume,test_provider_registry); addedclaude-opus-5-5to the adaptive-thinking cases. Tests that passclaude-opus-5as an explicit input are unchanged. 93 test files touching the default / allowlist / scorer / report client / runner / parser / docs: 3616 passed; 13 fail identically on cleanmainin this environment (all intest_install_rocprof_compute.py, host profiler-install probes).ruffclean;bash -non the installer;code-metricsPASSED.Live: an 8 h GLM-5.2 MXFP4 session ran its orchestration, critic and GEAK on
claude-opus-5-5(subscription auth, official endpoint).DEFAULT_CLAUDE_MODEL) remains, plus the shell fallback ininstall_kernel_tools.sh, which cannot import it.CLAUDE_MODEL/--claude-model, runs (orchestration, critic, report narrative, quantization agent, proposal scoring, GEAK fallback) now useclaude-opus-5-5; setup offersUse default (claude-opus-5-5). Before, they used the previous-generationclaude-opus-5. On a gateway without 5.5, preflight now printsWARNING — 'claude-opus-5-5' not in gateway catalog; falling back to 'claude-opus-5'.CLAUDE_MODEL=claude-opus-5keeps it, including under the strict allowlist.🤖 Generated with Claude Code