Refine desktop update checking and labels#2131
Refine desktop update checking and labels#2131iPixelGalaxy wants to merge 3 commits intopingdotgg:mainfrom
Conversation
- Compare stable and nightly feeds to pick the best candidate - Preserve no-update messages for older nightly builds - Show available update versions in the settings and sidebar UI
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
ApprovabilityVerdict: Needs human review This PR introduces new auto-update behavior (checking both nightly and stable feeds, version comparison logic, UI changes) with significant runtime impact. Additionally, an unresolved high-severity review comment identifies a potential bug where the wrong update version could be downloaded due to provider state tracking issues. You can customize Macroscope's approvability policy. Learn more. |
- Rename the collector field to reflect the checked channel - Record the last successful channel check and use it when restoring the selected provider - Remove the stale updater callback assignment
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
There are 2 total unresolved issues (including 1 from previous review).
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 601f030. Configure here.

What Changed & Why
UI Changes
All the UI changes and testing is showcased in this video:
Video.mp4
I built 3 identical versions with the follow types Stable 0.0.20, Nightly 0.0.19 and Nightly 0.0.21 to demonstrate the different errors and how they appear.
Checklist
Note
Medium Risk
Changes desktop auto-update selection logic (including nightly/stable feed arbitration and downgrade behavior), which could affect who gets offered an update and when. UI changes are low risk, but incorrect version comparison or feed switching could cause missed/incorrect update prompts.
Overview
Desktop updater now performs smarter checks on the nightly track. When on
nightly, it sequentially checks bothlatestandnightlyfeeds, collects candidates, selects the best version via new semantic/nightly-aware comparison helpers, and restores the chosen provider before marking the update as available.Update-state messaging and timing are refined. Startup update checks run sooner (2s vs 15s) and user-initiated checks cancel any pending startup check;
reduceDesktopUpdateStateOnNoUpdatenow preserves an optional non-error message (e.g., nightly older/no newer nightly) so the UI can show accurate “no update” reasons.Web UI labels are clearer for available updates. Adds
getDesktopUpdateAvailableLabeland updates settings + sidebar pill to displayUpdate available: <version>(preferring downloaded), and settings now shows an info toast when a manual “Check for Updates” completes with no update (including polling while the desktop bridge is stillchecking).Reviewed by Cursor Bugbot for commit db5c50d. Bugbot is set up for automated code reviews on this repo. Configure here.
Note
Add dual-feed nightly update checking and version labels to desktop updater
NIGHTLY_BUILD_OLDER_MESSAGE,NO_NEWER_NIGHTLY_BUILD_MESSAGE).compareDesktopVersionsandselectBestDesktopUpdateCandidatein updateChannels.ts to rank stable vs. nightly builds, treating non-nightly as newer than nightly at the same base version.Update available: <version>(preferring the downloaded version) instead of a generic label, and show an info toast when no update is found after a manual check.AUTO_UPDATE_STARTUP_DELAY_MSfrom 15000ms to 2000ms; user-initiated checks cancel any pending startup check.reduceDesktopUpdateStateOnNoUpdatenow preserves an optional message in state instead of always nullifying it, affecting how nightly-specific no-update messages are surfaced in the UI.Macroscope summarized db5c50d.