Skip to content

Agent chat: message rows put the recipient and count on the row, the first line under it - #33249

Merged
teamleaderleo merged 14 commits into
feat-cmux-nextfrom
lane/activity-row-two-lines
Nov 3, 2026
Merged

teamleaderleo merged 14 commits into
feat-cmux-nextfrom
lane/activity-row-two-lines

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Nov 3, 2026 •

Copy link
Copy Markdown
Collaborator

Leo said "yes" to this, on his screenshot of the coordinator chat. The row he showed, "Sent to build-box/spinner-lane · and 5 more commands coordinator: Leo's answer (v…", put a count, a target and a message preview on one truncated line. Then, of two more captures of the same rows: "i also think this is quite weird looking". In those captures:

  • an opened send floated its Copy beside the chevron, with "Raw ⌄" on an oddly indented line;
  • envelope rows were bright or dim with no rule;
  • the live "Sending message to … 3m 56s · ↓1.4K out ↑819.5K in" line had no icon.

Change

A message row between agents now puts its verb, recipient chip, count and chevron on the row. The message's first line goes on its own line under it, at the text column, cut there. This covers:

  • a send (SentMessageLine.tsx for acpmux send and sub-session sends, AgentMessageRow.tsx for SendMessage);
  • another agent's received line and an inbox thread (IncomingMessageCard.tsx, InboxNoticeCard.tsx, through a new below slot on DisclosureRow);
  • a folded group's head (MessageGroupHead.tsx: the senders under "7 messages from 6 sessions").

messageLineLook.ts holds the look: stacked (the default) and two gallery versions, single (before) and quiet (no preview until opened). I compared the three and picked stacked: the chip and count read at a glance, and the preview stays one click from the whole message.

  • Opened send. The message sits at the text column, with Copy and Raw quiet on one line under it at the same indent. Nothing sits beside the chevron, and Raw no longer indents twice (SubsessionCallCard.css).
  • One tone. A send row the reader clicked no longer brightens on focus. It keeps the rows' steady tone, as a received line already does. "Sending" and "Sent" are told apart by their words.
  • Live send line. "Sending message to …" drops the turn's token count, which said nothing about the send (Thinking.tsx).
  • Estimates. model.ts adds the preview's 18px line to a shut stacked row that has one: sends, received lines, inbox threads, the waiting group and an inbox batch's head.

Gallery: agent-pane.message-line-look shows a coordinator turn like Leo's capture in stacked, opened, single and quiet.

Spec: leo-workspace design/chat-transcript.md.

Activity rows, one grammar

Then, on the tray and its rows: "stuff like this is just extremely bruh" and "and this...". This head also:

Tests

SentMessageLine.test.tsx now checks the stacked line: the chip and count on the row, the preview below it, the preview toggling the row, and Copy with Raw under an opened message. It also checks that single keeps the old line. The earlier assertions now read the preview from its own line.

Observed / Not run

  • Unit tests for the affected rows ran on the build fleet; typecheck and format pass at this head; the rows' estimate, grammar and preview tests were updated to read the first line from its own line.
  • Browser layout tests (spacing table, row pitch, chevron column) run in this PR's webview suite; their one-line pitch values are being restated for the two-line message rows here.

Changelog

  • Changed: message rows between agents show the recipient and count on one line and the message's first line under it; an opened sent message shows Copy and Raw under it.

🤖 Generated with Claude Code

Agent session: agent session

teamleaderleo and others added 2 commits November 2, 2026 22:34
… first line under it

A sent message, another agent's received line, an inbox thread and a folded group's head draw
their verb, chip, count and chevron on the row and the message's first line (a group's senders)
on its own line under it, at the text column, cut there (messageLineLook.ts, default stacked;
gallery versions single and quiet). An opened send shows its message at the text column with
Copy and Raw quiet on one line under it; Raw no longer indents twice and nothing floats beside
the chevron. A clicked send keeps the rows' one tone. The live "Sending message to" line takes
the envelope in the icon column and drops the turn's token counts. model.ts estimates the
preview line.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-fb75b7af9902231028aa
@teamleaderleo teamleaderleo added the risk:normal Risk tier (docs/ci/risk-tiers.md) label Nov 3, 2026
@github-actions

