feat: proactive update banner with download+install flow - #68
Conversation
- Update banner appears at top of content area when new version detected - 'Download & Install' button in banner triggers full update flow: backend downloads DMG -> frontend polls progress -> spawns install script -> auto-restarts on completion - Progress bar shown in banner during download and install - Settings page also gets 'Download & Install' button with progress bar when update is available - Toast notification on update available after auto-check on app launch - Bump version to 0.33.2
|
Hi @aaf2tbz - I'm taking a look at the feature work in This comment is updated in place by pr-reviewer. |
PR-Reviewer-Ant
left a comment
There was a problem hiding this comment.
Review metadata
- Reviewer: pr-reviewer
- Model:
gpt-5.5 - Commit:
266418aa
I found a real update-flow race: the banner and Settings page each track their own download/install state, so the same update can be started twice from the UI. I also noticed the version bump is incomplete relative to the repo's release convention.
Confidence: High [sufficient_diff_evidence, targeted_context_included] - The duplicate local updateDownloading/updateProgress state is visible in both App.vue and SettingsView.vue, and both buttons call independent startUpdateDownload implementations against the same backend updater endpoints. The version convention is included in AGENTS.md and the diff only updates package.json and Cargo.toml, not CMakeLists.txt.
Note: This PR touches UI files but no screenshots were referenced in the description. Consider adding visual previews for reviewers.
- Lift updateDownloading/updateProgress/updateMessage/startUpdateDownload to App.vue as single source of truth, provided to child components - SettingsView injects shared state instead of maintaining its own copy, preventing double-start race condition on update flow - Remove unused getAPI import from SettingsView - Bump CMakeLists.txt project version to 0.33.2 to match package.json and Cargo.toml (fixes incomplete version bump from review feedback)
Summary
The self-updater was checking for updates on launch but never showing the user a prompt to actually install them. The update info was buried in Settings with only a "Check Now" button.
Changes:
Update banner — A persistent banner appears at the top of the content area whenever
updateStatus.available === true. Shows version info and a "Download & Install" button.Full download + install flow — The banner and Settings buttons trigger the complete update pipeline:
POST /update/startGET /update/progressfor download progressGET /update/dmg-pathupdaterSpawnInstallProgress bar — Both the banner and Settings show a progress bar during download/install.
Settings page — Added "Download & Install" button and progress row to the Updates section when an update is available.
Toast on auto-check —
checkForUpdates()in App.vue now shows a toast when an update is available, so the user gets immediate feedback.Bumps version to
0.33.2.