fix(daemon): add current-generation Claude models to the picker#6051
fix(daemon): add current-generation Claude models to the picker#6051sphinxcode wants to merge 1 commit into
Conversation
claudeAgentDef's fallbackModels was stuck on the 4.5 generation (claude-opus-4-5/claude-sonnet-4-5/claude-haiku-4-5) -- Fable 5, Opus 4.8, Sonnet 5, and the 4.6/4.7 tier were all missing, even though the CLI itself supports them (confirmed live: `claude --model claude-fable-5` completes a real turn) and clampClaudeReasoning already encodes per-model effort support for exactly these names. Added the current generation to the fallback list -- kept the old 4.5 entries for anyone still pinned to them, since this list is additive hints, not an exhaustive catalog. Added a test asserting every model clampClaudeReasoning's matrix names by id is also selectable, so the two lists can't drift apart again silently. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
Thanks @sphinxcode — keeping the Claude Code picker aligned with the currently supported model generation is a useful fix. I’m routing this through reviewer assignment now, and because this changes a user-facing runtime capability we’ll also queue it for QA before merge. |
mrcfps
left a comment
There was a problem hiding this comment.
Thanks @sphinxcode — the picker additions and focused regression coverage look sound, and the targeted daemon tests, daemon typecheck, and repository guard all pass locally. I left one non-blocking maintainability note about a synchronization claim that is not true on this standalone head; the functional change itself looks solid. Appreciate the focused fix and clear verification. 🙏
🔁 Powered by Looper · runner=reviewer · agent=codex · An autonomous AI dev team for your GitHub repos.| { id: 'opus', label: 'Opus (alias)' }, | ||
| { id: 'haiku', label: 'Haiku (alias)' }, | ||
| // Current generation. Kept in sync with the model support matrix |
There was a problem hiding this comment.
Non-blocking: clampClaudeReasoning is not present anywhere on this PR head; shared.ts only defines clampCodexReasoning. These changed lines therefore document a synchronization invariant that cannot currently be followed or verified, and the new test hard-codes the same model IDs rather than deriving them from the referenced matrix. That matters because a future maintainer may reasonably assume the picker is already coupled to an existing source of truth. Since this PR is intentionally independent of #6046, please either rewrite this comment and the test rationale to describe an explicit supported-model list, or use a shared Claude model constant that the picker and future clamp can both consume when that clamp lands.
|
Thanks @sphinxcode — @mrcfps’s maintainability note on the sync comment looks like the only follow-up worth addressing on this head right now. Once that wording is tightened up (or moved behind a shared constant later), this should be in good shape for the next pass. 💡 To drive this PR to merge hands-free, paste this to your AI coding agent (Claude Code / Codex / opencode / Cursor …): |
Why
While working on #6046 (Claude Code reasoning-effort passthrough), a user asked why Fable 5 wasn't selectable in the model picker. Confirmed it's a real model the installed CLI supports fine (
claude --model claude-fable-5completes a real turn) -- it's just missing fromclaudeAgentDef's hardcodedfallbackModels, which was stuck on the 4.5 generation (claude-opus-4-5/claude-sonnet-4-5/claude-haiku-4-5). Opus 4.8, Sonnet 5, and the whole 4.6/4.7 tier were all missing too.This PR is independent of #6046 -- it only touches the static model list, not the reasoning-effort logic -- so it's based directly on
mainrather than stacked on that branch.What users will see
claude-fable-5,claude-opus-4-8,claude-sonnet-5,claude-haiku-4-5-20251001,claude-opus-4-7,claude-sonnet-4-6, andclaude-opus-4-6, in addition to the existing aliases and 4.5-generation entries (kept for anyone still pinned to them).Surface area
sonnetalias /DEFAULT_MODEL_OPTION) is unchanged; this is purely additive to the selectable list.Screenshots
Same limitation as #6046 -- no browser/screenshot tool available in the environment I used. Verified via the daemon's own
/api/agentsresponse instead, on a local build of this branch:Bug fix verification
apps/daemon/tests/runtimes/agent-args.test.ts--claude fallback models include the current generation, not just 4.5main/ green on this branch? Yes -- onmain(f2760fd),claude.fallbackModelsonly contains the 4.5-generation ids, so this test's assertions forclaude-fable-5/claude-opus-4-8/claude-sonnet-5/ etc. fail; they pass on this branch.Validation
pnpm --filter @open-design/daemon test(vitest, this file only) -- 46/46 passedtsc -p tsconfig.json --noEmitandtsc -p tsconfig.tests.json --noEmit(apps/daemon) -- cleanclaude --model claude-fable-5completes a real, successful turn against the actual Anthropic API before adding it to the list/api/agentsthat all seven new ids are now served forclaude, matching the screenshot section above