[BUG] Model picker Ultracode selection reports effort.level "xhigh" to statusline, while /effort ultracode reports "ultracode"
Environment
- Claude Code: 2.1.210
- OS: macOS 26.5.2 (arm64), Terminal TUI
- Statusline: custom
statusLinecommand that renderseffort.levelfrom the stdin JSON verbatim, with"refreshInterval": 1
Summary
Selecting Ultracode in the model picker (Option+P) and selecting ultracode in the /effort menu report different effort.level values to the statusline JSON:
| How ultracode is set | effort.level reported to statusline |
|---|---|
| /effort → ultracode | "ultracode" |
| Option+P picker → Ultracode slider position → Enter | "xhigh" |
Every other effort level (low/medium/high/xhigh/max) chosen via the picker + Enter is reflected in effort.level immediately and correctly. Only Ultracode degrades to "xhigh".
Steps to reproduce
- Configure a statusline command that prints
.effort.levelfrom stdin JSON (plus"refreshInterval": 1to see updates quickly). - Run
/effortand select ultracode → statusline showsultracode(the stdin JSON contains"effort":{"level":"ultracode"}). - Open the model picker (Option+P), move the effort slider to Ultracode (
✦ Ultracode effort ←/→ to adjust), press Enter → statusline showsxhigh. - For comparison, pick any non-Ultracode level in the picker + Enter → statusline updates to that exact level immediately.
Expected
Both entry points set the same mode, so they should report the same effort.level value (either both "ultracode", or both "xhigh" plus a separate documented flag for the ultracode/workflow state).
Actual
The reported value depends on which UI path was used (see table above). This makes it impossible for a statusline script to reliably indicate whether ultracode is active.
Additional observations
- The full
effortobject in the statusline JSON contains only{"level": ...}— captured across 15 concurrent live sessions (2.1.210); no separate ultracode flag is surfaced that could disambiguate. - After picking Ultracode in the picker and pressing Enter, the persisted default in
settings.jsonis written as"effortLevel": "xhigh"— consistent with the ultracode flag being dropped somewhere on the picker path. - Docs contradiction: statusline.md currently states "Ultracode is not a distinct level and reports as
xhigh" — that matches the picker path but contradicts the observed/effortbehavior on 2.1.210. Either the docs are stale (if"ultracode"is now an intended distinct reported value) or the picker path loses the flag (if/effortbehavior is the intended one). - Open question for maintainers: does selecting Ultracode via the picker actually enable workflow orchestration for the current session, or does it silently set plain
xhigh? If the latter, this is a functional bug (users believe ultracode is active when it is not), not just an inconsistent status report.
Related issues
- #69653 —
/effortpresents ultracode as a top tier while it is xhigh + workflow flag - #68754 (closed) — VS Code effort slider not reflecting persisted ultracode
- #66476 —
/cleardrops ultracode while the indicator still shows it - #75927 — ultracode dropped from
--effortduring agent dispatch serialization
3 Comments
Could not reproduce on v2.1.215 (Linux/Fedora 44):
/effort ultracodeconfirms with "xhigh + dynamic workflow orchestration", but the statusline stdin JSON receiveseffort.level: "xhigh"— same as via the/modelpicker. So on this platform/version both paths collapse to"xhigh", matching the documented behavior; the"ultracode"leak reported here may be macOS-specific or version-specific (reported before 2.1.215). Cross-referencing #69068, which asks for the state to be exposed deliberately.Even though I was not able to reproduce the difference in
/effortand JSON content, it is indeed confusing that, apparently, there is no way to confirm in the status line that ultracode has been selected. That said, at least to me, ultracode appears highlighted between the window content and the status line when using fullscreen in the CLI.I tried to reproduce this on the released CLI 2.1.233 on Linux, using a custom statusline command that logs the raw
effortobject from stdin JSON with"refreshInterval": 1.On 2.1.233 both entry points now report the same value:
/effort→ ultracode and the model picker's Ultracode slider position both reporteffort.level: "xhigh"to the statusline, while the ultracode session indicator shows in the UI. The per-path inconsistency you saw on 2.1.210 ("ultracode"from one path,"xhigh"from the other) no longer occurs — behavior now matches the documented model that ultracode reports asxhighin the statusline.This appears to have been resolved in a recent release (changelog), so I'm closing this. Note the
effortobject still carries onlylevel— a distinct flag for "ultracode active" that statusline scripts could read would be a feature request (see #69653). If you still see mismatched values between the two paths on 2.1.233 or later, please comment and we can reopen.🤖 Generated with Claude Code