Skip to content

cmux NEXT: the working spinner is a faint ring with a turning sweep, not the 3/4 arc or spokes - #31455

Merged
teamleaderleo merged 3 commits into
feat-cmux-nextfrom
lane/ux-working-spinner-ring
Nov 2, 2026
Merged

teamleaderleo merged 3 commits into
feat-cmux-nextfrom
lane/ux-working-spinner-ring

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Nov 1, 2026 •

Copy link
Copy Markdown
Collaborator

Leo:

  • 2026-10-31: "who even decided to put that 3/4 circle"
  • 2026-11-01, about the macOS segmented spokes: "why the f***ing did you make the spinner into this????"

So the agent working-state mark is neither the 3/4 arc (#31409 restored it) nor the spokes (#29903 swapped them in). It is now a faint full ring (22%) with a short bright sweep (80°, round caps) turning smoothly, as in Claude and ChatGPT, in native and web, so the sidebar, tabs and transcript match.

What changed

  • Native (CmuxNextDesign): a new StatusIndicatorPlan.Glyph.sweep. workingGlyph is .sweep, with sweepLength = 0.22. StatusIndicatorLayer draws a track CAShapeLayer at trackOpacity plus the sweep CAShapeLayer, and the existing .spin animation turns the sweep on the shared clock. StatusGlyphArt draws its still mask. The StatusWorkingLook restyle guard and the Codex still-ring swap follow workingGlyph, so they are unchanged.
  • Web: Spinner draws cv-spinner__track + cv-spinner__sweep for agent work. loading keeps cv-spinner__arc. The breathe/shimmer looks hide the track and sweep.
  • Unchanged: the shared-clock phase, Reduce Motion and the static look (a still mark, plus the Codex still ring), stop and cleanup (no loop when not working or hidden), the "macOS Spinner" loading style (spokes), loading's thin arc, tint, the Chief typing dots, and the unread, presence and progress marks.

Gallery

New entry agent-pane.working-spinner ("Working spinner: looks"). It shows light and dark side by side at 12, 14 and 16 px. Variants:

  • compare: all four
  • ring-sweep: (b), shipped
  • conic: (c), a conic-gradient sweep with a fading tail
  • rejected: the 3/4 arc and the spokes, for reference

Picked (b). At sidebar size (12-14 px) the conic tail fades into a grey smudge with no clear head, while the sweep's head stays crisp. The sweep also maps one-to-one onto the native CAShapeLayer mark.

Tests

  • StatusWorkingLookTests.theWorkingSpinnerIsARingWithASweepNeverTheArcOrSpokes: for every icon set, the working mark is .sweep + .spin, never .arc and never .native/.step.
  • theWorkingSweepDrawsATrackAndAShortTurningArc: the layer draws a track at about 22% plus a short sweep with round caps that turns.
  • Updated: CodexStatusIconSetTests, NoBreathingDotTests, SpinnerClockTests (working spinners across a sleep share one phase).
  • Web: spinnerTurns.test.tsx asserts the track plus sweep markup. spinner-phase and static-status-loops mount the new markup.

Risk: small and view-only. It is one new glyph case in the status indicator layer; it adds no logic or state.

🤖 Generated with Claude Code

Agent session: agent session


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


Summary by cubic

Replaces the agent working-state spinner (3/4 arc and macOS spokes) with a faint full ring (22% opacity) and a short 80° bright sweep with round caps, turning smoothly on the shared clock, in both native macOS and web.

  • Adds a sweep glyph case to the native status indicator; workingGlyph now resolves to .sweep with sweepLength = 0.22, drawing a faint track plus a short turning arc.
  • Updates the web Spinner to draw cv-spinner__track + cv-spinner__sweep for agent work; loading keeps the thin arc and "macOS Spinner" keeps the spokes.
  • Breathe/shimmer looks now hide the track and sweep instead of the arc.
  • Adds a gallery board (agent-pane.working-spinner) comparing the shipped ring+sweep, a conic runner-up, and the rejected arc and spokes at 12/14/16 px in light and dark; Spinner leaves the gallery coverage allowlist.
  • Tests pin the working mark as .sweep + .spin for every icon set, verify the track opacity and sweep length, and assert the web markup.

Risk is view-only: no state or logic changes, and Reduce Motion, the shared clock, and the still look are unchanged.

Written for commit 4f43151. Summary will update on new commits.

View guided diff Turn on auto-fix

teamleaderleo and others added 2 commits November 1, 2026 23:37
…not the 3/4 arc or spokes

The agent working-state mark (sidebar rows, tabs and the transcript's
Spinner) is now a full thin ring at 22% with a short bright sweep (80°,
round caps) turning smoothly on the shared clock, as Claude and ChatGPT
draw theirs. Leo rejected both the 3/4 arc ("who even decided to put that
3/4 circle", 2026-10-31) and the macOS spokes #29903 swapped in ("why the
f*** did you make the spinner into this????", 2026-11-01; #31409 put the
arc back). Loading keeps its arc and "macOS Spinner" its spokes; Reduce
Motion, the Codex still ring and the shared-clock phase are unchanged.

Gallery: agent-pane.working-spinner shows (b) ring + sweep, (c) conic
sweep, and the rejected arc and spokes in light and dark at 12/14/16 px.

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

github-actions Bot commented Nov 1, 2026 •

Copy link
Copy Markdown
Contributor

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

Review 4f43151: 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=pr31455 -f ref=lane/ux-working-spinner-ring -f platform=macos -f backend_mode=local

Gallery before/after for 4f43151: 16 states rendered, 0 images differ, 2939 more touched states not rendered. Images are in the run's artifact, not on this public PR; the independent review of this head reads them on its own, so the PR needs no hand-made screenshots of these states.

gh run download 41363568821 -R manaflow-ai/cmux -n gallery-advisory-31455-4f43151afc7f4951bff141a43cda9515c9e698d8 (then read gallery-review.json)

States
State Theme Status Diff Picked by
agent-pane.access-offer/turn-no-credits Apple System Colors Light unchanged 0% own conversation.css
agent-pane.access-offer/turn-no-credits Apple System Colors unchanged 0% own conversation.css
agent-pane.access-offer/turn-low-credits Apple System Colors Light unchanged 0% own conversation.css
agent-pane.access-offer/turn-low-credits Apple System Colors unchanged 0% own conversation.css
agent-pane.access-offer/turn-no-offer Apple System Colors Light unchanged 0% own conversation.css
agent-pane.access-offer/turn-no-offer Apple System Colors unchanged 0% own conversation.css
agent-pane.approval-edits/single Apple System Colors Light unchanged 0% own conversation.css
agent-pane.approval-edits/single Apple System Colors unchanged 0% own conversation.css
agent-pane.approval-edits/grouped Apple System Colors Light unchanged 0% own conversation.css
agent-pane.approval-edits/grouped Apple System Colors unchanged 0% own conversation.css
agent-pane.approval-edits/single-multiedit Apple System Colors Light unchanged 0% own conversation.css
agent-pane.approval-edits/single-multiedit Apple System Colors unchanged 0% own conversation.css
agent-pane.approval-edits/grouped-multiedit Apple System Colors Light unchanged 0% own conversation.css
agent-pane.approval-edits/grouped-multiedit Apple System Colors unchanged 0% own conversation.css
agent-pane.approval-edits/single-long Apple System Colors Light unchanged 0% own conversation.css
agent-pane.approval-edits/single-long Apple System Colors unchanged 0% own conversation.css
agent-pane.approval-edits/grouped-long Apple System Colors Light unchanged 0% own conversation.css
agent-pane.approval-edits/grouped-long Apple System Colors unchanged 0% own conversation.css
agent-pane.attachment-source/before Apple System Colors Light unchanged 0% own conversation.css
agent-pane.attachment-source/before Apple System Colors unchanged 0% own conversation.css
agent-pane.attachment-source/corner Apple System Colors Light unchanged 0% own conversation.css
agent-pane.attachment-source/corner Apple System Colors unchanged 0% own conversation.css
agent-pane.attachment-source/small Apple System Colors Light unchanged 0% own conversation.css
agent-pane.attachment-source/small Apple System Colors unchanged 0% own conversation.css
agent-pane.attachment-source/labelled Apple System Colors Light unchanged 0% own conversation.css
agent-pane.attachment-source/labelled Apple System Colors unchanged 0% own conversation.css
agent-pane.attachment-source/outside Apple System Colors Light unchanged 0% own conversation.css
agent-pane.attachment-source/outside Apple System Colors unchanged 0% own conversation.css
agent-pane.background-activity/duration-columns Apple System Colors Light unchanged 0% own conversation.css
agent-pane.background-activity/duration-columns Apple System Colors unchanged 0% own conversation.css
agent-pane.background-activity/pinned-live-tail-light Apple System Colors Light unchanged 0% own conversation.css
agent-pane.background-activity/pinned-live-tail-light Apple System Colors unchanged 0% own conversation.css

Pick other states with a Gallery: entry.id, entry.id/variant line in the PR body.

Probably yours: session-info-push-motion.test.ts, session-info-push-motion.test.ts, transcript-thought.test.ts fails here but not on main's latest full suite. This PR merged before its CI finished: fix forward on main.

CI failed on 4f43151afc (run 41363569036 attempt 1): 1 code, 1 unknown.
macOS jobs did not run: compile and app tests were skipped: Fast static checks skipped.

Job Verdict Why
web / react-apps-check (1) code a web test failed
web / react-apps-check unknown no known signature; failed step: Check webview test shards

Failures:

  • new in this PR session-info-push-motion.test.ts chromium: a switch between floating and pushing starts no slide: failed (job)
  • new in this PR session-info-push-motion.test.ts webkit: a switch between floating and pushing starts no slide: failed (job)
  • new in this PR transcript-thought.test.ts a finished thought is one quiet row with none of its text inline, and no tooltip: failed (job)
Matched log lines
web / react-apps-check (1): (fail) chromium: a switch between floating and pushing starts no slide [22239.96ms]

Not re-run automatically: web / react-apps-check (1), web / react-apps-check are not machine failures.

Written by scripts/ci/classify_failures.py (ci-failure-attribution.yml); signatures are its SIGNATURES table. A machine verdict is the runner's fault, not this PR's; yours means the failing file is one this PR changes, also red on main that main's latest full suite fails the same way, seen on other PRs that it failed on another pull request's run lately.

red: cmux-next checks (god files, concurrency, crash safety, l10n); no finished base run on 0958de2 to compare; do not merge until green; see lane-rules
red: web / Web status; a job it gathers is red on this change (its line here); do not merge until green; see lane-rules
red: web / react-apps-check; a job it gathers is red on this change (its line here); do not merge until green; see lane-rules
red: web / react-apps-check (1); NEW: step Fail on the gate checks (+7 more) passes on the base 0958de2; do not merge until green; see lane-rules

Default changes

This pull request changes 2 defaults at 4f43151afc7f (what everyone gets without configuring anything):

  • tunable-source.CmuxNextDesign/StatusIndicator/StatusIndicatorPlan.swift:workingGlyph: "76ed96e0bf9069ad09a31e5214171f93eabc6b237838e5f94014661f9693ac1e" -> "e05d9164eceab4622a6e57be91c549ed3afeff65e4484ab8f0332e80f9b65882"
  • tunable-source.CmuxNextDesign/StatusIndicator/StatusIndicatorTunables.swift:trackOpacity: "5bc31b88441233d26e026a3c179d6fcf1e7391bb7a8b309038732f4d17f7294f" -> "cd9a2cc54e4eb937f8eda82a8a0e87943274f6c3f515bfce3439d3c7bca19d67"

Needs a review. It passes with an independent review receipt on this commit: a comment or review whose first line is Review (<reviewer>): SHIP at 4f43151afc7f4951bff141a43cda9515c9e698d8, from a member, not a self-review (the newest verdict naming the head decides; a later BLOCK beats an earlier SHIP), or with an approving review on this commit from @lawrencecchen or @austinywang (the call owners in .github/defaults-call-owners.json, never the author). A receipt posted as a review re-runs this check; after a plain comment, re-run it. The needs a call label alone does not pass, and a new push needs a new receipt.

Merge receipt: merged as 5c0f1df55731 with these defaults changed, WITHOUT a SHIP receipt or an approving call owner review on its head.

Regenerate the snapshot with python3 scripts/ci/defaults_guard.py snapshot.

Shipped in:

@github-actions github-actions Bot added the risk:normal Risk tier (docs/ci/risk-tiers.md) label Nov 1, 2026
…he coverage allowlist

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-63b9964940c20354b639
@blacksmith-sh

blacksmith-sh Bot commented Nov 1, 2026 •

Copy link
Copy Markdown

Found 18 test failures on Blacksmith runners:

Failures

Test View Logs
---/--- View Logs
---/--- View Logs
/tmp/tmpmdp9mfek/summary-missing.json (live):/summary-missing.json (live): View Logs
/tmp/tmpwrkwgvpz/summary-fail.json (live):/summary-fail.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
imported web bundle inputs are not routed:/imported web bundle inputs are not routed: View Logs
test/session-info-push-motion.test.ts/session-info-push-motion.test View Logs

...and 8 more test failures. View all on Blacksmith: run 41363569036, run 41363568903

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

@teamleaderleo
teamleaderleo merged commit 5c0f1df into feat-cmux-next Nov 2, 2026
175 of 190 checks passed
@teamleaderleo
teamleaderleo deleted the lane/ux-working-spinner-ring branch November 2, 2026 00:01
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Review (codex gpt-6-astra high, next-review): BLOCK at 4f43151

BLOCK at 4f43151

Visual verdict: supplied gallery before/after pairs 01–16 are pixel-identical; the new spinner state is not represented.

  1. [P1][blocking] Native and web sweeps are permanently phase-shifted. StatusIndicatorLayer.swift:233 uses CGPath(ellipseIn:), whose stroke begins at 3 o’clock, while the web sweep begins at 12 o’clock (icons.tsx:270). The still native mask also starts at 3 o’clock (StatusIconSet+Image.swift:80). Because both use the shared clock, sidebar/tab native marks never align with transcript web marks, and static native rendering differs from the animated path. Use the shared top-starting ring geometry for the native sweep and still mask, or adjust the web path, with an orientation test.

Follow-ups: none

lawrencecchen added a commit that referenced this pull request Nov 2, 2026
lawrencecchen added a commit that referenced this pull request Nov 2, 2026
…nt (leo bans) (#31554)

tests/test_leo_bans.py fails on feat-cmux-next since #31455:
SpinnerLooksBoard.css:7 names -apple-system; the UI font is Inter through
var(--font-ui) (schemas/type-scale/leo-bans.json). The gallery-only board now
uses var(--font-ui) with the same size and line height.
teamleaderleo added a commit that referenced this pull request Nov 2, 2026
Conflicts kept base's newer sidebar work beside lineage nesting:
- SidebarSessionTreeFeed: the pull request capture fixture (no GitHub reads) and the nesting-only pass.
- SidebarLayout+DoneFold: the Archived (N) fold and Archive-section drag unfold, folding whole runs.
- SidebarLayout+Fold: archived-group fast-path exits plus the lineage one.
- SidebarRowIndex: a folded session's step lays nothing out (#31783), with the per-list fold check.
- SidebarTreeRollUpView: the running spinner ring (#31455) beside the total chip.
- SidebarNestedFixture: soleMember and lineageGroup scenarios.
- SidebarListView+Layout: a drag unfolds Done, Archived and the Archive section, lineage-aware.
The Archive section no longer turns off with the session tree, which nesting now sets for everyone.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-63b9964940c20354b639
teamleaderleo added a commit that referenced this pull request Nov 3, 2026
…and slower (#32730)

Leo, 2026-11-02, on our spinner beside ChatGPT's: "AND WHY THE F***
DID THE SPINNERS CHANGE", "THIS IS CHATGPT", "IT GOES SLOWER", "JUST DO
THE CHATGPT SPINNER", "DO IT F***ING SLOWER".

The agent working mark (web Spinner, native sidebar and tab
StatusIndicator) changes from #31455's faint ring with an 80° sweep at
stroke 1.5 to ChatGPT's ring: a bright arc of 0.72 of the ring over the
faint 22% track, at stroke 2 on the 16 viewBox (native: 4/3 of the
thickness), round caps. The arc share and stroke are measured from
Leo's ChatGPT screenshot. The shared spinner period goes from 900ms to
1400ms on web and native, so every spinner stays on one clock. Loading's
arc, the spokes and braille styles, determinate rings and where spinners
appear are unchanged.

Gallery agent-pane.working-spinner: (a) shipped, (b) the half arc from
OpenAI's Work video, (c) an open ring, (d) stroke 1.5, (e) 1.0 s, plus
the replaced sweep, the loading arc and the spokes.

Tests: spinnerTurns.test.tsx pins the arc path, stroke, track and the
1400ms period; StatusWorkingLookTests pins workingArcLength,
workingStrokeScale, the 1.4 s Motion spinner and the layer's widths.


Agent-Session: https://cmux.com/deeplink/agent?id=aid-a1179b2311aff0f037aa

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
lawrencecchen added a commit that referenced this pull request Nov 3, 2026
…e msg 19638)

Lawrence msg 19638: "i think someone changed sidebar spinning indicator? we
need it to be reverted back to original state". The agent working mark
(sidebar rows, group headers, the tab bar, hover cards, Home and the
transcript's Spinner) goes back to e2e596e~1: a bare arc of 0.72 of
the circle at the indicator's 1.5 pt stroke (web: the 16 viewBox's 1.5),
no track, one clockwise turn per 0.9 s on the shared clock.

Takes back e2e596e (#29903): Lawrence msg 19638 (stepping spokes; its look was already undone by #31409)
Takes back 773dec8 (#31409): Lawrence msg 19638 (its arc is kept; only its pins of the arc as Leo's settled look are reworded)
Takes back 5c0f1df (#31455): Lawrence msg 19638 (faint ring with an 80 degree sweep, the `.sweep` glyph, the SpinnerLooks gallery board)
Takes back 7335f12 (#32730): Lawrence msg 19638 (ChatGPT's heavier ring, workingArcLength, workingStrokeScale, the 1.4 s period on web and native)

Kept: #29903's shared-clock fixes (one Unix offset per process, page-show
realignment), StatusIndicatorPlan.working(tint:) and workingGlyph as the one
call site, the Codex still ring, Reduce Motion and loops off, the hover
cards' `style: .arc`, and 8a2b690's newer-report-wins state fix.

Tests: OriginalWorkingSpinnerTests (the red commit) pins the drawn arc;
StatusWorkingLookTests drops theWorkingSpinnerIsChatGPTsGapRingNeverTheSpokes
and theWorkingRingDrawsATrackAndAHeavierTurningArc for
theWorkingSpinnerIsTheOriginalArcNeverSpokes; CodexStatusIconSetTests and
NoBreathingDotTests expect the arc; web spinnerTurns.test.tsx,
spinner-phase.test.ts and static-status-loops.test.ts are back to #31409's
arc; Spinner returns to the gallery-coverage allowlist.

Sidebar-Look: Lawrence msg 19638 "we need it to be reverted back to original state"
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
lawrencecchen added a commit that referenced this pull request Nov 3, 2026
…e msg 19638)

Lawrence msg 19638: "i think someone changed sidebar spinning indicator? we
need it to be reverted back to original state". The agent working mark
(sidebar rows, group headers, the tab bar, hover cards, Home and the
transcript's Spinner) goes back to e2e596e~1: a bare arc of 0.72 of
the circle at the indicator's 1.5 pt stroke (web: the 16 viewBox's 1.5),
no track, one clockwise turn per 0.9 s on the shared clock.

Takes back e2e596e (#29903): Lawrence msg 19638 (stepping spokes; its look was already undone by #31409)
Takes back 773dec8 (#31409): Lawrence msg 19638 (its arc is kept; only its pins of the arc as Leo's settled look are reworded)
Takes back 5c0f1df (#31455): Lawrence msg 19638 (faint ring with an 80 degree sweep, the `.sweep` glyph, the SpinnerLooks gallery board)
Takes back 7335f12 (#32730): Lawrence msg 19638 (ChatGPT's heavier ring, workingArcLength, workingStrokeScale, the 1.4 s period on web and native)
Takes back 092a5f2 (#32893): Lawrence msg 19638 (its fix of #32730's web working arc path and its test go with that arc)

Kept: #29903's shared-clock fixes (one Unix offset per process, page-show
realignment), StatusIndicatorPlan.working(tint:) and workingGlyph as the one
call site, the Codex still ring, Reduce Motion and loops off, the hover
cards' `style: .arc`, and 8a2b690's newer-report-wins state fix.

Tests: OriginalWorkingSpinnerTests (the red commit) pins the drawn arc;
StatusWorkingLookTests drops theWorkingSpinnerIsChatGPTsGapRingNeverTheSpokes
and theWorkingRingDrawsATrackAndAHeavierTurningArc for
theWorkingSpinnerIsTheOriginalArcNeverSpokes; CodexStatusIconSetTests and
NoBreathingDotTests expect the arc; web spinnerTurns.test.tsx,
spinner-phase.test.ts and static-status-loops.test.ts are back to #31409's
arc; Spinner returns to the gallery-coverage allowlist.

Sidebar-Look: Lawrence msg 19638 "we need it to be reverted back to original state"
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
lawrencecchen added a commit that referenced this pull request Nov 3, 2026
…e msg 19638)

Lawrence msg 19638: "i think someone changed sidebar spinning indicator? we
need it to be reverted back to original state". The agent working mark
(sidebar rows, group headers, the tab bar, hover cards, Home and the
transcript's Spinner) goes back to e2e596e~1: a bare arc of 0.72 of
the circle at the indicator's 1.5 pt stroke (web: the 16 viewBox's 1.5),
no track, one clockwise turn per 0.9 s on the shared clock.

Takes back e2e596e (#29903): Lawrence msg 19638 (stepping spokes; its look was already undone by #31409)
Takes back 773dec8 (#31409): Lawrence msg 19638 (its arc is kept; only its pins of the arc as Leo's settled look are reworded)
Takes back 5c0f1df (#31455): Lawrence msg 19638 (faint ring with an 80 degree sweep, the `.sweep` glyph, the SpinnerLooks gallery board)
Takes back 7335f12 (#32730): Lawrence msg 19638 (ChatGPT's heavier ring, workingArcLength, workingStrokeScale, the 1.4 s period on web and native)
Takes back 092a5f2 (#32893): Lawrence msg 19638 (its fix of #32730's web working arc path and its test go with that arc)

Kept: #29903's shared-clock fixes (one Unix offset per process, page-show
realignment), StatusIndicatorPlan.working(tint:) and workingGlyph as the one
call site, the Codex still ring, Reduce Motion and loops off, the hover
cards' `style: .arc`, and 8a2b690's newer-report-wins state fix.

Tests: OriginalWorkingSpinnerTests (the red commit) pins the drawn arc;
StatusWorkingLookTests drops theWorkingSpinnerIsChatGPTsGapRingNeverTheSpokes
and theWorkingRingDrawsATrackAndAHeavierTurningArc for
theWorkingSpinnerIsTheOriginalArcNeverSpokes; CodexStatusIconSetTests and
NoBreathingDotTests expect the arc; web spinnerTurns.test.tsx,
spinner-phase.test.ts and static-status-loops.test.ts are back to #31409's
arc; Spinner returns to the gallery-coverage allowlist.

Sidebar-Look: Lawrence msg 19638 "we need it to be reverted back to original state"
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
lawrencecchen added a commit that referenced this pull request Nov 3, 2026
…e msg 19638)

Lawrence msg 19638: "i think someone changed sidebar spinning indicator? we
need it to be reverted back to original state". The agent working mark
(sidebar rows, group headers, the tab bar, hover cards, Home and the
transcript's Spinner) goes back to e2e596e~1: a bare arc of 0.72 of
the circle at the indicator's 1.5 pt stroke (web: the 16 viewBox's 1.5),
no track, one clockwise turn per 0.9 s on the shared clock.

Takes back e2e596e (#29903): Lawrence msg 19638 (stepping spokes; its look was already undone by #31409)
Takes back 773dec8 (#31409): Lawrence msg 19638 (its arc is kept; only its pins of the arc as Leo's settled look are reworded)
Takes back 5c0f1df (#31455): Lawrence msg 19638 (faint ring with an 80 degree sweep, the `.sweep` glyph, the SpinnerLooks gallery board)
Takes back 7335f12 (#32730): Lawrence msg 19638 (ChatGPT's heavier ring, workingArcLength, workingStrokeScale, the 1.4 s period on web and native)
Takes back 092a5f2 (#32893): Lawrence msg 19638 (its fix of #32730's web working arc path and its test go with that arc)

Kept: #29903's shared-clock fixes (one Unix offset per process, page-show
realignment), StatusIndicatorPlan.working(tint:) and workingGlyph as the one
call site, the Codex still ring, Reduce Motion and loops off, the hover
cards' `style: .arc`, and 8a2b690's newer-report-wins state fix.

Tests: OriginalWorkingSpinnerTests (the red commit) pins the drawn arc;
StatusWorkingLookTests drops theWorkingSpinnerIsChatGPTsGapRingNeverTheSpokes
and theWorkingRingDrawsATrackAndAHeavierTurningArc for
theWorkingSpinnerIsTheOriginalArcNeverSpokes; CodexStatusIconSetTests and
NoBreathingDotTests expect the arc; web spinnerTurns.test.tsx,
spinner-phase.test.ts and static-status-loops.test.ts are back to #31409's
arc; Spinner returns to the gallery-coverage allowlist.

Sidebar-Look: Lawrence msg 19638 "we need it to be reverted back to original state"
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

This branch was previously deployed

1 inactive deployment
ci-routing-agent — 4f43151a Deployed Nov 1, 2026 by teamleaderleo via namespace autofix #11710
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