Skip to content

feat(web): live TR brand badge as the agent-working indicator - #630

Merged
danyaberezun merged 6 commits into
mainfrom
tr-live-icon-mockups
Oct 5, 2026
Merged

danyaberezun merged 6 commits into
mainfrom
tr-live-icon-mockups

Conversation

@danyaberezun

@danyaberezun danyaberezun commented Oct 5, 2026 •

Copy link
Copy Markdown
Collaborator

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 currentColor SVG, so it wears the row's existing text-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/RunningIcon is the badge itself (no children wrapper); working-train / working-pulse / working-trace keyframes replace the old working breathing in index.css.
  • ProjectTree shows the badge in place of the identity glyph while a session runs; StreamIndicator shows it (decorative) instead of the typing dots.
  • constants/branding owns BRAND_MARK_PATH; BrandLogo draws from it. New components → constants edge.
  • Specs (components, panels, chat, apps/web, e2e), UI-TERMINOLOGY.md, RunningIcon.test.tsx; the live rail e2e asserts the train's animation via running-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).

Before After
before after

Related issues

None.

Checklist

  • Fast gates pass: bun run lint, bun run typecheck, bun run test
  • E2E suite passes for app-affecting changes (bun run e2e, or bun run e2e:full when touching agent behavior)
  • Before/after screenshots are included for frontend changes, or marked not applicable
  • Relevant SPEC.md / top-level specs updated to reflect any boundary, contract, or behavior change
  • I have read the Contributing guide and agree to the Code of Conduct

@jetbrains-air jetbrains-air Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Approved — ready to merge.

@rsolmano Rinat S (rsolmano) left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Approving. One non-blocking note inline about the rail signals — up to you how to handle it.

Comment thread apps/web/src/components/RunningIcon.tsx Outdated

@jetbrains-air jetbrains-air Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Approved — ready to merge.

Comment thread apps/web/src/index.css
@rsolmano
Rinat S (rsolmano) added this pull request to the merge queue Oct 5, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Oct 5, 2026
@danyaberezun
danyaberezun added this pull request to the merge queue Oct 5, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Oct 5, 2026
@danyaberezun
danyaberezun added this pull request to the merge queue Oct 5, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Oct 5, 2026
@danyaberezun
danyaberezun added this pull request to the merge queue Oct 5, 2026
Merged via the queue into main with commit 799e7bb Oct 5, 2026
7 checks passed
@danyaberezun
danyaberezun deleted the tr-live-icon-mockups branch October 5, 2026 21:38
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.

2 participants