[BUG] /config: selecting "Default (recommended)" does not persist Sonnet 5, session still runs Sonnet 4.6

Open 💬 0 comments Opened Jul 2, 2026 by meckert75

Description

Running /config and selecting Default (recommended) shows a confirmation implying the session will use Sonnet 5. However, after /exit and relaunching claude, the session still runs Sonnet 4.6 (confirmed via statusline and the model-identification line in the system prompt). No model key was written to ~/.claude/settings.json after selecting Default.

Selecting Sonnet explicitly from the same /config menu (rather than Default) does persist correctly — it writes "model": "sonnet" to ~/.claude/settings.json, and the next session correctly starts on Sonnet 5.

Steps to reproduce

  1. Run /config
  2. Select "Default (recommended)" (menu indicates this resolves to Sonnet 5)
  3. cat ~/.claude/settings.json — no model key is present
  4. /exit, then run claude again
  5. Observe: session is running Sonnet 4.6, not Sonnet 5
  6. Run /config again, this time explicitly select "Sonnet"
  7. cat ~/.claude/settings.json — now shows "model": "sonnet"
  8. /exit, run claude again — session correctly starts on Sonnet 5

Expected

Either:

  • "Default (recommended)" should resolve to the same model it displays (Sonnet 5), or
  • If "Default" intentionally means "no override, defer to CLI's built-in default," the menu should not display a specific resolved model next to it, since that's misleading users into thinking Default == that model.

Impact

Confusing/misleading UI — users who pick the recommended default option end up silently running an older model than the one shown in the picker, with no error or indication that anything is wrong. Only way to actually get the intended model is to bypass "Default" and select it explicitly.

Environment

  • Platform: macOS (Darwin 25.5.0)
  • Observed via CLI (claude command), not VSCode/Desktop

Possibly related

  • #67349 — Default Model does not respect availableModels setting
  • #59853, #35789 — closed/duplicate VSCode-specific variants of "picker shows X but sets Y" (this report is CLI-specific and about persistence, not just a stale label)

View original on GitHub ↗