Repository navigation
feat(web): live TR brand badge as the agent-working indicator - #630
Merged
Merged
Conversation
danyaberezun
requested review from
Olga Lavrichenko (OLavrik),
Rustam Sadykov (SBOne-Kenobi) and
Rinat S (rsolmano)
as code owners
October 5, 2026 01:40
danyaberezun
force-pushed
the
tr-live-icon-mockups
branch
from
October 5, 2026 01:44
cc58258 to
31b010b
Compare
Rinat S (rsolmano)
approved these changes
Oct 5, 2026
Rinat S (rsolmano)
left a comment
Collaborator
There was a problem hiding this comment.
Approving. One non-blocking note inline about the rail signals — up to you how to handle it.
…nstead of rail signals
danyaberezun
force-pushed
the
tr-live-icon-mockups
branch
from
October 5, 2026 18:56
31b010b to
4c184d7
Compare
Rinat S (rsolmano)
approved these changes
Oct 5, 2026
github-merge-queue
Bot
removed this pull request from the merge queue due to failed status checks
Oct 5, 2026
github-merge-queue
Bot
removed this pull request from the merge queue due to failed status checks
Oct 5, 2026
github-merge-queue
Bot
removed this pull request from the merge queue due to failed status checks
Oct 5, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
"Agent working" was shown by breathing the row's own folder/branch glyph in the Projects rail and by three pulsing dots in the chat footer. At 14px a dimming glyph reads as "disabled", and the two surfaces used two unrelated signals for the same state.
Approach
One brand badge for both places: the TR monogram inside a ring. The monogram never moves or distorts — a train laps the ring (1.875s), the monogram pulses once per lap (1 → 25% → 1, in step with the train), and three sparks trace the monogram's outline (6.75s). The pulse is what reads at the rail's 14px; the sparks are detail at larger sizes and ride the brand path itself, so there is no hand-drawn geometry. It is pure
currentColorSVG, so it wears the row's existingtext-primary/text-text-muted, and reduced motion collapses it to the static badge. Chosen from a set of animated mockups reviewed in the browser.Changes
components/RunningIconis the badge itself (nochildrenwrapper);working-train/working-pulse/working-tracekeyframes replace the oldworkingbreathing inindex.css.ProjectTreeshows the badge in place of the identity glyph while a session runs;StreamIndicatorshows it (decorative) instead of the typing dots.constants/brandingownsBRAND_MARK_PATH;BrandLogodraws from it. Newcomponents → constantsedge.components,panels,chat,apps/web,e2e),UI-TERMINOLOGY.md,RunningIcon.test.tsx; the live rail e2e asserts the train's animation viarunning-icon-train.Screenshots
Same scenario (Projects rail with two running workspaces, chat footer while thinking), dark theme, 420×230 2x — rendered from each branch's real components with its production CSS bundle. Before: breathing identity glyph + typing dots. After: the TR badge (frame caught mid-pulse).
Related issues
None.
Checklist
bun run lint,bun run typecheck,bun run testbun run e2e, orbun run e2e:fullwhen touching agent behavior)SPEC.md/ top-level specs updated to reflect any boundary, contract, or behavior change