cmux NEXT: show background task cards with status detail

Merged
TE
14d ago
+188-95

Background task details were hidden behind one folded count, so a running goal could show work without preserving each task's description or terminal state. This change keeps a bounded set of compact task cards visible for running, completed, failed, stopped, and lost work, with the existing View all affordance for long lists. Row keys remain tied to the originating tool call so a running task can transition in place without flicker.

Behavioral coverage exercises mixed task states, description detail, stable running-to-completed transitions, and bounded ended subagent cards. Gallery notes now match the Codex desktop references agent-activity-background-task-cards.png and status-background-task-cards-and-steering-transcript.png.

Leo: "various codex related things... fixing typing during goals, all that, and the general ui auditing of it all."

Validation:

  • python3 scripts/cmux-next/prepush-gate.py — passed, no new violations.
  • bunx vp fmt --check — passed.
  • scripts/web-lint.sh — source formatting passed; existing base TypeScript errors remain in test/new-tab-composer-layout.test.tsx and test/thread-minimap-stream.test.tsx.
  • Fleet-only focused web tests/build — pending dispatch by coordinator.

Overlapping open PRs were checked with pr-overlap; #24076, #24280, #24100, and #24033 touch shared styling/gallery files but do not implement this task-card behavior.

Agent session: big-red


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


Summary by cubic

Shows finished background work as compact task cards instead of folding it behind one aggregate count, so a completed, failed, stopped, or lost task keeps its description, command, and terminal state visible. Live and ended cards render in a single keyed child list, so a task transitioning from running to finished keeps its DOM node, focus, and open affordance in place.

Behavior

  • Each card shows the task description with the underlying command beneath it; state styling distinguishes running, completed, failed, stopped, and lost work.
  • The tray's folded "N subagents done" line and the summary card's "N finished" fold are gone; long lists keep the View all affordance.
  • The gallery's live-count check now counts only running rows, matching the header and the bounded status cards.
  • Tests cover mixed task states, stable running-to-completed DOM transitions, and bounded ended cards.