Repository navigation
Transcript: a reply's buttons come first at the prose edge, its time on hover; the last reply's show at rest - #31609
Conversation
…he last reply's buttons show at rest Leo, 2026-11-02: "this should not be placed in front of the copy/whatever buttons. those buttons should always just be there left aligned" and "i should be able to see the copy buttons on your responses when your things end". Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-e9d08b9237cbd1067052
|
Owned by an agent session · session |
…ooter-buttons-first # Conflicts: # webviews/src/agent-session/acpmux/conversation/TranscriptRowAlignment.gallery.ts # webviews/src/agent-session/acpmux/conversation/TurnRows.tsx # webviews/src/agent-session/acpmux/conversation/conversation.css
|
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)
Gallery before/after for
States
Pick other states with a Unclear: CI failed on
Not re-run automatically: Written by red: web / Web status; a job it gathers is red on this change (its line here); do not merge until green; see lane-rules Shipped in:
|
|
For Leo (teamleaderleo): this PR made check:popup-hover-reveals red on feat-cmux-next (conversation.css:3828). The two new .cv-turn-time hover reveals have no :has([data-popup-open]) twin, so the time hides while a menu from that reply is open. Fix: #31640 (reviewed SHIP, ready-to-land). Found by agent tip-fix-0200. |
|
Review (codex gpt-6.1-sol high, sweep, via the review router; full diff from merge base 6b63875 to this head): SHIP at 7ff48d4 [P2] [follow-up] |
…1609) (#31640) #31609 (de9d3bb) shows a reply's time on :hover of .acpmux-turnSummary and .acpmux-assistant, without the :has([data-popup-open]) twin that every hover reveal has, so check:popup-hover-reveals is red on every webviews push. When the pointer goes from the reply into its menu, the time hid while the buttons stayed. Both selectors now match an open popup too, as .cv-turn-actions already does. check:popup-hover-reveals: red at origin/feat-cmux-next 8e630df (2 lines, conversation.css:3828), green here.
…31932) * test(webviews): turn footer test follows the reply footer of #31503 and #31609 The last reply's footer now shows at rest and .cv-turn-summary is gone. Rewrite the at-rest/hover test against that; drop the summary layout test, which reply-footer.test.ts now covers. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-ac5053f7854c8635a4d0 * test(webviews): drop a stray closer Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-ac5053f7854c8635a4d0 --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…r gaps, sent rows, reply time) (#32269) * base red: gallery plays wait for what the transcript draws now - gutter-select gap pairs: the drag starts on the upper row's gap target. Since #27580 rows have no bottom padding (the stack places the gap under the row), so the old start point (row bottom - padding/2) landed on the row's content and selected nothing. - sent-message-rows: a turn's run of sends folds into one "Sent N messages" line (#31398); the plays open it after "Worked for". - transcript#agent-messages: opens the message-run line (#31398), then the shell call. - transcript#grid-rhythm-hover: a reply mid-turn draws no action row since #29740 (Copy once per turn); the play hovers the reply and checks none is drawn. - user-bubble#answer-time-tooltip: since #31609 a reply's time is its exact time at the row's end, shown on hover, and its tooltip is the turn's time and tokens; the play waits for the time to show instead of a tooltip with a year. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-ac5053f7854c8635a4d0 * base red: batch-raw and message-runs#open open the folds their rows sit in now; sent rows' shift rows count the run they open - acpmux-batch-send: openTurn opens the "Sent N messages" line (#31398) after Worked for. - message-runs#open: opens a finished turn's Worked for first when the run's line is inside it. - shift-baseline: sent-message-rows sent, look-arrow, look-quote and recorded-file now open one more fold (the run line), which moves the reply and footer below it down 154px, as every fold opening does; their rows take the measured score (PR run 41446958864). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-ac5053f7854c8635a4d0 * base red: batch-raw shows a file-read message's call without Raw; batches' shift row counts its run A batch message whose text the transcript never held opens straight to its call (SentMessageLine.tsx), so batch-raw waits for the call itself and clicks Raw only when one is drawn. batches now opens the run line (#31398), which moves the reply below it, so its row takes the measured 0.04078 (PR run 41449180896). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-ac5053f7854c8635a4d0 --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Leo, 2026-11-02 00:28Z: "this should not be placed in front of the copy/whatever buttons. those buttons should always just be there left aligned"
Leo, 2026-11-02 00:29Z: "i should be able to see the copy buttons on your responses when your things end"
Leo, 2026-11-02 00:35Z: "compared to claude code our bottom thing looks bad is sized bad all around spaced bad + the useless text at the front + didn't i always say we can do it like chatgpt / i assume the x previous messages are when there's a mix and the worked for is if it's one contiguous thing. notice how on hover it reveals the exact timestamp. let's follow those."
What changes
The reply footer (
TurnRows.tsxTurnFooter,MessageActions.tsxReplyActions) now follows ChatGPT's row:inset-inlineoverhang and the first button's margin both pulled it left. The row now starts on the column and overhangs only at its end.acpmux-row--final-footerand tests it. Earlier footers still show on hover.Regressing PR: #30176 (e9f2496, "a finished Claude turn folds per run"). It set
folded = falsefor Claude turns, soturns.tsfooterSays()became true for every Claude turn, andTurnFooterdrew the "Worked for · tokens" label ahead of the buttons on every Claude reply. The label was added in #16612 and its tokens in #24259; before #30176 it only showed for turns that had no fold. #31505 (merged while this PR was open) moved the label after the buttons. This PR takes it out of the row and puts it in the time's tooltip, as the ChatGPT reference does, and updates #31505's test to match.Not in this PR. These follow separately:
Tool-row spacing and the composer are untouched.
Tests (red at base, green at head)
webviews/test/reply-footer.test.ts(new, Chromium, light and dark):webviews/test/transcript-row-alignment.test.ts: the "footer label" lead is removed, since footers have no label now. With base red: transcript status-row gaps and the empty footer on the grid #31475's test changes merged in, it passes at this head. At base it fails withfooter actions "first glyph" starts at -6pxandfooter label "Worked for 5s" starts at 52px.TurnFooter.test.tsx: the label is in the time'stitleand not in the row. A footer whose only content was its label is now empty.check:design-tokens,vp fmt --checkandvp lintpass (cmux-ci 32-vCPU Linux).Gallery:
agent-pane.transcript-row-alignmentgetsfinished(rest) andfinished-hovervariants, and itsfootervariant points at the buttons. The design spec is updated in a separate leo-workspace PR (design/chat-transcript.md).Viewed after image: yes. 2x captures of the last reply at rest and on hover, light and dark (synthetic gallery data): the copy glyph's ink lines up with the reply's first letter, nothing shows before the buttons, and "Oct 6, 9:25 AM" appears 8px after the last button only on hover.
Remaining reds are base reds:
check:design-tokens(a pages/changelog baseline that can shrink), and the row-gap and footer-height assertions that #31475 updates.Risk: low. CSS and markup in the reply footer only. A footer whose only content was "Worked for Ns" (no text to copy) now takes no line of its own, the same as one under a second.
Agent session: agent session
🤖 Generated with Claude Code