feat(cmux-next): add shared harness /status card

Merged
TE
13d ago
+345-2

This adds a cmux-owned /status command and a shared inline status card for every ACP harness. The card renders the effective session metadata already carried by acpmux: version, session id, cwd, host, model, effort, named auth source, route, settings sources, context usage and usage limits. Credential values are never rendered.

The status action is handled in the existing composer dispatch path, so it cannot silently pass through or no-op. The card dismisses locally and resets when the session changes. Public gallery fixtures cover Claude, Codex and OpenCode with deterministic light/dark-compatible states.

Lawrence asked for this surface: "/status to show" and "for all the harnesses would be nice too".

Validation:

  • python3 scripts/verify-local.py (10/11 selected checks passed; no native compilation selected)
  • scripts/web-lint.sh reached the web checks; the remaining failures are pre-existing base design-token/text-focus violations, while the changed files are clean after fixing the two type errors
  • cmuxCommands.test.ts covers cmux ownership and readiness filtering

Design reference: manaflow-ai/cmux-design-references/apps/claude/live/usage-status-popover.png and composer-status-row-below.png; the card keeps the same quiet secondary status treatment and avoids a boxed transcript panel.

Agent-Session: https://cmux.com/deeplink/agent?harness=codex&session=01a16b97-50ba-7f72-aca2-e1353517ee60&host=huge-blue


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 cmux-owned /status command and a shared inline status card for every ACP harness.

The card renders the effective session metadata already carried by acpmux—version, session id, cwd, host, model, effort, named auth source, route, settings sources, context usage, and usage limits. Credential values are never rendered. The status action is handled in the existing composer dispatch path, so it cannot silently pass through or no-op. The card dismisses locally and resets when the session changes. Public gallery fixtures cover Claude, Codex, and OpenCode with deterministic light/dark-compatible states.

New Features

  • /status is available in every harness chat, stays cmux-owned, and can be disabled while a pane is not ready.
  • acpmux now carries agentInfo, auth source, base URL, route, settings sources, and usage limits from the agent summary.