Agent list labels the 1M context window inconsistently between model families (Fable vs Opus)
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
In the Background tasks panel's workflow agent list, two models that both resolve to their [1m] variants are labelled inconsistently — only the Opus row indicates the 1M window.
| Agent rows | Model shown |
| --- | --- |
| impl:BossMovesets, impl:Eggspresso | Fable 5.1 |
| impl:Headshot, impl:IVSInventory | Opus 5 1M |
Both are running [1m] variants. In ~/.claude.json, additionalModelOptionsCache shows the Fable option's stored value already carries the suffix:
{
"value": "claude-fable-5-1[1m]",
"label": "Fable",
"description": "Fable 5.1 · Most capable for your hardest and longest-running tasks"
}
The suffix is applied by the client rather than typed by the user — the session was launched with a plain --model claude-opus-5 and the client appends [1m] based on entitlement. So both families reach [1m] by the same path; only the rendering differs.
What Should Happen?
Both rows should indicate the context window the same way — either Fable 5.1 1M and Opus 5 1M, or Fable 5.1 and Opus 5.
Within a single list, the same property should render consistently across model families, so the label can be trusted as a signal of which context window an agent actually ran with.
Error Messages/Logs
Steps to Reproduce
- Use Claude Code inside the Claude Desktop app on an account entitled to the 1M context window.
- In the model picker, select Fable (resolves to
claude-fable-5-1[1m]). - Start a dynamic workflow that fans out several agents in parallel, e.g. a
parallel()stage with a handful ofagent()calls. Do not setmodelon the agent calls, so they inherit the session model. - While the workflow is still running, switch the session model to Opus 5 with
/model. - Open the Background tasks panel and look at the agent rows.
Agents launched before the switch read Fable 5.1. Agents launched after read Opus 5 1M. Both are running [1m] variants, but only the Opus rows show the window in the label.
A single-model run also shows it: any workflow on Opus 5 labels its agents Opus 5 1M, while any workflow on Fable 5.1 labels them Fable 5.1 — the model switch above just puts both in one list side by side.
Claude Model
Other
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
2.1.255 (Claude Code)
Platform
Anthropic API
Operating System
Windows
Terminal/Shell
Other
Additional Information
Environment detail: Claude Code running inside the Claude Desktop app on Windows 11 (native, not WSL). The account is entitled to the 1M context window — the session picker shows plain "Opus 5" while the reported context window is 1M, which is consistent with the client-side suffix described above.
Related but separate — possible provenance gap. Workflow run journals do not record which model each agent used. I checked all 31 journal.jsonl files under .claude/projects/<project>/<session>/subagents/workflows/*/ and none contains a model field for agent entries.
That matters in exactly the scenario above: when the session model changes mid-run, agents launched before and after the change run on different models. The Background tasks panel shows this live, but once the run ends there is no artifact recording which agent used which model. For workflows whose output is retained (reports, evaluations, generated code), the provenance is not recoverable afterwards.
Noting it here as context rather than filing a second bug, since the template asks for one bug per report. #84047 requests surfacing model and effort per agent in the Web UI, which is adjacent to this.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