Agent pane: the Needs your input dot is one attention colour everywhere

Merged
TE
15d ago
+154-20

The same "needs your input" state drew a grey dot in one place and a yellow dot in the next (Leo, live). The question card's Needs your input pill, the Chief dock, the floating chat, the home list and the status lines took the theme's attention colour, but the Needs you dot, the chat header's Needs you badge and the transcript's Needs your input jump pill took the theme's accent. In a theme with a grey accent, that accent is the same grey the app uses for idle. needsYou.css also redefined .acpmux-session-mark-input with the accent, so the sidebar's input mark changed colour depending on stylesheet load order.

Now every needs-input mark in the agent pane reads one token, --acpmux-needs-you-mark. It's defined once in acpmux/styles.css as var(--agent-warning, …), and needsYou.css no longer defines its own copy or the duplicate session-mark rule.

Why attention (yellow), not the accent: --agent-warning is what the app sends for tokens.attention (AgentPaneTheme.swift: "warning": css(tokens.attention)). That's the same Palette.attention the native surfaces already use for this state: the sidebar workspace row's agent mark (WorkspaceRowView+Rendering), the priority rows' Needs you chip, tab badges (TabCell .needsInput), the static status glyph (.waiting → .attention) and the Tasks attention dot. The accent means "selected / running", and in a grey-accent theme it looks idle. The native side was already consistent, so this PR changes only webviews.

Surfaces now on the one token: question card pill (--acpmux-question-input), Needs you dot (jump pill, header badge, Chief dock card, cmux://needs-you links), sidebar input mark, Chief dock attention status, floating chat attention status, home list dot, started-chat status line (waiting), summary agent state and subagent lineage dot (waiting), suggested task dot (waiting).

Test

webviews/test/needs-input-mark-color.test.ts loads the real stylesheets in Chromium in the app's import order (with needsYou.css last). It renders each surface's needs-input markup under a grey accent and a blue accent with a yellow attention colour, then checks that every mark's computed colour equals the attention colour.

  • Red on the test commit 00498812241bb8a872c7713611d7879065c12caa (key needs-input-dot-red-0049881224, step 488522249b358a12e83376fd, --red): 0 pass, 2 fail. Under both themes the Needs you header badge, the Needs your input jump pill and the sidebar session mark computed to the accent (rgb(10, 132, 255) under the blue accent) instead of the attention colour. Every other surface already matched.
  • Green on the fix e1c03329d5973f02645a7f4305c4086206d5a354 (key needs-input-dot-green-e1c03329d5, step c591518837549d34779ef085): PASS test/needs-input-mark-color.test.ts, exit 0.

Command: cmux-ci run --class light --script scripts/ci/run-webviews-tests.sh --ref <sha> --env CMUX_WEB_TEST_FILES=test/needs-input-mark-color.test.ts --env CMUX_BROWSER_TESTS=1

Observed / Not run

  • Observed: scripts/web-lint.sh passed, python3 scripts/cmux-next/prepush-gate.py reported no new violations, and the fleet red/green runs are listed above. cmux-ci compile-check --ref e1c03329d5973f02645a7f4305c4086206d5a354 --app passed (job 43fea69538728ccdce2a4c8c).
  • Not run: no live dogfood in a tagged build and no gallery capture. The change is colour-only and the browser test reads the computed colours. The Needs you popover's preview text (leo/needs-you-preview) is untouched.

Changelog

  • Fixed: The "Needs your input" dot is the same attention colour everywhere in the agent pane, instead of grey in some places and yellow in others.

Agent session: cosmic-gray

🤖 Generated with Claude Code