[BUG] Remote-control spawned session ignores UI-selected model — picker shows Fable 5, first request serves claude-opus-4-8
Environment
- Claude Code 2.1.200, macOS 26.5.1 (Apple Silicon Mac Studio, headless)
- Sessions hosted by
claude remote-control --spawn worktree --no-create-session-in-dir --name <name>running as a launchd daemon (KeepAlive,RunAtLoad) - Driven from the remote-control web UI (desktop browser and mobile)
- No
modelkey in~/.claude/settings.json, project.claude/settings.json, or.claude/settings.local.jsonat time of repro; noANTHROPIC_MODELenv; daemon plist passes no--model
Bug
The model selector in the remote-control UI shows Fable 5 selected, but the spawned session's requests are served by claude-opus-4-8[1m] from the first turn. The picker selection is never applied to the session.
Repro
- Run
claude remote-control --spawn worktree(launchd daemon in my case). - In the remote-control UI, confirm the model picker shows Fable 5.
- Start a new session, send any message ("what model are you?").
- Reply is served by Opus 4.8.
Evidence
Session transcript is 8 lines — one user turn, one assistant turn. Checking the serving model recorded in the transcript (.message.model from the API response):
$ jq -r 'select(.type=="assistant") | [.timestamp, .message.model] | @tsv' <session>.jsonl
2026-07-04T00:16:48.037Z claude-opus-4-8
- No
model_refusal_fallbacksystem event, no safety-classifier notice — this is not the known Fable→Opus safety fallback (#67246 / #66657). The request itself went out on Opus. - Pattern is consistent across ~20 recent daemon-spawned sessions: first assistant messages serve
claude-opus-4-8, flipping toclaude-fable-5only after an in-session/modelre-pick. Several sessions ran 100% Opus because no re-pick happened. - In-session
/model→ Fable works and sticks (absent a classifier event), confirming the account has Fable access — only the spawn-time handoff is broken.
Expected
The model selected in the remote-control UI is the model the spawned session requests from turn 1.
Workaround
Pin "model": "claude-fable-5[1m]" in ~/.claude/settings.json, which bypasses the picker handoff.
Related but distinct
On mobile, after a mid-session safety-classifier fallback (Fable 5 → Opus 4.8), /model cannot restore Fable (matches #67246) — so when spawn starts on the wrong model AND the picker can't fix it from mobile, there is no path back to the selected model at all.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