Skip to content

fix(agent-chat): connect compact messages to shared presentation - #26424

Open
teamleaderleo wants to merge 4 commits into
nx-transcript-integration-deps-1027from
nx-transcript-bindings-1027
Open

teamleaderleo wants to merge 4 commits into
nx-transcript-integration-deps-1027from
nx-transcript-bindings-1027

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Oct 27, 2026 •

Copy link
Copy Markdown
Collaborator

Received agent messages now use the shared sender identity and Markdown renderer. Their normal actions and waiting-message menu share one compact geometry, and opening a menu keeps both groups visible. The sender's session name leads; its machine stays secondary.

Landing: coordinator reports this PR’s own react-apps-check shards green and permits landing after the final repair gets SHIP with no red of its own. This remains a small stacked binding PR; never merge its dependency-aggregate base. Retarget only the binding commits to feat after parents land.

Leo, 2026-10-27: "We need to have these more centralized, or at least, like, account for cases where, you know, formatting gets a bit f***ed up by agent messages sent back and forth"; "why did you still not remove that, like, weird space on the right?"

This is a small stacked integration PR. Its base, nx-transcript-integration-deps-1027 at 00c0dec1114aa915e0962882b866b1dfcce7c410, exists only to make this binding diff reviewable. Never merge the dependency aggregate. nx-chat owns retargeting this PR to feat-cmux-next once the parents land, with only these binding changes carried forward.

Parents:

PR Reviewed/verification input
#26082, inline PR pills 0eae1baeed95adf02c5b2e7ddc06341b9352d9eb
#26096, remove floating Copy 5971858b50b717a212763fec9b056eb2ed78c334
#26368, explicit shell/session identity 4d7bb4943641e44792ba5f0460369c6de1144345
#26370, composer edge 8530cdb7e6fd579ddb849f63172ae08a2786fc70
#26373, compact received and queued messages 2a7ce36edff1715e832e7d3ba3b4a9868729746e
#26374, shared action rows 583f651837a33804c37b48c95c207c522f610fe8
#26375, sender identity b89c8a190086f258c7879a9230a60857e890c933
#26376, recorded send meaning 4da8cc63b41c2cf616342809f5f4ca54dd36370b

The binding retains sender navigation, reply drafts, Find, anchored expansion, unsigned/deduplicated message text, quiet commit references, timestamp decoration and the existing host policy for files/images. Queued action wrappers and Copy payloads come from the parents. No mode or rail behavior changes.

Gallery: agent-pane.message-presentation compares compact/plain status, expanded Markdown, clock and pill status alternatives, the former boxed expansion, and a mixed recorded-send replay. The selected treatment keeps the existing Claude Code received-message reference's compact line and our glass/type; the parent PRs contain the design comparisons.

Verification

  • Test-first sender/context regression: 3 passed, 3 failed at d18c1c64bd43f0 before binding.
  • Focused sender, queue actions and message-media tests: 15 passed, 0 failed, 69 assertions after binding.
  • Full bun run check passes at 41d9765a9efba54c85466d683cef69013b57b7cc (formatting, lint, typecheck and guards).
  • Mixed Chromium gallery acceptance: 6 passed, 0 failed, 102 assertions at that head. It checks 760px and 360px/125% zoom in both themes, one Copy, semantic Markdown, session-first identity, contiguous action spacing, and menu-open visibility.
  • Captures below use synthetic fixture content. Before: 58bce797c9a84b42f3de1088fcd495fa18768f55 with only the identical gallery fixture added. Original after captures: 41d9765a9efba54c85466d683cef69013b57b7cc; the PR-link repair captures below are from the repair revision. No private reference screenshots are published.

Before and after

State Before After
Compact, dark Before: dark mixed transcript After: dark compact transcript
Compact, light Before: light mixed transcript After: light compact transcript
Hover, dark Before: floating Copy overlaps status After: one Copy and expanded Markdown
Hover, light Before: duplicate Copy in light theme After: one Copy in light theme
Pin and menu-open states, both themes
State Dark Light
Pointer on Pin Pin hovered, dark Pin hovered, light
Read after this step menu Step menu open, dark Step menu open, light
Read after this turn menu Queue menu open, dark Queue menu open, light

PR-link layout repair

Removed the redundant wrapper around the complete actions fragment. ReceivedActions still groups the icon buttons, and PullRequestDock is again a direct child of the received line so its existing flex and shrink rules apply.

The four new Chromium layout cases fail before the fix because the dock is nested. At 1965d3d1a926caccccea14a4aa4e27c3fc866c3b, all 10 received/queued layout cases pass (120 assertions), including both themes and 360px/125% zoom and 760px widths; the full web check and prepush gate pass. The gallery adds received-pr-links for this path.

Wide Narrow
PR links, dark PR links at 360px, dark
PR links, light PR links at 360px, light

Menu-open visibility repair

At ed8c5139bc1633a5a3696ca62e0870e9920b7a35, a shared received-line selector keeps all received action groups visible while a descendant menu trigger is expanded. It uses the trigger’s existing ARIA state, adds no timers or React state, and resets automatically when the menu closes. The PR dock remains a direct child.

The regression fails with the old CSS in both themes, then passes while checking every group for 16 painted frames after leaving the row. Full Chromium suite: 10 passed, 124 assertions; web lint and prepush pass.

Dark Light
All actions remain visible with Send now open All actions remain visible, light theme

Changelog

Fixed: Agent messages share sender identity, Markdown rendering and compact action geometry.

Agent session: agent session

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Owned by an agent session · session

@blacksmith-sh

blacksmith-sh Bot commented Oct 27, 2026 •

Copy link
Copy Markdown

Found 74 test failures on Blacksmith runners:

Failures

Test View Logs
src/pages/settings/layout.test.ts/layout.test View Logs
src/pages/settings/layout.test.ts/layout.test View Logs
test/agent-pane-attach-huge-files.test.ts/agent-pane-attach-huge-files.test View Logs
test/agent-pane-attach-huge-files.test.ts/agent-pane-attach-huge-files.test View Logs
test/agent-pane-bottom-stack.test.ts/agent-pane-bottom-stack.test View Logs
test/agent-pane-bottom-stack.test.ts/agent-pane-bottom-stack.test View Logs
test/agent-pane-question-records.test.ts/agent-pane-question-records.test View Logs
test/agent-pane-question-records.test.ts/agent-pane-question-records.test View Logs
test/agent-pane-queue-scroll-bottom.test.ts/agent-pane-queue-scroll-bottom.test View Logs
test/agent-pane-queue-scroll-bottom.test.ts/agent-pane-queue-scroll-bottom.test View Logs

...and 64 more test failures. View all on Blacksmith

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

@cmux-bot

cmux-bot Bot commented Oct 28, 2026 •

Copy link
Copy Markdown

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

Probably yours: agent-pane-bottom-stack.test.ts, agent-pane-bottom-stack.test.ts, agent-pane-bottom-stack.test.ts and 1 more fails here but not on main's latest full suite. Seen on other PRs too (likely flaky): layout.test.ts, agent-pane-attach-huge-files.test.ts, agent-pane-bottom-stack.test.ts and 17 more.

CI failed on ed8c5139bc (run 40618771708 attempt 1): 3 code, 1 unknown.

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

Failures:

  • seen on other PRs layout.test.ts only page.css imports the page's sheets: failed (job)
  • seen on other PRs agent-pane-attach-huge-files.test.ts 4 text 100 MB drop remote: failed (job)
  • seen on other PRs agent-pane-bottom-stack.test.ts the question, the dock, the queue and the card stack without overlapping or a gap where the strip wa...: failed (job)
  • seen on other PRs agent-pane-bottom-stack.test.ts in a short pane the transcript keeps room and the queue scrolls inside its height: failed (job)
  • new in this PR agent-pane-bottom-stack.test.ts in a 320 px pane with a 0-line draft the card and its quiet row stay inside and clickable: failed (job)
  • new in this PR agent-pane-bottom-stack.test.ts in a 320 px pane with a 12-line draft the card and its quiet row stay inside and clickable: failed (job)
  • new in this PR agent-pane-bottom-stack.test.ts in a 400 px pane with a 0-line draft the card and its quiet row stay inside and clickable: failed (job)
  • new in this PR agent-pane-bottom-stack.test.ts in a 400 px pane with a 12-line draft the card and its quiet row stay inside and clickable: failed (job)
  • seen on other PRs agent-pane-background-tasks.test.ts the summary card lists the chat's background tasks: running ones first, the finished folded: failed (job)
  • seen on other PRs agent-pane-chat-unavailable.test.ts loading never shows the unavailable text: a slow attach, then a machine still connecting: failed (job)
  • ... 14 more in the job logs
Matched log lines
web / react-apps-base-check (1): (fail) only page.css imports the page's sheets [25.07ms]
web / react-apps-base-check (3): (fail) the summary card lists the chat's background tasks: running ones first, the finished folded [993.26ms]
web / react-apps-base-check (2): (fail) answered live, the card goes and the record takes its place [5989.25ms]

Not re-run automatically: web / react-apps-base-check (1), web / react-apps-base-check (3), web / react-apps-base-check (2), 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.

CI fast guards failed on ed8c5139bc (https://github.com/manaflow-ai/cmux/actions/runs/40618771708). It does not block the merge; a red guard merged into main breaks it for every open PR.
The log named no failed step; see the run.

Agents: python3 scripts/ci/guard_attribution.py fix applies the mechanical fixes locally.

@cursor

cursor Bot commented Oct 28, 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.

This branch was previously deployed

1 inactive deployment
ci-routing-agent — ed8c5139 Deployed Oct 28, 2026 by teamleaderleo via wait for same-key tree publisher #68552
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant