feat(desktop): add manual "Check for Updates" button in web settings#1123
feat(desktop): add manual "Check for Updates" button in web settings#1123AriajSarkar wants to merge 21 commits intopingdotgg:mainfrom
Conversation
Add checkForUpdate IPC channel so the web renderer can trigger an update check on demand. Surface a Check for Updates button in Settings > About (desktop only) with contextual labels and error handling. - Add DesktopUpdateCheckResult type and DesktopBridge.checkForUpdate() - Wire UPDATE_CHECK_CHANNEL in preload and main process IPC handler - Add canCheckForUpdate/getCheckForUpdateButtonLabel logic helpers - Add DesktopUpdateCheckSection component in settings About section - Guard IPC handler when updater is not configured (local/dev builds) - Add 15 unit tests for new logic functions Closes pingdotgg#1107
|
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 |
…check # Conflicts: # apps/web/src/routes/_chat.settings.tsx
…check # Conflicts: # apps/desktop/src/main.ts # apps/web/src/routes/_chat.settings.tsx
2bd1d03 to
4e5586b
Compare
…rmation - Replace generic rocket icon with a downward arrow (`ArrowDownToLineIcon`) in the sidebar for better visual clarity. - Update sidebar icon colors to use a green/blue semantic palette instead of warning colors, and fix CSS class collisions that caused the icon to incorrectly render as white. - Add a confirmation dialog before triggering `installUpdate()` in both the sidebar and settings panel to warn users that the app will restart and tasks will be interrupted. Addresses UX feedback in pingdotgg#1204
…ion/status maps for button label with tooltip from getDesktopUpdateButtonTooltip
… instead of misleading 'Update available'
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.



What Changed
checkForUpdateIPC channel (DesktopUpdateCheckResulttype,DesktopBridge.checkForUpdate())UPDATE_CHECK_CHANNELin preload + main process handler (reuses existingcheckForUpdates()canCheckForUpdate/getCheckForUpdateButtonLabelpure logic helpersWhy
The desktop app checks for updates automatically and has a native menu "Check for Updates…", but there's no way to trigger a check from the web UI. Users may not discover the menu item. This adds a simple, focused entry point in Settings → About.
Closes #1107 (already closed)
UI Changes
Checklist
Local Test:
v0.0.10->v0.0.11Note
Add manual "Check for Updates" button to desktop web settings
DesktopUpdateCheckSectionto the Electron Settings page (_chat.settings.tsx) with a button that checks for, downloads, or installs updates depending on current state.desktop:update-checkIPC endpoint in the main process (main.ts) and acheckForUpdate()method onwindow.desktopBridge(preload.ts).onUpdateStatevia React Query to keep update state live without polling.ArrowDownToLineIcon, changes available-update styling from pulsing amber to green, and fixes the default tooltip to read 'Up to date'.Macroscope summarized 789f91f.
Note
Medium Risk
Adds a new Electron IPC entry point to trigger update checks/download/install from the web UI, touching auto-updater state handling and user restart/install flow. Risk is moderate due to changes in update-related IPC and UI actions that can restart the app.
Overview
Adds a manual Updates control to the Electron settings page that can check, download, or install updates based on current
DesktopUpdateState, including last-checked timestamp, tooltips, and inline error handling.Exposes a new
desktop:update-checkIPC handler wired throughDesktopBridge.checkForUpdate()(with an explicitDesktopUpdateCheckResultcontract) and adds a React Query helper to cache/sync update state viaonUpdateState. Also tweaks update UX: install now prompts for confirmation with version info, and the sidebar update indicator icon/styling is adjusted; update tooltip default is corrected to "Up to date" and new unit tests covercanCheckForUpdateand tooltip behavior.Written by Cursor Bugbot for commit 789f91f. This will update automatically on new commits. Configure here.