Skip to content

Agent pane: the live line stays shown while a reply streams - #35028

Merged
teamleaderleo merged 2 commits into
feat-cmux-nextfrom
lane/live-line-stays-visible
Nov 4, 2026
Merged

teamleaderleo merged 2 commits into
feat-cmux-nextfrom
lane/live-line-stays-visible

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Nov 4, 2026 •

Copy link
Copy Markdown
Collaborator

Leo: "it appears and disappears????" (with a capture of a running agent chat where the spot under his message showed nothing)

Leo-ask: ask-245840dfaf

What was wrong

The running turn's live line (the Codex-style line at the bottom of the turn) hid itself with visibility: hidden whenever the reply above it streamed, and came back only once the text had held still for 1.2s (useQuiet with QUIET_MS, .cv-worked.is-quiet). Replies stream in bursts, so the line blinked in and out at every pause in the stream.

Fix

The live line never hides mid-turn. While the reply's text moves it stays where it is and reads "Writing", then "Thinking" after WRITING_MS (5s) of quiet, the labels liveState: "writing" already gave it. Its height and place are unchanged, so nothing moves.

  • Thinking.tsx: drops the quiet hide on the live line (and the now unused QUIET_MS); the useQuiet timer still drives Writing → Thinking.
  • loadDebug.ts / agent-pane-stream-renders.test.ts: the stream harness now counts frames with the live line hidden while a reply streams and expects 0 (it used to count shown frames and expect 0).
  • Thinking.test.tsx, transcript-codex-live-line.test.tsx: assert the line stays shown and reads Writing.

Design spec: design/chat-transcript.md (the live line keeps the Thinking line's id from send to the turn's end, so it never leaves and comes back). This undoes the hide-while-streaming behaviour from the live-line work (#34004's review kept it hidden while streaming); Leo's capture asks for the opposite.

Risk: small, one component; no timers added (one fewer useQuiet timer per live line).

🤖 Generated with Claude Code

Agent session: agent session


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


Summary by cubic

The running turn's live line no longer hides while its reply streams, so it stops flickering in and out at every pause in the text (Leo, 2026-11-04: "it appears and disappears????"). The line used to hide itself with visibility: hidden as soon as the reply text above it moved and returned only after 1.2s of quiet; streamed text moves in bursts, so the line blinked constantly. It now stays where it is and reads "Writing" while the text moves, then "Thinking" after 5s of quiet, the labels liveState already gave it.

Bug Fixes

  • Thinking.tsx drops the quiet hide on the live line and the now-unused QUIET_MS; no timers added, one fewer useQuiet timer per live line.
  • The debug harness now counts frames where the live line is hidden during a reply stream and expects zero, instead of counting shown frames.
  • Tests assert the live line stays shown and reads "Writing" under a streaming reply.

Written for commit 7981b43. Summary will update on new commits.

View guided diff Turn on auto-fix

Leo: "it appears and disappears????"

The running turn's live line hid (visibility: hidden) whenever the reply
above it streamed, and came back only after the text held still 1.2s
(useQuiet/QUIET_MS). Text streams in bursts, so the line blinked in and
out at every pause. It now stays where it is and reads "Writing" while
the text moves, then "Thinking" after WRITING_MS, as liveState already
labelled it.

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

github-actions Bot commented Nov 4, 2026 •

Copy link
Copy Markdown
Contributor

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

Review 7981b43: 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=pr35028 -f ref=lane/live-line-stays-visible -f platform=macos -f backend_mode=local

Shipped in:

@github-actions github-actions Bot added the risk:normal Risk tier (docs/ci/risk-tiers.md) label Nov 4, 2026
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Review (subagent claude-opus-5-5 medium): SHIP at 7981b43

Visual verdict: no images; the live line stays where it was and reads "Writing" instead of hiding while text streams.

Checked: codexLiveTurn sets quietKey/quietAt/liveState "writing" for a streaming reply, so the line reads "Writing" from the first token (useLayoutEffect, no "Thinking" frame under it); no remaining references to QUIET_MS, live_line_shown or liveLineShown; .cv-worked.is-quiet still serves the silent start look; the updated tests match.

Follow-ups:

  • F1 [follow-up] outcome:pending: followRoom (followGlide.ts:31) still gives the glide the live line's height as room, so the now-shown line rides the 180 ms ease down by up to its height on each wrap. Keep the line still during the glide without new text landing on it.
  • F2 [follow-up] outcome:pending: App.tsx comment near the glide ("the room the live line keeps under it") still assumes a hidden line.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Finding outcome: comment-6625029035/F1 filed-follow-up #35038
Finding outcome: comment-6625029035/F2 filed-follow-up #35038

@blacksmith-sh

blacksmith-sh Bot commented Nov 4, 2026

Copy link
Copy Markdown

Found 6 test failures on Blacksmith runners:

Failures

Test View Logs
/tmp/tmpsls21kx1/summary-fail.json (live):/summary-fail.json (live): View Logs
/tmp/tmpy1lmwarz/summary-missing.json (live):/summary-missing.json (live): View Logs
[new_workspaces] debug.new_workspace timed 0 of 50 new workspace rows/
[new_workspaces] debug.new_workspace timed 0 of 50 new workspace rows
View Logs
[new_workspaces] the window draws no frames/[new_workspaces] the window draws no frames View Logs
[tabs] debug.tab_switch timed 0 of 40 switches/
[tabs] debug.tab_switch timed 0 of 40 switches
View Logs
[tabs] the window draws no frames/[tabs] the window draws no frames View Logs

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

@teamleaderleo teamleaderleo left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Review (codex gpt-6-astra high, next-review, since=20261104T074607Z): SHIP at 7981b43

SHIP at 7981b43

Visual verdict: all 16 supplied before/after pairs reviewed; no introduced layout regressions.

No actionable correctness findings. Tests could not run because Bun and dependencies are unavailable in this box.

Follow-ups: none

@cmux-bot
cmux-bot Bot temporarily deployed to ci-routing-agent November 4, 2026 07:58 Inactive
@cmux-bot
cmux-bot Bot temporarily deployed to ci-routing-agent November 4, 2026 08:03 Inactive

@teamleaderleo teamleaderleo left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Review (gpt-6-astra): SHIP at 0a2f13c

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Review (codex gpt-6-astra high, router-review job 9ffac2453036d627f16edb053c5e21a4, carried: its --post hit the spent REST quota): SHIP at 0a2f13c

Visual verdict: no images; Leo tries the build

Follow-ups:

  • [P2] [follow-up] [category:ux] [finding:F1] [outcome:pending] Add an after screenshot for the live-line streaming state.

@teamleaderleo
teamleaderleo merged commit 02ec861 into feat-cmux-next Nov 4, 2026
178 of 180 checks passed
@teamleaderleo
teamleaderleo deleted the lane/live-line-stays-visible branch November 4, 2026 09:06

This branch was previously deployed

1 inactive deployment
ci-routing-agent — 0a2f13c0 Deployed Nov 4, 2026 by cmux-bot[bot] via wait for same-key tree publisher #110554
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