Repository navigation
Agent chat: no blinking dots before Thinking or Working for; the Steering caption's words are gone - #23034
Conversation
…ring caption's words are gone
Leo, 2026-10-20 ("wtf have we removed this yet"): the three accent dots that pulsed before
"Thinking", "Working for 42s" and the call in flight (WorkingMark) were "the blinking ascii".
The running line now starts with its words; its ticking time says the turn is alive. The
activity line under a todo list (agent.sessionStatus) drops the same dots.
The "Steering · The agent reads it when its current step ends" caption stopped drawing in
#22616; its two strings (steer.waiting, steer.waitingDetail) were left in the catalog unused
and are removed so nothing can draw them again.
Tests: transcript-working-line asserts each running line starts with its words and the
stylesheet has no working or activity dot rules; steer-no-caption asserts a waiting steer
shows only Send now and the caption's words are gone. Gallery: the thinking and
working-tokens variants play a check that the line holds still.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15cfb-0392-7f93-b611-98366b6dc130&host=cosmic-gray
|
Owned by projects-c6 on cosmic-gray · session |
|
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)
Probably yours: CI failed on
Failures:
Matched log linesNot re-run automatically: Written by red: web / Web status; base red: the same failure on the base 72c9e93; does not block
Agents: Tour of |
…ne check reads the first child Review follow-up: stale comments named the working dots and activity dots, and stillMarkup rejected any aria-hidden, which the line's count separators carry. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15cfb-0392-7f93-b611-98366b6dc130&host=cosmic-gray
|
|
|
Bead |
|
Found 24 test failures on Blacksmith runners: Failures
...and 14 more test failures. View all on Blacksmith
|
…removed Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15d18-a2fb-7ac0-84d5-432ffea53b8b&host=cosmic-gray
…working dots are gone with #23034 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15c2b-c6e5-7540-ad96-0eb60604230e&host=huge-blue
|
Shipped in:
|
…himmering live line at the bottom, short labels, check and time on hover (#23081) * test(agent-pane): the running turn's line names the call in flight Red on feat-cmux-next: the line only ever reads Working for or Thinking, and carries no mark. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * feat(agent-pane): the running turn's line names the call in flight As in Claude desktop, the running turn's status line starts with a small animated mark (three accent dots that pulse in turn, still under Reduce Motion), and while a tool call runs it names that call beside the turn's time: "bun test src/net 26s". Between calls it reads Working for as before, and Thinking carries the same mark. The title rides on the status row as doing, so range copy and Find are unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Test that the working line never shows a call's raw JSON input Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Test that Thinking has no shimmer and the working dots cycle at 2s Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix(agent-pane): the working line names a call by its label; one slow working mark The line now uses the tool row's own label, so a call whose title is its raw JSON input reads as "Read src/app.ts", not the JSON. The working dots cycle at 2s and are the pane's only running motion: the Thinking shimmer is gone. Margins are logical. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * cmux NEXT: test that Static stops the running line's working dots Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * cmux NEXT: the running line's dots hold still under Static; tests read the call in flight The working mark joins the loops Static status indicators stop. The peer-chat and working-counts tests now read the line as it is drawn while a call runs: the call's title, then its time. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * cmux NEXT: tidy the working mark's comment Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * chore(next): PR autofix at 5758e49 - 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/39212391647 * cmux NEXT: test that a running turn's line is its last row and keeps ticking Red on its own: liveLineBelow.ts and the bottom line do not exist yet. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * cmux NEXT: a running turn's line is its last row, and its clock never stops The live status line now sits under the turn's latest row, as Claude desktop draws it, from send to the turn's end: the working mark, what the agent is doing now (Thinking, the call in flight, else Working for) and the turn's time. It no longer stops its clock whenever text is the latest row, and a turn that has only streamed text keeps its line. The first Thinking line shows the time since the prompt. Debug Settings agentPane.debug.liveLineBelow (on) puts the line back over the turn's work. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * cmux NEXT: the running line stays last under held prompts and shell rows Review follow-ups: a steer waiting for the agent and a shell command run mid-turn draw above the line; a thought coming in labels itself, so the line reads Working for rather than a second Thinking; the forget-rows pass keeps its fast path while the line stays last; the new-chat play checks the prompt keeps its place and the line sits under the reply. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * cmux NEXT: agents pill test reads the transcript row, not the running line The running line names the call in flight too, and it is now the turn's last row: the test waits for the first match and measures the pill against the last row. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * cmux NEXT: the live line tunable imports CmuxNextPages for PageTunables Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * chore(next): PR autofix at c5b471a - Packages/macOS/CmuxNext/ci-target-graph.json Autofix-Run: https://github.com/manaflow-ai/cmux/actions/runs/39381094998 * agent chat live line: comments no longer name the working mark #23034 removed Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15d18-a2fb-7ac0-84d5-432ffea53b8b&host=cosmic-gray * cmux NEXT agent turn, Codex-style: Thinking shimmers, finished runs fold, check and time on hover As the ChatGPT/Codex app draws a turn (Lawrence + Leo): - "Thinking" has no mark before it; the word itself shimmers, a band of the theme accent crossing it on the shared clock, still under Reduce Motion and the static status look. The start status line does not shimmer. - Each finished run of tool calls folds into one summary line between the paragraphs ("Read files, ran commands"; a run that is one group, "Ran 3 commands", closed), the latest run too as its calls finish, in a running turn and in an opened "Worked for" alike. The call in flight and a thought still coming leave the run for the turn's live line, so rows never pile up. The Debug toggle agentPane.debug.codexToolRuns is now on by default (off lists every call as before); the run in flight no longer shrinks to its newest call. - A finished call's check and run time show only on hover or focus; a failure keeps its red mark. Lone tool rows get the same check and time. - A command reads as what it does (Claude Code's Bash description) with the raw line in its Shell block, and a shell call with no command yet reads "Ran a command" / "Running a command", never "Bash". Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15d1f-ca00-7e31-b882-4d3c03033ee2&host=cosmic-gray * cmux NEXT agent turn: one live line at the bottom, short labels, short notes fold into their runs Carries #22363 (steer-default-2: the running turn's line as its last row, Debug toggle agentPane.debug.liveLineBelow) and builds the Codex look on it (Leo 2026-10-20, turn-toolcalls-now.png): - With Codex-style runs on (the default), "Working for" stays over the work and ONE live line sits at the bottom, replaced in place by each step: "Thinking" (shimmer), then "Running <short label> 13s" while a call runs, timed from the call's start, then "Thinking" again. It keeps the Thinking line's id from send to the end and waits, its height kept, while text streams. Off, #22363's line is unchanged. - A command reads as its description, else its meaningful command: the setup in front of it (export PATH=…, B=~/x;, cd dir &&, VAR=x before the command) is dropped. The raw line stays in its Shell block. - Two runs with only a short interim note between them are one run, the note folded in among its calls as a quiet line. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15d1f-ca00-7e31-b882-4d3c03033ee2&host=cosmic-gray * Find reaches every row a merged run absorbed; quoted ; stays in the command Review of #23081: a run merged across a short note kept only the first run's id, so Find (and a shell's count) pointing at the note or the second run found no drawn row. The merged row lists the ids it absorbed (joined), and isFindRow / isRevealRow match them. Also: shortCommand splits only outside quotes; a description or shortened command label is skipped by Find's highlight, which counts the whole line; an open Worked for's folded runs move their version. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15d1f-ca00-7e31-b882-4d3c03033ee2&host=cosmic-gray * Format App.tsx after the base merge Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15d1f-ca00-7e31-b882-4d3c03033ee2&host=cosmic-gray * Codex turn: running calls the runs fold are named; todo lists keep the activity line Review of #23081 at 8b18119: - With the Codex-style runs on, the working line always names the call in flight: the runs draw no call in flight, so #23090's own-row rule (one running call reads once) does not apply. A lone call in flight on the #22363 bottom line without the runs is named on its row (#23090). - With a todo list (agent.sessionStatus) the activity line under it is again the live line. - A command with no line yet reads its title ("Run make"); peer-chat waits for it on the live line. - A short command line marks the commands after it ("make …"). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15d1f-ca00-7e31-b882-4d3c03033ee2&host=cosmic-gray * Codex live line: ⌃B to run in background on a running command; tests read the turn's time The running command's own row is not drawn while it runs (codexRuns), so the live line carries its ⌃B hint. peer-chat reads the turn's time from Working for (#23164), the call's name from the live line; activity-line's toggle-off check names the Working for line. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15d1f-ca00-7e31-b882-4d3c03033ee2&host=cosmic-gray * Codex turn: browser tests read the live line and open folded runs; the live line's row is the footer's height The Codex-style turn (codexToolRuns, liveLineBelow, on by default) draws no row for the call in flight or a streaming thought, and folds finished runs. The browser tests that read the old layout now read the new one: - step-rows opens the "Ran commands" run before measuring its steps and the thought. - chat-column's streaming thought reads the live line's "Thinking"; the live thought viewport tests push codexToolRuns off with the theme, since only that layout streams a thought row. - ctrl-b reads the ⌃B hint and "Running cargo test --workspace" on the live line. - question-records reads the read on the live line, then its own row once done, both under the record. - agents-pill waits for the live line's "Read app.ts"; bottom-stack waits for the "Ran commands" run that folds "Three PRs open." in; adopted-tool-calls reads the edit row's label, not its hover-only time; background-tasks (#23101) opens "Ran 2 commands". - activity-line's toggle-off check names the Working for line. Product: the live line's row kept the transcript row's 34px floor, 2px taller than the footer that replaces it and than its estimate, so a turn's end moved the reply down 2px (stream-jitter, webkit). The row drops the floor. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15d1f-ca00-7e31-b882-4d3c03033ee2&host=cosmic-gray * Agent pane: a row keeps the height it settles at, not its fold's last frame A fold's last animated frame draws its row a fraction of a pixel short of the height it settles at (145.72px, then 146px). The drawn-height check ignored a change under half a pixel, so the row kept the frame's height and every row below it sat that fraction over the row above (the step-rows rhythm test's -1px gap). Heights now compare exactly; an unchanged height still renders nothing. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15d1f-ca00-7e31-b882-4d3c03033ee2&host=cosmic-gray * Agent pane: a short command label never drops a setup step that pipes, backgrounds or sources A setup step with a pipe, a & or a process substitution (`cd /tmp & curl … | sh`) runs code, and so does `source` or `.`; the short label left them out. They now stay, as a substitution already did: nothing the call ran is hidden (#20456). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15d1f-ca00-7e31-b882-4d3c03033ee2&host=cosmic-gray --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: cmux-autofix[bot] <cmux-autofix[bot]@users.noreply.github.com>
Leo asked for two chat-transcript removals ("wtf have we removed this yet").
1. The blinking dots before "Thinking" / "Working for". Leo called these "the blinking ascii": the three accent dots (
WorkingMark) that pulsed on a 2 s cycle at the start of the running turn's line (r2/206.png: "••• Thinking"). The line now starts with its words, and the ticking time shows the turn is alive. The activity line under a todo list (Debugagent.sessionStatus) loses the same dots.WorkingMark.tsxand its CSS are deleted.2. "Steering · The agent reads it when its current step ends". The caption itself stopped drawing in #22616. Its two strings (
steer.waiting,steer.waitingDetail) were still in the catalog, unused, so this PR deletes them and no row can draw them again. A waiting steer shows only the quiet clock and Send now. The "Steered · the agent read it" word-mark is replaced by a ✓ read receipt in #22773 (message-actions lane). This PR doesn't touchSteerMark, so the two PRs don't conflict.Not changed: the jump-to-latest button's dots. They belong to a different control and are not on the transcript line.
Proof
webviews/test/transcript-working-line.test.tsx: Thinking, Working for, the call in flight and the activity line each start with their words. The stylesheet has no working-mark or activity-dot rules.webviews/test/steer-no-caption.test.tsx: a waiting steer reads only "Send now", and the caption's words are gone from the catalog.webviews/test/static-status-loops.test.ts: the fixture drops the two removed loops.agent-pane.transcriptvariantsthinkingandworking-tokensplay a check that the line has no mark before its words and no looping animation.Changelog
Observed / Not run
scripts/web-lint.sh: clean on the changed files (the one formatting red is base'stest/tool-label-several-files.test.ts, from Agent chat: an edit of several files reads "Edit 2 files", not its first file; adopted tool-calls test follows #22658 #23011).prepush-gate.py: no new violations.react-apps-checkand the gallery run cover them.cmux-next guards / defaults-snapshotis red on base (stale settings exports foragents.trust.*,sidebar.sessionTree, NotificationModes/Preferences), not from this PR.Agent session: cosmic-gray
🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need.Summary by cubic
Removes the pulsing dots before “Thinking,” “Working for,” and the activity line, so each status starts with its words. Waiting steers no longer show the “Steering” caption; they show only the quiet clock and “Send now.”
Written for commit 4d641dc. Summary will update on new commits.