github-actions Bot commented Nov 3, 2026 •

Copy link
Copy Markdown
Contributor

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

Review 00231b4: 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=pr33249 -f ref=lane/activity-row-two-lines -f platform=macos -f backend_mode=local

Gallery before/after for 00231b4: the capture produced no images (run).

Yours to fix: incoming-message-disclosure-browser.test.ts (a file this PR changes), transcript-rhythm.test.ts (a file this PR changes), transcript-rhythm.test.ts (a file this PR changes) and 2 more. Also failing here, not on main: transcript-meta-columns-browser.test.ts, transcript-meta-columns-browser.test.ts. Seen on other PRs too (likely flaky): render.test.tsx, agent-pane-agents-pill.test.ts.

CI failed on 00231b45ca (run 41656214035 attempt 1): 2 code, 1 unknown.

Job Verdict Why
web / react-apps-base-check (5) 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:

  • yours incoming-message-disclosure-browser.test.ts a delivered message and a waiting one draw the same line: chevron after the words, actions on hover: failed (job)
  • new in this PR transcript-meta-columns-browser.test.ts dark: every meta row shares one icon column and one text column: failed (job)
  • new in this PR transcript-meta-columns-browser.test.ts light: every meta row shares one icon column and one text column: failed (job)
  • seen on other PRs render.test.tsx no rule declares a background other than transparent or the two interaction tokens: failed (job)
  • seen on other PRs agent-pane-agents-pill.test.ts by default the running agents sit in the tray above the composer, not in the transcript: failed (job)
  • yours transcript-rhythm.test.ts light 480px: opened cards share lines and count spacing: failed (job)
  • yours transcript-rhythm.test.ts dark 480px: opened cards share lines and count spacing: failed (job)
  • yours transcript-rhythm.test.ts light 1000px: opened cards share lines and count spacing: failed (job)
  • yours transcript-rhythm.test.ts dark 1000px: opened cards share lines and count spacing: failed (job)
Matched log lines
web / react-apps-base-check (5): (fail) a delivered message and a waiting one draw the same line: chevron after the words, actions on hover [1047.52ms]
web / react-apps-base-check (2): (fail) no rule declares a background other than transparent or the two interaction tokens [1.02ms]

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

red: web / Web status; a job it gathers is red on this change (its line here); do not merge until green; see lane-rules
red: web / react-apps-base-check (2); NEW webview test reds: test/browser/transcript-rhythm.test.ts > light 480px: opened cards share lines and count spacing; test/browser/transcript-rhythm.test.ts > light 1000px: opened cards share lines and count spacing; test/browser/transcript-rhythm.test.ts > dark 480px: opened cards share lines and count spacing (+1 more); do not merge until green; see lane-rules
red: web / react-apps-base-check (5); NEW webview test reds: test/transcript-meta-columns-browser.test.ts > light: every meta row shares one icon column and one text column; test/transcript-meta-columns-browser.test.ts > dark: every meta row shares one icon column and one text column; test/incoming-message-disclosure-browser.test.ts > a delivered message and a waiting one draw the same line: chevron after the words, actions on hover; do not merge until green; see lane-rules
red: web / react-apps-check; a job it gathers is red on this change (its line here); do not merge until green; see lane-rules

Shipped in:

@cursor

cursor Bot commented Nov 3, 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

Copy link
Copy Markdown
Collaborator Author

Owned by an agent session · session

@blacksmith-sh

blacksmith-sh Bot commented Nov 3, 2026 •

Copy link
Copy Markdown

Found 11 test failures on Blacksmith runners:

Failures

Test View Logs
src/pages/settings/render.test.tsx/render.test.tsx View Logs
src/pages/settings/render.test.tsx/render.test.tsx View Logs
test/agent-pane-agents-pill.test.ts/agent-pane-agents-pill.test View Logs
test/agent-pane-agents-pill.test.ts/agent-pane-agents-pill.test View Logs
test/browser/transcript-rhythm.test.ts/transcript-rhythm.test View Logs
test/browser/transcript-rhythm.test.ts/transcript-rhythm.test View Logs
test/incoming-message-disclosure-browser.test.ts/
incoming-message-disclosure-browser.test
View Logs
test/incoming-message-disclosure-browser.test.ts/
incoming-message-disclosure-browser.test
View Logs
test/transcript-meta-columns-browser.test.ts/transcript-meta-columns-browser.test View Logs
test/transcript-meta-columns-browser.test.ts/transcript-meta-columns-browser.test View Logs

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

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

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Review (codex gpt-6.1-sol xhigh, next-review): BLOCK at 74c1927

BLOCK at 74c1927
Visual verdict: no images; Leo tries the build

  1. [P1] [blocking] conversation.css:2379 — Update the remaining tests. activityTone.test.ts:12 still requires the old focus selector; replaying that assertion with Node fails. Browser tests also retain incompatible expectations: incoming-message-disclosure-browser.test.ts:240 requires a 22px row, and message-preview-browser.test.ts:94 waits for the removed .cv-received__preview. These leave the webviews suite failing.

Follow-ups:

  1. [P2] [follow-up] model.ts:2030 — Reconcile preview spacing with estimates. DisclosureRow and AgentMessageRow retain a 12px flex gap, so closed stacked rows occupy 22 + 12 + 18 = 52px while estimates reserve 40px. Shell sends have no corresponding gap. This creates inconsistent pitch and incorrect geometry before measurement.
  2. [P2] [follow-up] model.ts:1985 — Add preview height only when the batch renders one. Delivered inbox batches pass senders={undefined} to MessageGroupHead, producing a 22px head, but this branch reserves 40px.
  3. [P2] [follow-up] MessageLineLook.gallery.ts:146 — Supply stacked and opened gallery captures; this head has no images for visual verification.

Thinking keeps its icon in the shared column, moves the token count to the
row's hover title, and a pending card or lane batch with one message renders
as that message's own line.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-fb75b7af9902231028aa
teamleaderleo and others added 2 commits November 3, 2026 02:14
Thinking takes the base's one count (Claude Code's live line) with the split
on hover, keeps its icon column and drops the count on a send line. A tool's
notice keeps its title on its line; a plain message stacks its first line.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-fb75b7af9902231028aa
The live line's words already start on the rows' text column; it keeps the
shimmer as its only working sign (claude-code-tool-rows.test.tsx).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-fb75b7af9902231028aa
…line

The column's inner gap no longer separates a row from its first line, so a
shut message is 40px as its estimate says. Browser tests read the first line
from its own line.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-fb75b7af9902231028aa
…'s line

An empty label slot no longer pushes a stacked received line's chevron away
from the sender. Gallery plays open the waiting group only when there is one.
Layout tests measure a message row's own 22px line and its 18px first line
under it instead of one line.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-fb75b7af9902231028aa
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Review (codex gpt-6-astra high, router-review): BLOCK at 141a58b

BLOCK at 141a58b
Visual verdict: no images; Leo tries the build

  1. [P1] [blocking] webviews/src/agent-session/acpmux/conversation/PendingMessagesCard.tsx:63 removes .cv-pending__toggle for a single message, but existing consumers still require it. incoming-message-disclosure-browser.test.ts:451, agent-pane-suggested-tasks.test.ts:1055, and the queued-message gallery’s menu play (QueuedMessageCard.gallery.ts:61) wait/click that now-absent element. Update these consumers to handle the singleton row; otherwise the browser tests and gallery play time out.

  2. [P2] [follow-up] webviews/src/agent-session/acpmux/model.ts:2000 adds 18px to every collapsed inbox batch. Delivered batches explicitly pass senders={undefined} in LaneNoticeBatch.tsx:94, so they render no preview. Match the renderer’s condition to prevent inflated virtual heights and corrections when these rows mount.

  3. [P2] [follow-up] webviews/src/agent-session/acpmux/conversation/MessageLineLook.gallery.ts:149: no after images were supplied. Check the stacked and opened layouts in the build.

Runtime tests could not run: Bun and dependencies are absent.

Follow-ups:

  • Match inbox-batch estimates to rendered previews.
  • Visually check stacked and opened rows in the build.

Tests and gallery plays open the waiting group only when it is there. A
delivered inbox batch's estimate no longer adds a first line it does not draw.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-fb75b7af9902231028aa
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Review (codex gpt-6-astra high, router-review): BLOCK at 3833f28

BLOCK at 3833f28
Visual verdict: no images; Leo tries the build

  1. [P1] [blocking] webviews/test/message-preview-browser.test.ts:104 — The selected .cv-disclosure__below is now a sibling of .cv-disclosure__line. Consequently, closest(".cv-disclosure__line") returns null and this browser test throws. Find the header through the containing disclosure instead.

  2. [P1] [blocking] webviews/src/agent-session/acpmux/conversation/AgentMessageRow.tsx:137 — Emptying the toggle’s preview collapses its width to zero under the existing transcript flex: 0 1 auto rule. The remaining Playwright click at message-preview-browser.test.ts:130 therefore times out. Preserve a visible toggle target, or update the remaining browser interactions to use the preview/header.

  3. [P2] [follow-up] webviews/src/agent-session/acpmux/conversation/MessageLineLook.gallery.ts:148 — Supply gallery captures of the stacked and opened variants; no images were available to verify their layout.

These findings are from static inspection; Bun is unavailable in this box.

…tests

An empty sent-message toggle has no box, so its line shows its focus ring.
A label-less received line's toggle steps back so its chevron sits within
the row grammar's gap. The first-line gap rule follows the preview rule.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-fb75b7af9902231028aa
@cursor

cursor Bot commented Nov 3, 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

Copy link
Copy Markdown
Collaborator Author

Review (codex, router-review): SHIP at c64a066

Reviewer: codex gpt-6.1-sol xhigh, fast tier.

Follow-ups: 3. Each lands as an issue in this repo that links this receipt; the lane that opened the PR fixes it forward.

SHIP at c64a066
Visual verdict: no images; Leo tries the build

  1. [P2] [follow-up] webviews/src/agent-session/acpmux/conversation/SentMessageLine.tsx:271: The collapsed preview is now aria-hidden, absent from the row’s accessible name, and unmounted elsewhere until opened. Include the preview in the row’s accessible label or description.

  2. [P2] [follow-up] webviews/src/agent-session/acpmux/conversation/AgentMessageRow.tsx:150: Preview clicks bypass foldToggleAt, losing the header’s controlled bottom expansion and scroll anchoring. Route them through the header’s anchoring path; the new previews in SentMessageLine and MessageGroupHead have the same issue.

Static tone tests and TypeScript transpilation passed. React/browser verification was unavailable because dependencies are missing.

Follow-ups:

  • Preserve collapsed send previews for screen readers.
  • Preserve fold anchoring when clicking previews.
  • [P2] [follow-up] webviews/src/agent-session/acpmux/conversation/MessageLineLook.gallery.ts:148: Capture stacked and opened states for visual review.

cmux-bot[bot]
cmux-bot Bot previously approved these changes Nov 3, 2026

@cmux-bot cmux-bot Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cmux-bot approves cdeb192: an independent review passed this exact head (router-review receipt by teamleaderleo). A push needs a new review; a later BLOCK at this head dismisses this approval.

@cmux-bot
cmux-bot Bot temporarily deployed to ci-routing-agent November 3, 2026 13:43 Inactive
@cmux-bot
cmux-bot Bot temporarily deployed to ci-routing-agent November 3, 2026 13:44 Inactive
@cmux-bot
cmux-bot Bot dismissed their stale review November 3, 2026 13:45

A newer verdict blocks ff343a7 (no independent SHIP at the head).

A shut stacked sent row's empty toggle takes back the line's gap before it;
a label-less received line's toggle steps back half as far as before.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-fb75b7af9902231028aa
@cursor

cursor Bot commented Nov 3, 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.

@cursor

