[BUG] Desktop Code tab: /effort run in a session changes the effort used, but the effort selector keeps showing the old level

Status Open
Reported on v2.1.296
Maintainer reply None cached
Activity 0 comments · opened Oct 15, 2026

Environment: Claude desktop app, Code tab, on Windows 11 with the session running in WSL2; Claude Code 2.1.296.

Steps

  1. Start a Code tab session and choose an effort in the effort selector (e.g. Extra / xhigh).
  2. In the session, run /effort high. It reports "Set effort level to high (this session only)".
  3. Send another message, then look at the selector.

Actual: the requests run at the new level, but the selector still shows the old one. The session transcript (~/.claude/projects/<project>/<session>.jsonl) records each request's effort: "perTurnEffort": "xhigh" before the command, then "high" on every request after it. The selector never moved from Extra.

Expected: the selector follows the session's effort, as the model selector does after /model, so it shows what the next request will actually use.

Why it matters: the selector is the one place a user checks the effort they are paying for. When /effort comes from anywhere other than the selector (typed, a skill, or a plugin running /effort), the label is wrong for the rest of the session. Changing the selector afterwards does take effect, which makes the stale label easy to miss.

Related: #95638 is the reverse direction (the selector's change not reaching the session). Both point to the selector and the session holding effort separately.

View original on GitHub ↗