Skip to content

feat(agents): per-mode default model settings with autoswitch#11

Merged
aletc1 merged 1 commit intodevfrom
claude/mystifying-northcutt-b71ebe
Apr 17, 2026
Merged

feat(agents): per-mode default model settings with autoswitch#11
aletc1 merged 1 commit intodevfrom
claude/mystifying-northcutt-b71ebe

Conversation

@aletc1
Copy link
Copy Markdown
Owner

@aletc1 aletc1 commented Apr 17, 2026

Add Default Plan / Agent / Review Mode Model selectors in Settings → Agents, defaulting to Opus 4.7 1M / Sonnet 4.6 / Opus 4.7 (falling back to Opus if missing). The chat input selector now automatically switches to the mode's default at every mode-change point — plan approval, /plan, /agent, Shift+Tab toggle, new-chat initialization, and /review (transiently).

The Settings dropdowns list every enabled model — Claude and Codex alike, filtered by hiddenModelsAtom — so users can pin a Codex model as the Plan / Agent / Review default. Cross-provider autoswitch writes to the right atom family (subChatModelIdAtomFamily vs subChatCodexModelIdAtomFamily), sets a new subChatProviderOverride atom, and syncs lastSelectedAgentIdAtom so the transport follows.

subChatProviderOverrides moves from local React state in ChatViewInner to a runtime-only Jotai atom (cleared on chat switch) so the model-switching helper can write to it from outside React.

Add Default Plan / Agent / Review Mode Model selectors in Settings →
Agents, defaulting to Opus 4.7 1M / Sonnet 4.6 / Opus 4.7 (falling back
to Opus if missing). The chat input selector now automatically switches
to the mode's default at every mode-change point — plan approval,
/plan, /agent, Shift+Tab toggle, new-chat initialization, and /review
(transiently).

The Settings dropdowns list every enabled model — Claude and Codex
alike, filtered by hiddenModelsAtom — so users can pin a Codex model as
the Plan / Agent / Review default. Cross-provider autoswitch writes to
the right atom family (subChatModelIdAtomFamily vs
subChatCodexModelIdAtomFamily), sets a new subChatProviderOverride atom,
and syncs lastSelectedAgentIdAtom so the transport follows.

subChatProviderOverrides moves from local React state in ChatViewInner
to a runtime-only Jotai atom (cleared on chat switch) so the
model-switching helper can write to it from outside React.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@aletc1 aletc1 merged commit f083771 into dev Apr 17, 2026
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