Skip to content

fix(web): show one live line per coordinator turn - #219

Merged
TheGreatAxios merged 4 commits into
mainfrom
cl-12089-show-one-progress-indicator-per-coordinator-turn
Nov 7, 2026
Merged

TheGreatAxios merged 4 commits into
mainfrom
cl-12089-show-one-progress-indicator-per-coordinator-turn

Conversation

@TheGreatAxios

@TheGreatAxios TheGreatAxios commented Nov 7, 2026 •

Copy link
Copy Markdown
Contributor

Closes CL-12089

What changed

A coordinator turn shows one live line, at the bottom, instead of "Working…" and "Thinking…" together.

  • The live run's line shimmers (CSS on the trigger, no package patch), so it alone shows the turn is at work.
  • "Thinking…" drops the mountain mark and takes the run line's box, so the hand-off doesn't move. It shows only when no run line is the bottom live line (before the first step, after words, below a card).
  • Run lines and "Thinking…" start under the speaker's name.

How it was verified

  • lint, format:check, typecheck, pins:verify pass; bun run test 327 pass. The new test fails on main.
  • Ran main and this branch against a local hub with a fake model, screenshotting each stage. A pixel check confirms the run line animates only while live and the text edge matches the name.

Follow-up

The shimmer rule reaches into ActivityTrigger's first span. A react-ui change where a live run (including one with no steps yet) renders its own shimmering trigger would let Builder drop the rule and the separate "Thinking…" line.

Before / after (left: main, right: this branch)

before and after

stages

alignment

Videos: side by side · before · after

@linear-code

linear-code Bot commented Nov 7, 2026

Copy link
Copy Markdown

CL-12089

@TheGreatAxios

Copy link
Copy Markdown
Contributor Author

Self-review

  • Live line choice is computed once in transcript.tsx (wordsLast, runLast); a run above a card stays settled and "Thinking…" shows below the card, which is the CL-12089 repro.
  • Shimmer is a CSS-module rule on .liveRun > span:first-child. It depends on ActivityTrigger keeping its line as the first span; a react-ui upgrade that changes that drops the shimmer silently (no error). Reduced-motion and forced-colors fall back to solid text, matching ShimmerText.
  • The run line has no role="status", so when it is the only live sign nothing is announced to screen readers. Belongs in the react-ui follow-up.
  • Test checks one live line (by data-*), not the shimmer itself.

@corbits-triage

corbits-triage Bot commented Nov 7, 2026 •

Copy link
Copy Markdown

Triage: Pass

No changes needed from you. A maintainer will review this pull request.

corbits-triage[bot]
corbits-triage Bot previously approved these changes Nov 7, 2026
@TheGreatAxios

Copy link
Copy Markdown
Contributor Author

3d40cb9 lines the run line up with the speaker's name. The trigger's px-1 padding now hangs outside it, and "Thinking…" drops its inline padding, so the hand-off still doesn't move.

Left: before (5ed9be4). Right: after. Waiting, live run, done, done opened.

alignment

The text's left edge sits at x=36 in every stage, same as "Coordinator" (it was 40 before). The opened steps don't move. The shimmer still animates only while live.

corbits-triage[bot]
corbits-triage Bot previously approved these changes Nov 7, 2026

@corbits-triage corbits-triage 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.

No defects reported.

@TheGreatAxios
TheGreatAxios added this pull request to the merge queue Nov 7, 2026
Merged via the queue into main with commit d4111e1 Nov 7, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant