Skip to content

cmux NEXT: render agent dispatch cards - #24608

Merged
teamleaderleo merged 8 commits into
feat-cmux-nextfrom
agent-dispatch-transcript
Oct 24, 2026
Merged

teamleaderleo merged 8 commits into
feat-cmux-nextfrom
agent-dispatch-transcript

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Oct 23, 2026 •

Copy link
Copy Markdown
Collaborator

cmux NEXT now renders agent dispatch protocol calls as compact coordination cards. Dispatch, steer, brief-list, and report calls stay visible beside folded tool work, expand to show the brief or report, and reports link back to the brief with sender attribution. They bypass the generic Shell and edit-diff rows, so a coordinator sees Sent brief 'Diff viewer on the right' → cx3-s14-header on cmux16 instead of raw scp/ssh activity. The parser accepts ACP, Claude MCP, Codex envelopes, and plain CLI tool names, including non-Claude/Codex fixtures.

Leo said: "This also seems a little bit too ad hoc than what I'd like. Maybe we need to keep improving ACPM UX then, or CMUX next, just exposing more and more and, like, depicting the stuff better."

Changelog

Added: compact transcript cards for dispatch, steer, brief-list, and attributed report operations.

Validation

  • pr-overlap before edits: no overlap.
  • 7 focused webview tests / 29 assertions pass.
  • Changed-file vp lint and vp fmt --check pass; no touched-file TypeScript errors.
  • Full web checks and captures are routed to the fleet; none ran on overloaded huge-blue.

agent-identity footer


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


Summary by cubic

Renders ACP dispatch protocol calls in cmux NEXT as compact coordination cards instead of generic Shell or edit-diff rows, keeping coordination visible in the transcript.

  • Dispatch, steer, brief-list, and report cards expand to show details; reports link to their brief with sender attribution.
  • Parses ACP, Claude MCP, Codex, and cmux envelopes plus plain CLI tool names, while ignoring unrelated shell and MCP calls; status labels are localized.

Written for commit 28d1a60. Summary will update on new commits.

View guided diff Turn on auto-fix

Leo: "Maybe we need to keep improving ACPM UX then, or CMUX next, just exposing more and more and, like, depicting the stuff better."
Agent-Session: https://cmux.com/deeplink/agent?harness=codex&session=01a16a74-1fb9-7d43-9fb4-46bbed146055&host=huge-blue
@cursor

cursor Bot commented Oct 23, 2026

Copy link
Copy Markdown

Bugbot needs on-demand usage enabled

Bugbot uses usage-based billing for this team and requires on-demand usage to be enabled.

A team admin can enable on-demand usage in the Cursor dashboard.

@github-actions

github-actions Bot commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

cmux status (one comment, edited in place; each line is updated by the job that owns it)

Review 28d1a60: HQ feed card · gallery before/after runs · checks

App of this head (app.zip, kept 1 day)

gh workflow run reload-build.yml -R manaflow-ai/cmux --ref feat-cmux-next -f tag=pr24608 -f ref=agent-dispatch-transcript -f platform=macos -f backend_mode=local

Probably yours: composer-type-scale.test.ts, agent-pane-agents-pill.test.ts, agent-pane-background-tasks.test.ts and 4 more fails here but not on main's latest full suite. Seen on other PRs too (likely flaky): agent-history.test.ts, agent-pane-step-rows.test.ts, agent-pane-working-counts.test.ts and 22 more. This PR merged before its CI finished: fix forward on main.

CI failed on 28d1a60033 (run 40048703911 attempt 1): 4 code, 1 unknown.

Job Verdict Why
web / react-apps-check (1) code a web test failed
web / react-apps-check (2) code a web test failed
web / react-apps-check (3) code a web test failed
web / react-apps-check (4) code a web test failed
web / react-apps-check unknown no known signature; failed step: Check webview test shards

Failures:

  • seen on other PRs agent-history.test.ts agent history > lists every chat, multi-selects, and brings the selection into active sessions: failed (job)
  • seen on other PRs agent-pane-step-rows.test.ts every step is one 26px row on one rhythm, across transcript rows: failed (job)
  • seen on other PRs agent-pane-working-counts.test.ts with the tray on, the line counts nothing: the tray lists the same work: failed (job)
  • seen on other PRs chat-inspector-glass.test.tsx overlay: the panel is glass, never opaque, and a section is no box: no fill, no border: failed (job)
  • seen on other PRs chat-inspector-glass.test.tsx push: the panel is glass, never opaque, and a section is no box: no fill, no border: failed (job)
  • seen on other PRs composer-persistent-scrollbar.test.ts chromium > an overflowing draft keeps a thin thumb on every frame, through typing, idle, blur, focus...: failed (job)
  • seen on other PRs composer-persistent-scrollbar.test.ts webkit > an overflowing draft keeps a thin thumb on every frame, through typing, idle, blur, focus a...: failed (job)
  • new in this PR composer-type-scale.test.ts agent-pane.composer context-menu draws its text on the type scale: failed (job)
  • new in this PR agent-pane-agents-pill.test.ts by default the running agents sit in the tray above the composer, not in the transcript: failed (job)
  • new in this PR agent-pane-background-tasks.test.ts the summary card lists the chat's background tasks: running ones first, the finished folded: failed (job)
  • ... 22 more in the job logs
Matched log lines
web / react-apps-check (1): (fail) agent history > lists every chat, multi-selects, and brings the selection into active sessions [31083.12ms]
web / react-apps-check (2): (fail) by default the running agents sit in the tray above the composer, not in the transcript [1142.00ms]
web / react-apps-check (3): (fail) a pooled Settings page claimed by the host reports its paint once its first screen is in [629.30ms]
web / react-apps-check (4): (fail) the categories are the approved ones, in order [0.33ms]

Not re-run automatically: web / react-apps-check (1), web / react-apps-check (2), web / react-apps-check (3), web / react-apps-check (4), web / react-apps-check are not machine failures.

Written by scripts/ci/classify_failures.py (ci-failure-attribution.yml); signatures are its SIGNATURES table. A machine verdict is the runner's fault, not this PR's; yours means the failing file is one this PR changes, also red on main that main's latest full suite fails the same way, seen on other PRs that it failed on another pull request's run lately.

red: cmux-next checks (god files, concurrency, crash safety, l10n); NEW: red check: Companion workflows (+6 more) is not red on the base e815801; do not merge until green; see lane-rules
red: web / Web status; NEW: green on the base e815801; do not merge until green; see lane-rules
red: web / react-apps-check; no finished base run on e815801 to compare; do not merge until green; see lane-rules
red: web / react-apps-check (1); no finished base run on e815801 to compare; do not merge until green; see lane-rules
red: web / react-apps-check (2); no finished base run on e815801 to compare; do not merge until green; see lane-rules
red: web / react-apps-check (3); no finished base run on e815801 to compare; do not merge until green; see lane-rules
red: web / react-apps-check (4); no finished base run on e815801 to compare; do not merge until green; see lane-rules

Tour of 28d1a60033 (run): no media. The tour did not run: only webview code changed (8 path(s)), which the gallery advisory run checks in Linux Chromium on the pull request (its artifact holds any captures); add the media-tour-mac label, then re-add media-tour, to tour it on a Mac.

Gallery before/after for 28d1a60: 16 states rendered, 1 images differ, 1763 more touched states not rendered. Images are in the run's artifact, not on this public PR.

gh run download 40048703795 -R manaflow-ai/cmux -n gallery-advisory-24608-28d1a60033851360815f1a4ccb91920a654cf354 (then read gallery-review.json)

States
State Theme Status Diff Picked by
agent-pane.coderouter-offer/claude-key Apple System Colors Light unchanged 0% own TurnRows.tsx
agent-pane.coderouter-offer/claude-key Apple System Colors unchanged 0% own TurnRows.tsx
agent-pane.coderouter-offer/deepseek-key Apple System Colors Light unchanged 0% own TurnRows.tsx
agent-pane.coderouter-offer/deepseek-key Apple System Colors unchanged 0% own TurnRows.tsx
agent-pane.coderouter-offer/sign-in Apple System Colors Light unchanged 0% own TurnRows.tsx
agent-pane.coderouter-offer/sign-in Apple System Colors unchanged 0% own TurnRows.tsx
agent-pane.coderouter-offer/rate-limited Apple System Colors Light unchanged 0% own TurnRows.tsx
agent-pane.coderouter-offer/rate-limited Apple System Colors unchanged 0% own TurnRows.tsx
agent-pane.coderouter-offer/on-coderouter Apple System Colors Light unchanged 0% own TurnRows.tsx
agent-pane.coderouter-offer/on-coderouter Apple System Colors unchanged 0% own TurnRows.tsx
agent-pane.coderouter-offer/moving Apple System Colors Light unchanged 0% own TurnRows.tsx
agent-pane.coderouter-offer/moving Apple System Colors unchanged 0% own TurnRows.tsx
agent-pane.transcript/conversation Apple System Colors Light unchanged 0% own TurnRows.tsx
agent-pane.transcript/conversation Apple System Colors unchanged 0% own TurnRows.tsx
agent-pane.transcript/footer-actions-left Apple System Colors Light unchanged 0% own TurnRows.tsx
agent-pane.transcript/footer-actions-left Apple System Colors unchanged 0% own TurnRows.tsx
agent-pane.transcript/footer-actions-right Apple System Colors Light unchanged 0% own TurnRows.tsx
agent-pane.transcript/footer-actions-right Apple System Colors unchanged 0% own TurnRows.tsx
agent-pane.transcript/github-references Apple System Colors Light unchanged 0% own TurnRows.tsx
agent-pane.transcript/github-references Apple System Colors unchanged 0% own TurnRows.tsx
agent-pane.transcript/github-references-other-repo Apple System Colors Light unchanged 0% own TurnRows.tsx
agent-pane.transcript/github-references-other-repo Apple System Colors unchanged 0% own TurnRows.tsx
agent-pane.transcript/github-references-same-number Apple System Colors Light unchanged 0% own TurnRows.tsx
agent-pane.transcript/github-references-same-number Apple System Colors unchanged 0% own TurnRows.tsx
agent-pane.transcript/tasks Apple System Colors Light unchanged 0% own TurnRows.tsx
agent-pane.transcript/tasks Apple System Colors unchanged 0% own TurnRows.tsx
agent-pane.transcript/thinking Apple System Colors changed 0.036% own TurnRows.tsx
agent-pane.transcript/thinking Apple System Colors Light unchanged 0% own TurnRows.tsx
agent-pane.turn-error-card/agent-closed Apple System Colors Light unchanged 0% own TurnRows.tsx
agent-pane.turn-error-card/agent-closed Apple System Colors unchanged 0% own TurnRows.tsx
agent-pane.turn-error-card/disk-full Apple System Colors Light unchanged 0% own TurnRows.tsx
agent-pane.turn-error-card/disk-full Apple System Colors unchanged 0% own TurnRows.tsx

Pick other states with a Gallery: entry.id, entry.id/variant line in the PR body.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Bead cx-f7z21 created for this PR by the cmux coordinator.

@github-actions github-actions Bot added the risk:normal Risk tier (docs/ci/risk-tiers.md) label Oct 23, 2026
@blacksmith-sh

blacksmith-sh Bot commented Oct 23, 2026 •

Copy link
Copy Markdown

Found 14 test failures on Blacksmith runners:

Failures

Test View Logs
/tmp/tmpiic5ptsk/summary-missing.json (live):/summary-missing.json (live): View Logs
/tmp/tmpkvst77gy/summary-fail.json (live):/summary-fail.json (live): View Logs
[tabs] debug.tab_switch timed 0 of 40 switches/
[tabs] debug.tab_switch timed 0 of 40 switches
View Logs
[tabs] debug.tab_switch timed 0 of 40 switches/
[tabs] debug.tab_switch timed 0 of 40 switches
View Logs
[tabs] the window draws no frames/[tabs] the window draws no frames View Logs
[tabs] the window draws no frames/[tabs] the window draws no frames View Logs
convention violations found (ERROR lines above)./
convention violations found (ERROR lines above).
View Logs
test_a_pull_request_that_changes_the_shortcut_inputs_still_rewrites_them (main.Sett
ingsOnlyArtifactLeavesTheActionFollowers.test_a_pull_request_that_changes_the_shortcut_
inputs_still_rewrites_them) (job='repair')/
test_a_pull_request_that_changes_the_shortcut_inputs_still_rewrites_them (main.Sett
ingsOnlyArtifactLeavesTheActionFollowers.test_a_pull_request_that_changes_the_shortcut_
inputs_still_rewrites_them) (job='repair')
View Logs
test_base_passes (main.NoticesPairTests.test_base_passes)/
test_base_passes (main.NoticesPairTests.test_base_passes)
View Logs
test_every_routed_input_triggers_the_workflow (main.PullRequestTiers.test_every_rou
ted_input_triggers_the_workflow) (path='.git/config')
View Logs

...and 4 more test failures. View all on Blacksmith: run 40048703866, run 40048703946

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

@cursor

cursor Bot commented Oct 23, 2026

Copy link
Copy Markdown

Bugbot needs on-demand usage enabled

Bugbot uses usage-based billing for this team and requires on-demand usage to be enabled.

A team admin can enable on-demand usage in the Cursor dashboard.

@teamleaderleo
teamleaderleo merged commit 3fead0e into feat-cmux-next Oct 24, 2026
115 of 128 checks passed
@teamleaderleo
teamleaderleo deleted the agent-dispatch-transcript branch October 24, 2026 01:14
@github-actions

Copy link
Copy Markdown
Contributor

The feat-cmux-next push run https://github.com/manaflow-ai/cmux/actions/runs/40048847677 at 3fead0e failed: cmux-next web bundles (source-keyed cache).
Those jobs last passed at e815801. This pull request is one of 1 merged since: #24608.
If the failure is in your change, fix forward on feat-cmux-next. Pull requests run only the tiers their paths reach (docs/ci/cmux-next-tiers.md); label a batch PR full-ci to run them all before merging.

@github-actions

Copy link
Copy Markdown
Contributor

The feat-cmux-next push run https://github.com/manaflow-ai/cmux/actions/runs/40049114315 at ed94bf0 failed: cmux-next web bundles (source-keyed cache).
Those jobs last passed at e815801. This pull request is one of 2 merged since: #24608, #24693.
If the failure is in your change, fix forward on feat-cmux-next. Pull requests run only the tiers their paths reach (docs/ci/cmux-next-tiers.md); label a batch PR full-ci to run them all before merging.

@github-actions

Copy link
Copy Markdown
Contributor

The feat-cmux-next push run https://github.com/manaflow-ai/cmux/actions/runs/40049169409 at 6d998dc failed: cmux-next web bundles (source-keyed cache).
Those jobs last passed at e815801. This pull request is one of 2 merged since: #24608, #24693.
If the failure is in your change, fix forward on feat-cmux-next. Pull requests run only the tiers their paths reach (docs/ci/cmux-next-tiers.md); label a batch PR full-ci to run them all before merging.

@github-actions

Copy link
Copy Markdown
Contributor

The feat-cmux-next push run https://github.com/manaflow-ai/cmux/actions/runs/40049200673 at 0573663 failed: cmux-next web bundles (source-keyed cache).
Those jobs last passed at 303ab5c. This pull request is one of 3 merged since: #24608, #24693, #24645.
If the failure is in your change, fix forward on feat-cmux-next. Pull requests run only the tiers their paths reach (docs/ci/cmux-next-tiers.md); label a batch PR full-ci to run them all before merging.

@github-actions

Copy link
Copy Markdown
Contributor

The feat-cmux-next push run https://github.com/manaflow-ai/cmux/actions/runs/40050157758 at 6c45906 failed: cmux-next web bundles (source-keyed cache).
Those jobs last passed at 303ab5c. This pull request is one of 5 merged since: #24220, #24608, #24693, #24645, #24697.
If the failure is in your change, fix forward on feat-cmux-next. Pull requests run only the tiers their paths reach (docs/ci/cmux-next-tiers.md); label a batch PR full-ci to run them all before merging.

cmux-agent Bot pushed a commit that referenced this pull request Oct 24, 2026
…cy key; the agent pane bundles DispatchCard.css

