Skip to content

Mixed Models spec mode auto-switching does not work with custom BYOK models #924

@Rubyj

Description

@Rubyj

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

  1. Configure two custom Anthropic BYOK models (Opus and Sonnet)
  2. Set Sonnet as default model and Opus as specModeModel in sessionDefaultSettings
  3. Start a new session (enters spec mode, uses Opus as expected)
  4. Provide a prompt, Opus generates a spec
  5. Approve the spec
  6. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions