Agents view shows parent session's model instead of subagent's actual model
Summary
The agents view labels spawned subagents with the parent session's model instead of the subagent's actual model. Subagents that verifiably run claude-sonnet-5 are displayed as "Fable" when the main session runs claude-fable-5.
Environment
- Claude Code 2.1.231
- macOS (darwin 25.6.0)
- Main session model:
claude-fable-5
Steps to reproduce
- Run a session on
claude-fable-5. - Ask Claude to make all subagents use Sonnet. In my case Claude both:
- set
env.CLAUDE_CODE_SUBAGENT_MODEL: "sonnet"in~/.claude/settings.json, and - passed the explicit
model: "sonnet"parameter on every subsequent Agent tool call.
- Let it spawn new subagents (
general-purposeandExploretypes both affected). - Open the spawned agents in the agents view.
Expected
Agent rows show the model the subagent actually runs (claude-sonnet-5).
Actual
Agent rows show "Fable" (the parent session's model).
Ground truth from the subagent transcript JSONLs — every API call in the affected agents' transcripts is stamped with Sonnet, zero Fable calls, e.g.:
$ grep -o '"model":"[^"]*"' <task-output>.jsonl | sort | uniq -c
45 "model":"claude-sonnet-5"
So this is display-only: the model override is honored at the API layer, but the UI label misreports it. Impact: users watching costs/model usage are misled into thinking their premium-tier model is being burned by subagents (I killed healthy Sonnet agents twice because of this label before we checked the transcripts).
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