cmux-next: a new chat's effort chip names the level acpmux starts it on (Lawrence: "we lost effort")

Merged
TE
23d ago
+79-2

Problem

Lawrence (10-14): "we lost effort". With Claude Opus 5.5, the New Tab composer showed only the model chip, with no Reasoning chip.

Before a chat's session reports its options, the effort chip draws a placeholder (PendingChip). Since #20335, that placeholder only shows a level a previous chat on the same harness remembered (chipMemory.ts). On a fresh profile, or a harness id no chat has reported on (e.g. claude-sr), it draws nothing.

Change

Before the session reports, the chip falls back to the level acpmux will start the harness on: _acpmux/harnesses start.effort (start_defaults.rs; Opus 5.5 starts at Medium). A remembered chip still wins.

Not in this PR (cx-ervhd, separate PR, waiting on SHOW LEO): the Reasoning menu itself, where a chat on the agent's own level shows "Low" with nothing checked, and Ultracode/Ultrathink sit among the levels.

Verification

  • Red at 175a267 (test only): the new-chat-reasoning play in local Chromium shows only Claude Opus 5.5 among the chips, and the waitFor for "Medium" does not hold.
  • Green at 9a3e39b: the same play renders Claude Opus 5.5 | Medium, and the play passes.
  • CI runs test/new-chat-effort-chip.test.ts in the browser lane. Not run locally under bun test: big-red's inotify limit starves Vite's watcher, and the memory freeze bars heavy local runs.
  • Chat-composer half of the report: a hosted acpmux probe is checking whether a new Claude chat attaches with its effort and fast-mode options. Results will follow on this PR.

Changelog

  • Fixed: a new agent chat shows its Reasoning level before the agent starts, instead of the model chip alone.

šŸ¤– Generated with Claude Code


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.


Summary by cubic

Fixes a new chat's effort chip naming the level acpmux starts the harness on, so the Reasoning chip no longer goes missing on a fresh profile or a harness no chat has reported on yet.

  • Before the session reports its options, the chip falls back to _acpmux/harnesses start.effort (Opus 5.5 starts at Medium); a level remembered from a prior chat still wins.
  • Adds a Chromium gallery play and test covering the fallback.
  • Not in this PR: the Reasoning menu itself, where a chat on the agent's own level shows unchecked and Ultracode/Ultrathink sit among the levels.

Showcase

In a fresh profile, open a New Tab with Claude Opus 5.5 picked. Before, from tagged DEV builds on macOS 27 at base 2834e65: no effort chip. After, at head 6305c75: a "Medium" chip next to the model. I checked that the head app's bundled pane.js contains the fix. The host chip is masked.

before after

before

Full quality:

after

Full quality:

Open the live gallery