cursor Bot commented Nov 3, 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

Copy link
Copy Markdown
Collaborator Author

Review (codex, router-review): SHIP at 00231b4

Reviewer: codex gpt-6-astra high, fast tier.

Follow-ups: 2. Each lands as an issue in this repo that links this receipt; the lane that opened the PR fixes it forward.

SHIP at 00231b4
Visual verdict: no images; Leo tries the build

Static review completed; tests could not run without Bun and webview dependencies.

  1. [P2] [follow-up] webviews/src/agent-session/acpmux/conversation/IncomingMessageCard.tsx:443: Opening a pending group of ordinary messages leaves each child’s header without text: PendingMessagesCard.css:41 hides its sender, and this change removes its inline preview. Preserve an inline preview for those children or restore their sender so each message avoids an empty 22px header above its preview.

  2. [P2] [follow-up] webviews/src/agent-session/acpmux/conversation/MessageLineLook.gallery.ts:163: Capture the stacked and opened variants, including an expanded waiting group, for visual verification; this head has no images.

Follow-ups:

  • Fix empty child headers inside expanded pending groups.
  • Capture and inspect the changed message layouts.

@cmux-bot cmux-bot Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cmux-bot approves 00231b4: an independent review passed this exact head (router-review receipt by teamleaderleo). A push needs a new review; a later BLOCK at this head dismisses this approval.

@teamleaderleo
teamleaderleo merged commit 2a3fba5 into feat-cmux-next Nov 3, 2026
165 of 180 checks passed
@teamleaderleo
teamleaderleo deleted the lane/activity-row-two-lines branch November 3, 2026 15:28
teamleaderleo added a commit that referenced this pull request Nov 3, 2026
…ake (#33993)

#33249 meant to halve the pull-back of a stacked received line's toggle, but
its edit hit the first matching declaration: the inset of a line that starts
with its toggle, which moved sub-session and tool lines 2px right
(transcript-meta-columns, transcript-rhythm). Restore it, scope the stacked
rule to a toggle after the line's sender, and measure the sender's text, not
its padded box, in the delivered/waiting line test.


Agent-Session: https://cmux.com/deeplink/agent?id=aid-fb75b7af9902231028aa

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
teamleaderleo added a commit that referenced this pull request Nov 3, 2026
#33249's stacked rows put a message's first line on its own line under the row
(.cv-msgline__preview), and it toggles the row, but it is no fold toggle: a
click there held nothing, the first line left as the row opened, and the
transcript followed the bottom instead, moving the opened row up (116px in
agent-message-row#sent-opened-long). foldToggleAt now maps a click on a first
line to its row's line, the toggle it stands for.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-3bab30503f0b9a7059e5
teamleaderleo added a commit that referenced this pull request Nov 4, 2026
…p its mended center-line rows

The Landing report click scores 0.0411 or 0.0498 depending on whether the
settle catches one more frame of the fold; a render with this PR's
foldAnchor.ts reverted scores the same 0.0729/0.0816 (cmux-ci run
41747022740), so the rise is #33249's taller lines, not the code change.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-3bab30503f0b9a7059e5
teamleaderleo added a commit that referenced this pull request Nov 4, 2026
…34464)

* Agent chat: message rows read on one line, names whole, in the text tone

Leo, 2026-11-03, on the stacked message rows: "i don't think these subtitles are as
good as just doing it directly in the same line. likewise, idk why everything is grey
other than the recieving message bubble. and idk why names are ellipses'd so early
plus the weird chevron spacing thing".

- messageLineLook.ts: the default is single again (the first line on the row after the
  name); stacked (#33249) stays as a gallery version.
- The other agent's name takes its whole width: no 40%/45% caps; the preview gives way
  first (flex-shrink 1000).
- Sent, received and group rows read in --cv-text; the preview in --cv-text-muted.
- The chevron follows the words (the sentence takes its words' width).
- Gallery: agent-pane.message-line-look leo-capture and leo-capture-stacked.
- Tests: #33249's stacked expectations go back to one line; a unit test covers both looks.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-92fa78a91e29868c5eaa

* Agent chat: one chevron stroke on message rows; opened send in the text tone; chevron-after-label covers message rows

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-92fa78a91e29868c5eaa

* Agent chat: a message row's name never shrinks; only the line caps it

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-92fa78a91e29868c5eaa

* Agent chat: an opened send reads in the transcript's text tone and size

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-92fa78a91e29868c5eaa

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
teamleaderleo added a commit that referenced this pull request Nov 4, 2026
…live line's one count

The review at 9442a34 found that the revert of #33249's tests also took back its updates for one
waiting message drawn as its own line (PendingMessagesCard.tsx) and the live line's one-count
test. Those are back at base.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-94034a474bb122250a8d
teamleaderleo added a commit that referenced this pull request Nov 4, 2026
…d-row shift rows follow #33249 (#34149)

* gallery: sent-row plays click the stacked first line; minimal received-row shift rows follow #33249

#33249 made message rows stacked by default: the verb, recipient and chevron
on the row, the message's first line on its own line under it. A send's
first line left the row's accessible name and a shut AgentMessageRow's
toggle holds no words, so the plays for sent-message-rows#with-preview and
agent-message-row#sent-opened(-long) click that first line, which toggles
the row. Opening "Received N messages" in Minimal Mode now draws three
40px lines instead of 22px ones, so the rows under it move further
(0.0175 -> 0.0318, the same ratio); the two shift rows follow.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-3bab30503f0b9a7059e5

* Transcript: a click on a message row's first line holds the row's line

#33249's stacked rows put a message's first line on its own line under the row
(.cv-msgline__preview), and it toggles the row, but it is no fold toggle: a
click there held nothing, the first line left as the row opened, and the
transcript followed the bottom instead, moving the opened row up (116px in
agent-message-row#sent-opened-long). foldToggleAt now maps a click on a first
line to its row's line, the toggle it stands for.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-3bab30503f0b9a7059e5

* gallery: minimal-open's shift row follows #33249's stacked lines; drop its mended center-line rows

The Landing report click scores 0.0411 or 0.0498 depending on whether the
settle catches one more frame of the fold; a render with this PR's
foldAnchor.ts reverted scores the same 0.0729/0.0816 (cmux-ci run
41747022740), so the rise is #33249's taller lines, not the code change.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-3bab30503f0b9a7059e5

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: cmux-bot[bot] <348531757+cmux-bot[bot]@users.noreply.github.com>
teamleaderleo added a commit that referenced this pull request Nov 4, 2026
…w the live line kept last (base reds) (#34620)

* gallery: message-row plays click the one-line row's first line (#34464)

#34464 returned message rows to one line: the first line sits on the row
after the name, and stacked (#33249) stays a gallery version. #34149's plays
clicked .cv-agentmsg__below, the stacked first line, which the default no
longer draws (agent-message-row#sent-opened, #sent-opened-long: no element),
and message-line-look#opened waited for Copy under the opened message,
which only the stacked version moves there (waitFor timed out). The plays
click the first line's words on the row, never the recipient's chip, and
wait for what the one-line look draws.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-3bab30503f0b9a7059e5

* gallery: shift rows follow the one-line message rows and the live line kept last

incoming-message#minimal-fade-count, #minimal-inline-name and #minimal-open
go back down to 0.0175, 0.0175 and 0.0624: #34149 raised them for #33249's
stacked lines, and #34464's one-line rows measure 0.01749, 0.01749 and
0.0623 again on base (push run 41756372530).

queued-agent-messages#subsession-outbox and composer#queued-from-agent-open
open a waiting message above the running turn's live Thinking line, which
#34370 keeps as the last row by design (Leo: "thinking shimmer not being at
the bottom looks bad"), so opening it moves the live line down by what
opened (0.0159, 0.0082). Their 0 rows were measured with the live line over
the waiting group.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-3bab30503f0b9a7059e5

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

This branch was previously deployed

1 inactive deployment
ci-routing-agent — 00231b45 Deployed Nov 3, 2026 by teamleaderleo via cmux-tui tree preflight #106506
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