Repository navigation
Agent pane: messages from other sessions draw as received lines - #21747
teamleaderleo wants to merge 20 commits into
Conversation
A prompt with agent_message provenance draws as a plain bubble of the raw envelope today. The pane should show "Received message from" the sender, open to the sender's words, draw a queued message's line once, and fold lines in a row into "Received N messages". Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A prompt that carries agent_message provenance (cx-55d27) drew as the person's bubble of the raw envelope. It now draws as "Received message from <sender>", the sender a link to its chat, and its chevron opens the sender's own words in muted body type. A message waiting behind a busy turn draws its line at once instead of a queued prompt, and a withdrawn one's line goes. Two or more lines in a row fold into "Received N messages". This draws for everyone, with no Debug toggle. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configuration
You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
cmux status (one comment, edited in place; each line is updated by the job that owns it) Review App of this head (app.zip, kept 1 day)
Unclear: CI failed on
Failures:
Matched log linesNot re-run automatically: Written by red: cmux-next checks (god files, concurrency, crash safety, l10n); no finished base run on 16f36fe to compare; do not merge until green; see lane-rules
Agents: |
|
Agents: |
This comment has been minimized.
This comment has been minimized.
…lish/received-messages
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A landed message's row must redraw when opened, and a waiting message must stay in the composer queue. Find, copy, retry and Edit must use the sender's words, never the envelope or the person's prompt. A group lists its lines. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
From review: a landed message now draws through its own row kind, whose memo redraws when the line opens (the comparator had landed on the render card). A message waiting behind a turn stays in the composer queue, where it can be removed or sent now; drawing it in the thread duplicated on a lag resync and folded into Worked for. Find searches the sender's words and opens the line and its group; copy copies the words; a received prompt offers no Retry or Edit, which would resend the envelope as the person's own. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…lish/received-messages # Conflicts: # webviews/src/agent-session/acpmux/direct.ts
Base now takes the queue order from the session detail on attach. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…sh/received-messages # Conflicts: # webviews/src/agent-session/acpmux/Localizable.xcstrings # webviews/src/agent-session/acpmux/generated/strings.json
… two keys The merge had kept the branch's older key order and an old placeholder string. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Bugbot needs on-demand usage enabledBugbot 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. |
- vp fmt webviews/src/agent-session/acpmux/replyHref.ts - vp fmt webviews/src/pages/markdown/README.md - vp fmt webviews/src/pages/markdown/links.ts - vp fmt webviews/test/markdown-cmux-app-links.test.ts Autofix-Run: https://github.com/manaflow-ai/cmux/actions/runs/39214563304
|
Found 28 test failures on Blacksmith runners: Failures
...and 18 more test failures. View all on Blacksmith: run 39373744465, run 39373744392
|
…sh/received-messages
[Medium impact] The PR appears safe to merge, with three non-blocking issues from the previous reviews still open. FindingsSummaryMessages from other sessions now draw as expandable received lines instead of user bubbles.
Reviews (7) · Last reviewed commit: "Merge branch 'feat-cmux-next' into claud..." · Reviewed by Greptile |
| return ( | ||
| <div className="cv-received" data-open={open || undefined}> | ||
| {/* The line toggles too; the sender link and the chevron are its keyboard stops. */} | ||
| <div className="cv-received__line" onClick={onToggle}> |
There was a problem hiding this comment.
When the sender's name contains the search query, Find can select that name instead of the matching body text. rowText counts matches only in message.body, but paintFindHighlights also counts the heading. Searching “build” in a message from “Build agent” therefore selects the heading first and shifts later matches. Add data-find-skip to the heading so both paths count the same text.
| <div className="cv-received__line" onClick={onToggle}> | |
| <div className="cv-received__line" data-find-skip onClick={onToggle}> |
| count: run.length, | ||
| lines: run.map((row) => row.id), | ||
| }); | ||
| if (open) out.push(...run); |
There was a problem hiding this comment.
Copying a row selection across a closed received group silently skips every message in that group. groupReceived replaces the messages with a row containing only their IDs. copyRows reads this grouped list, and transcriptCopyText returns nothing for the group. Opening the group changes the copied result. Keep the grouped messages available to the copy path and include their bodies once.
…sh/received-messages # Conflicts: # webviews/src/agent-session/acpmux/model.ts
build-agent-pane-web.sh concatenates every sheet the pane imports; receivedMessages.css was missing, so the received lines would draw unstyled in the app (react-apps-check caught it). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Bugbot needs on-demand usage enabledBugbot 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. |
| text: String(msg.text ?? ""), | ||
| ...(received ? { received } : {}), | ||
| ...(message ? { message } : {}), |
There was a problem hiding this comment.
Right-click still uses the envelope
Right-clicking a received message still offers Copy Message and Edit and Resend for the full envelope. The new message field changes how the row draws, but messageMenuTarget still reads row.text and reports it as an ordinary prompt. Copy includes the hidden envelope, and Edit and Resend puts it into the composer as the user's own prompt.
Use message.body for the menu's text and explicitly prevent received messages from offering Edit and Resend.
…sh/received-messages
Bugbot needs on-demand usage enabledBugbot 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. |
|
|
|
|
|
|
|
|
|
|
Summary
A message from another session reached the agent pane as an ordinary prompt and drew as the person's own bubble. It showed the whole envelope the cmux-tui pump writes: "[cmux agent message] from …", the message id, the safety line and the reply hint, and then the words. The prompt carries
_meta.provenance.kind: "agent_message"with the sender (acpmuxprompt_provenance.rs, cx-55d27), but the pane never read it.Now the message draws as Claude desktop does (refs
transcript-received-messages-group.png,transcript-received-message-expanded.pngandtranscript-peer-session-message.pngin cmux-design-references; "Messages and actions" in #21604):fromisacp:<id>). Any other sender is plain text.---line and its closing line, which repeats the message id so a body cannot fake it. Text in any other shape is kept whole.offer_result) still draws as before, behind its toggle.Out of scope, and listed in #21604:
steer: false.prompt_acceptedandturn_started.Testing
bun test test/received-messages.test.tsx. It drives the realAcpmuxDirectClientover a fake daemon, then shapes and renders the rows.bun teston chat-find (4 files), transcript-copy, gallery-coverage, transcript-newest-last and transcript-worked-fold, with the test above: 37 pass, 1 browser test skipped.bun run typecheckpasses.agent-pane-suggested-tasks). Host load was 160 to 350 today and the dev server kept timing out. Theoffer_resultpath is unchanged.agent-pane.received-messagesin headless Chromium.received.group(plural,{n}) andreceived.show, in all 21 locales, marked needs_review outside English. The line reusesoffer.received.gen-strings.mjs agentPanereports nothing missing.Changelog
Changed: A message from another session shows as "Received message from" its sender, which opens to the message, instead of as your own prompt
Proof
Gallery
agent-pane.received-messages, dark, normal width.Before, each of these was a right-aligned user bubble holding the full envelope text.
Checklist
🤖 Generated with Claude Code