cmux NEXT: the working spinner is the turning arc again, not segmented spokes

Merged
TE
6d ago
+67-49

Leo, on a screenshot of the sidebar's working spinners drawn as the macOS activity indicator's segmented spokes: "why the f***ing did you make the spinner into this????"

What regressed it

#29903 (e2e596e4b69a, 2026-11-01, "working spinners turn in phase, as stepping spokes instead of a 3/4 arc") changed the agent working-state mark from the thin arc turning smoothly to glyph: .native, animation: .step (the NSProgressIndicator spokes, stepped) natively, and to eight stepping <line> spokes in the transcript's Spinner. That PR read Leo's question "who even decided to put that 3/4 circle" as an ask for a new glyph; he never asked for spokes.

The settled design (leo-workspace design/sidebar.md: "an agent's working state is a spinner", cmux#22826) drew it as the thin arc from 6388291c7c3 (2026-10-02) and #20410 (2026-10-14) until #29903. Last good commit: e2e596e4b69a^.

Change

  • Native: StatusIndicatorPlan.working(tint:) returns the arc turning smoothly again (workingGlyph = .arc, .spin). The Codex-like still ring and the Debug working looks key off workingGlyph.
  • Web: the working Spinner draws the arc path again; the steps(8) rule is gone.
  • Kept from #29903: every spinner shares one phase (the shared clock, SpinnerClock.processEpoch, page-show realign). The spokes stay only as the explicit "macOS Spinner" loading style a person can pick.
  • Only the agent working-state mark changes. The Chief typing bubble, unread, presence and progress marks are untouched.

Tests

  • New StatusWorkingLookTests.theWorkingSpinnerIsTheSettledArcNeverSpokes and spinnerTurns.test.tsx "agent work draws the settled turning arc, never stepping spokes" pin the style. Both are in the test-only commit 5a93e2b95737 and fail on base.
  • Updated to the arc: NoBreathingDotTests, CodexStatusIconSetTests, StatusWorkingLookTests, spinner-phase.test.ts, static-status-loops.test.ts.

Observed / Not run

  • Results of the fleet runs are posted as comments below.
  • No capture: a revert to the previous month's glyph; Leo tries the build.

Changelog

Fixed: the agent working spinner is the thin turning arc again, not the segmented macOS spokes.

Agent session: agent session

šŸ¤– Generated with Claude Code


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


Summary by cubic

Restores the agent working-state mark to the thin turning arc, undoing #29903's segmented macOS spokes.

The working spinner (sidebar, tabs, transcript rows) draws the settled 3/4 arc turning smoothly again, not the macOS activity indicator's stepping spokes. The shared-clock phase sync from #29903 stays; the spokes remain only as the explicit "macOS Spinner" loading style.

Tests

  • New StatusWorkingLookTests and spinnerTurns.test.tsx tests pin the arc and fail on base.
  • The remaining spinner and status-indicator tests were updated to expect the arc.