[CMUX Next] Add toggleable Chief Dock

Merged
TE
19d ago
+694-84

Summary

CMUX Next's Quick Composer now has an optional Chief Dock: a compact mascot rail with a priority-sorted stack of active agent chats. People can expand or collapse the stack, switch chats, start a new chat, move a chat into a tab, and toggle the dock between its attached and lifted presentation. The chief-dock experiment defaults on and can be disabled with {"chief-dock":"off"} in cmux.experiments.

Testing

  • git diff --check
  • bun scripts/acpmux-protocol-codegen.ts --check (generated ACP code is current)
  • Gallery coverage: 117 entries / 1057 variants
  • Targeted theme-color, caret-selection, subtle-elevation, and gallery coverage checks
  • Full-size gallery review at 1024x760 with image-decode readiness, hover, keyboard focus, collapsed, steering, and detached states

The local theme-color fallback scan still hits its existing 5-second test timeout on this Mac; the Chief-specific literal-color and elevation failures were removed. Native dogfood compilation is still delegated to the managed fleet; no artifact is claimed until the controller returns a receipt.

Localization uses existing pane strings; no new localized keys were added.

Changelog

Added: Chief Dock for keeping active agent chats visible beside the Quick Composer

Proof

The agent-pane.chief-dock gallery entry covers the mascot rail, stacked working/attention/quiet cards, attention badge, and the attached/lifted controls.

Visual proof

Fresh full-size captures were taken from the canonical agent-pane.chief-dock gallery at 1024x760 (2x DPR), after waiting for fonts and mascot image decode. Hover leaves the cards quiet; keyboard focus reveals the intentional Move-to-tab and dismiss actions. The live frame is Chief Dock baseline during local review.

StateCapture
Baseline glass stack and mascot railChief Dock baseline
Pointer hover (no action preview)Chief Dock hover
Keyboard focus (actions become available)Chief Dock focus
Attention stackChief Dock attention
Steering queue countChief Dock steering
Expand/collapse and detached placementChief Dock interaction recording
Detached right-side viewport-safe dockChief Dock detached side

The Chief cards use a 48px pill radius, the shared pane glass blur, and inline status marks so the title and summary share one text origin. The private reference repo also archives 23 source captures from this design conversation. The live Quick Composer path is wired to composerSnapshot.sessions, the active session id, queue counts and steering ids from App.tsx; the gallery intentionally uses deterministic fixtures. Status marks now use the same icon registry as the sidebar (status.needsinput, status.running, status.disconnected, status.complete). Sanitized reference crops and notes are archived in the private cmux-design-references repository at commits 743a34e, abfa5ee, and 7366254.

Checklist

  • Behavior changes have added or updated tests, or Testing says why not
  • UI, settings, menu, schema, help-text or user-facing docs change: localization audited, and the result is stated above
  • Reviewed with a subagent before merge, and all bot and human review comments resolved

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


Summary by cubic

Adds a toggleable Chief Dock to CMUX Next's Quick Composer: a compact glass mascot rail that keeps the most important active agent chats visible, sorted by urgency.

  • Shows up to four agent chats in an overlapping glass stack with status icons, an attention-count badge, queue counts for queued steering prompts, and reduced-motion and reduced-transparency fallbacks; spawned chats stay folded and finished chats show a completion icon.
  • Offers controls to expand the stack, switch chats, start a new chat, move a chat into a tab, and toggle attached vs. lifted placement, with keyboard-accessible per-card context menus and viewport-safe detached placement.
  • Supports nine mascot variants (orbs, machines, moons, fox) chosen via the mascot prop.
  • Backed by the chief-dock experiment, on by default; disable with {"chief-dock":"off"} in cmux.experiments.
  • Gallery sidebar focuses on the current entry with a browse-all toggle, defers painting offscreen entries, and waits for mascot image decode.
  • Drops unused .cv-link-preview styles and removes find-highlight repaint scoping.
  • Adds Playwright coverage for the Apps page (search, install, lifecycle, and error states), awaiting the rendered filter and installed empty states before asserting, in Chromium and WebKit.
  • Fixes transcript scroll math and makes older-history pagination retry while the view stays near the top.