Description
After approving a spec in Specification Mode, the session does not automatically switch from the specModeModel to the default model. It remains on the spec mode model for execution.
Environment
- OS: macOS (darwin 25.4.0)
- Date observed: 2026-04-09
Custom Model Configuration (~/.factory/settings.json)
- Default model:
custom:Sonnet-4.6-1 (claude-sonnet-4-6 via Anthropic provider)
- Spec mode model:
custom:Opus-4.6-0 (claude-opus-4-6 via Anthropic provider)
- Both models use the same Anthropic provider and base URL
Session Default Settings
{
"model": "custom:Sonnet-4.6-1",
"specModeModel": "custom:Opus-4.6-0",
"autonomyMode": "spec",
"reasoningEffort": "none",
"interactionMode": "spec",
"autonomyLevel": "medium"
}
Steps to Reproduce
- Configure two custom Anthropic BYOK models (Opus and Sonnet)
- Set Sonnet as default
model and Opus as specModeModel in sessionDefaultSettings
- Start a new session (enters spec mode, uses Opus as expected)
- Provide a prompt, Opus generates a spec
- Approve the spec
- Observe: session remains on Opus instead of switching to Sonnet for execution
What I Tried
- Verified
sessionDefaultSettings has correct model IDs in both new and existing sessions
- Configured spec mode model via
/model → "Configure Spec Mode Model" UI
- Removed/modified
thinking and reasoningEffort settings on Sonnet
- Started multiple fresh sessions after each config change
- None of the above resolved the issue
Expected Behavior
After spec approval, the session should automatically switch to the default model (custom Sonnet) for execution, as documented in the Mixed Models feature.
Actual Behavior
The session stays on the spec mode model (custom Opus) during execution. The model indicator in the session header continues to show Opus after spec approval.
Description
After approving a spec in Specification Mode, the session does not automatically switch from the
specModeModelto the defaultmodel. It remains on the spec mode model for execution.Environment
Custom Model Configuration (
~/.factory/settings.json)custom:Sonnet-4.6-1(claude-sonnet-4-6 via Anthropic provider)custom:Opus-4.6-0(claude-opus-4-6 via Anthropic provider)Session Default Settings
{ "model": "custom:Sonnet-4.6-1", "specModeModel": "custom:Opus-4.6-0", "autonomyMode": "spec", "reasoningEffort": "none", "interactionMode": "spec", "autonomyLevel": "medium" }Steps to Reproduce
modeland Opus asspecModeModelinsessionDefaultSettingsWhat I Tried
sessionDefaultSettingshas correct model IDs in both new and existing sessions/model→ "Configure Spec Mode Model" UIthinkingandreasoningEffortsettings on SonnetExpected Behavior
After spec approval, the session should automatically switch to the default model (custom Sonnet) for execution, as documented in the Mixed Models feature.
Actual Behavior
The session stays on the spec mode model (custom Opus) during execution. The model indicator in the session header continues to show Opus after spec approval.