Agent chat: every status row's words on one column; session names read as words
Leo, 2026-11-03, on a running turn's last rows ("Subagent finished: [Push stranded lane ref] āŗ 4m 1s", "Writing a command 5m 16s Ā· ā 7.5K out ā 2.1M in", "š¤ 1 message from 1 session"):
weird indenting /cut off text?
This follows #33083, which fixed the cut-off name. Two more fixes here:
- One text column for every status row. The live line ("Thinking", "Writing a command", "Running ā¦") drew no icon, so its words started on the icon column, 24px left of the words in "Subagent finished" and "1 message from 1 session". It now keeps the shared icon slot empty (
.cv-worked--live,padding-inline-start: var(--cv-tool-text-inset)), so its words start where every iconed row's words start. The design spec already says this: design/chat-transcript.md, "One icon column": "a row without one still starts its words at that x", and "the live activity line ... reserves the shared empty icon slot". A folded turn's "Worked for" line keepscol-left. The cause dates to before the 22-pitch work:.cv-workednever reserved the slot. - Session names read as words. The waiting head's senders (
.cv-message-group__senders) inheritedfont-variant-numeric: tabular-numsfrom the status line around them. In Inter, tabular figures widen every digit, so a lane name such as "lane-2/message-actions" read as letter-spaced. Names and session chips (.cv-agent-tag) now use normal figures. #33062 restyled the chips withletter-spacing: inherit, which is the row's own 0.045px tracking, so it is not the cause. Timers keep tabular figures. - Fix-forward for #33083: its failed-with-long-error check ran at 420px, where the name alone is wider than the room the line leaves it. It now runs at 900px.
Design spec: leo-workspace design/chat-transcript.md ("One icon column") and design/transcript-spacing.md (rule 3). References: cmux-design-references cmux/live/status-running-bar-subagent-chip-clipped and cmux/live/transcript-activity-rows-spacing (Leo's captures).
Test
cmux-ci test --setup playwright -- bash -c 'cd webviews && bun test test/transcript-status-text-column.test.ts', on gallery agent-pane.transcript-spacing-table, variants working-bottom and reply-received:
- Red on base (test commit, before the fix): 3 of 4 fail. The live line is 24px left of the iconed rows in both variants, and the senders use
tabular-nums. - Green at the fix: passes, along with
bun run check, transcript-row-alignment, transcript-spacing-kinds, session-chip-browser, transcript-chevron-after-label, transcript-live-line-continuous, transcript-glyph-alignment, agent-pane-working-counts and subagent-done-chip-width, 158 tests in all. The one #33083 test that failed is fixed above and was re-run green.
Observed / Not run
- Observed: the fleet runs above,
scripts/web-lint.sh(heavy checks left to CI on this host) andprepush-gate.py. - Not run: a DEV or nightly build. The running tray above the composer ("1 subagent running Ā· 1 command") is a separate ask in the same capture and is not changed here.
Changelog
- Fixed: In the agent chat, the running line's words line up with the other status rows, and session names no longer look letter-spaced.
Agent session: agent session
š¤ Generated with Claude Code