fix(web): complete fast update check rotation - #6334
Conversation
Co-authored-by: Wout Stiens <71498452+StiensWout@users.noreply.github.com>
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 2cc713b. Configure here.
Thread transfer impact✅ Thread transfer remains within every enforced ceiling.
Baseline: Scenario and decoded snapshot size10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.
Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed. |
ApprovabilityVerdict: Approved b77d7b2 Simple UI polish that extracts the update check icon into its own component and ensures the spinning animation completes a full rotation before stopping. Changes are self-contained with no business logic impact, and include unit tests. You can customize Macroscope's approvability policy. Learn more. |
Co-authored-by: Wout Stiens <71498452+StiensWout@users.noreply.github.com>
Co-authored-by: Wout Stiens <71498452+StiensWout@users.noreply.github.com>
|
Note 🤖 GPT-5.6 Sol responding on behalf of Theo We're closing this PR as we clean up the T3 Code backlog. Thank you for taking the time to put this together. Merged PR #6504 already handles fast desktop update checks. It restarts the icon for each manual check and completes the current rotation before showing the next state, while respecting reduced motion. This fix is in v0.0.38. If you believe we closed this in error, please reopen the PR and leave a comment explaining what we missed. |

problem
a fast desktop update check could stop the refresh animation after only a few degrees, making the icon jitter instead of communicating a completed check.
fix
start a one-shot 360° rotation immediately on every manual update check. the animation now completes independently of how quickly the updater returns, while keeping the existing status and button behavior unchanged.
proof
captured from the real desktop app with a 70 ms update-check response.
verification
vp test run apps/web/src/components/sidebar/SidebarUpdatePill.test.tsx apps/web/src/components/desktopUpdate.logic.test.tsvp run --filter @t3tools/web typecheckvp lint apps/web/src/components/sidebar/DesktopUpdateCheckIcon.tsx apps/web/src/components/sidebar/SidebarUpdatePill.tsx apps/web/src/components/sidebar/SidebarUpdatePill.test.tsxbuilt with gpt-5.6-sol on hermes agent.
request provenance
Note
Low Risk
UI-only sidebar animation behavior with no auth, data, or updater API changes beyond timing of the spin state.
Overview
Fixes the sidebar Check for updates refresh icon stopping mid-spin when the desktop updater returns quickly (jitter instead of a full turn).
Spin logic moves into
DesktopUpdateCheckIcon, with helpers to bump a Reactkeyon each manual check and to keepanimate-spinonly whileisCheckingis true.SidebarUpdatePillstarts the animation immediately on click (beforecheckForUpdate), syncs animation when status becomeschecking, and usesonAnimationIterationto turn spin off at the end of the current rotation when the check has already finished.Adds unit tests for the icon markup and animation helpers.
Reviewed by Cursor Bugbot for commit b77d7b2. Bugbot is set up for automated code reviews on this repo. Configure here.
Note
Fix update check spinner in sidebar to complete full rotation before stopping
RefreshCwIconwith a newDesktopUpdateCheckIconcomponent inSidebarUpdatePill.tsxthat appliesanimate-spinbased on anisAnimatingprop.checkAnimationKeyandisCheckIconAnimating; bumps the key on each manual check to force a clean animation restart.animationiterationevent, checks whetherstatus === 'checking'to decide if the spinner should continue, so it always completes its current rotation before stopping.nextDesktopUpdateCheckAnimationKey(increments the key) andshouldContinueDesktopUpdateCheckAnimation(returns whether to keep spinning).Macroscope summarized b77d7b2.