- cmux-tui agent_dispatch_tools: E0505, `key` borrowed `parsed` while
  `parsed` moved into backend.acpmux (from #24607). The key is owned now.
- build-agent-pane-web.sh did not add DispatchCard.css (from #24608), so
  the web bundles refused to build and every package-test-lane step at
  the tip failed before its Swift suites (step 3fd7c13c4d1d89a51286f6b5).

Not run: cargo check on the VM stops at ghostty-vt-sys (no zig); the
fleet step after this push compiles both.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Oct 24, 2026 •

Copy link
Copy Markdown
Contributor

lawrencecchen added a commit that referenced this pull request Oct 24, 2026
…k (red)

The dispatch card's running line (DispatchCard.tsx, #24608) drew a raw
cv-tool__text span beside its working spinner, so in the shimmer look no
band crossed its words. static-status-loops renders a running DispatchCard
in the shimmer look and expects the band's two transform loops on it.

Expected red on the parent: no cv-tool__shine / cv-tool__lit loops. Not run
here (code-only task).
lawrencecchen added a commit that referenced this pull request Oct 24, 2026
…he shimmer look sweeps it

Every running row with words now draws them through ToolText (the shimmer
look's band and lit copy, mounted only in that look). DispatchCard was the
last running row that drew a raw cv-tool__text beside its spinner.

DispatchCard.tsx is Leo's (#24608, 2026-10-23 18:13, outside the 2-hour
window); this is a one-line change to the words' element, nothing in the
card's layout or DispatchCard.css. Guard: static-status-loops 'a running
dispatch line shimmers in the shimmer look' (previous commit). Not run here
(code-only task).
lawrencecchen added a commit that referenced this pull request Oct 24, 2026
…k (red)

The dispatch card's running line (DispatchCard.tsx, #24608) drew a raw
cv-tool__text span beside its working spinner, so in the shimmer look no
band crossed its words. static-status-loops renders a running DispatchCard
in the shimmer look and expects the band's two transform loops on it.

Expected red on the parent: no cv-tool__shine / cv-tool__lit loops. Not run
here (code-only task).
lawrencecchen added a commit that referenced this pull request Oct 24, 2026
…he shimmer look sweeps it

Every running row with words now draws them through ToolText (the shimmer
look's band and lit copy, mounted only in that look). DispatchCard was the
last running row that drew a raw cv-tool__text beside its spinner.

DispatchCard.tsx is Leo's (#24608, 2026-10-23 18:13, outside the 2-hour
window); this is a one-line change to the words' element, nothing in the
card's layout or DispatchCard.css. Guard: static-status-loops 'a running
dispatch line shimmers in the shimmer look' (previous commit). Not run here
(code-only task).
lawrencecchen added a commit that referenced this pull request Oct 24, 2026
…k (red)

The dispatch card's running line (DispatchCard.tsx, #24608) drew a raw
cv-tool__text span beside its working spinner, so in the shimmer look no
band crossed its words. static-status-loops renders a running DispatchCard
in the shimmer look and expects the band's two transform loops on it.

Expected red on the parent: no cv-tool__shine / cv-tool__lit loops. Not run
here (code-only task).
lawrencecchen added a commit that referenced this pull request Oct 24, 2026
…he shimmer look sweeps it

Every running row with words now draws them through ToolText (the shimmer
look's band and lit copy, mounted only in that look). DispatchCard was the
last running row that drew a raw cv-tool__text beside its spinner.

DispatchCard.tsx is Leo's (#24608, 2026-10-23 18:13, outside the 2-hour
window); this is a one-line change to the words' element, nothing in the
card's layout or DispatchCard.css. Guard: static-status-loops 'a running
dispatch line shimmers in the shimmer look' (previous commit). Not run here
(code-only task).
lawrencecchen added a commit that referenced this pull request Oct 24, 2026
…k (red)

The dispatch card's running line (DispatchCard.tsx, #24608) drew a raw
cv-tool__text span beside its working spinner, so in the shimmer look no
band crossed its words. static-status-loops renders a running DispatchCard
in the shimmer look and expects the band's two transform loops on it.

Expected red on the parent: no cv-tool__shine / cv-tool__lit loops. Not run
here (code-only task).
lawrencecchen added a commit that referenced this pull request Oct 24, 2026
…he shimmer look sweeps it

Every running row with words now draws them through ToolText (the shimmer
look's band and lit copy, mounted only in that look). DispatchCard was the
last running row that drew a raw cv-tool__text beside its spinner.

DispatchCard.tsx is Leo's (#24608, 2026-10-23 18:13, outside the 2-hour
window); this is a one-line change to the words' element, nothing in the
card's layout or DispatchCard.css. Guard: static-status-loops 'a running
dispatch line shimmers in the shimmer look' (previous commit). Not run here
(code-only task).
lawrencecchen added a commit that referenced this pull request Oct 24, 2026
…k (red)

The dispatch card's running line (DispatchCard.tsx, #24608) drew a raw
cv-tool__text span beside its working spinner, so in the shimmer look no
band crossed its words. static-status-loops renders a running DispatchCard
in the shimmer look and expects the band's two transform loops on it.

Expected red on the parent: no cv-tool__shine / cv-tool__lit loops. Not run
here (code-only task).
lawrencecchen added a commit that referenced this pull request Oct 24, 2026
…he shimmer look sweeps it

Every running row with words now draws them through ToolText (the shimmer
look's band and lit copy, mounted only in that look). DispatchCard was the
last running row that drew a raw cv-tool__text beside its spinner.

DispatchCard.tsx is Leo's (#24608, 2026-10-23 18:13, outside the 2-hour
window); this is a one-line change to the words' element, nothing in the
card's layout or DispatchCard.css. Guard: static-status-loops 'a running
dispatch line shimmers in the shimmer look' (previous commit). Not run here
(code-only task).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

risk:normal Risk tier (docs/ci/risk-tiers.md)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant