Skip to content

feat: proactive update banner with download+install flow - #68

Merged
aaf2tbz merged 2 commits into
mainfrom
fix/update-prompt-bump
May 16, 2026
Merged

feat: proactive update banner with download+install flow#68
aaf2tbz merged 2 commits into
mainfrom
fix/update-prompt-bump

Conversation

@aaf2tbz

@aaf2tbz aaf2tbz commented May 16, 2026

Copy link
Copy Markdown
Collaborator

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:

  1. 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.

  2. Full download + install flow — The banner and Settings buttons trigger the complete update pipeline:

    • Backend downloads the DMG via POST /update/start
    • Frontend polls GET /update/progress for download progress
    • On completion, fetches DMG path via GET /update/dmg-path
    • Spawns the install script via updaterSpawnInstall
    • Polls install status until complete
    • Auto-restarts the app
  3. Progress bar — Both the banner and Settings show a progress bar during download/install.

  4. Settings page — Added "Download & Install" button and progress row to the Updates section when an update is available.

  5. Toast on auto-checkcheckForUpdates() in App.vue now shows a toast when an update is available, so the user gets immediate feedback.

Bumps version to 0.33.2.

- 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
@PR-Reviewer-Ant

Copy link
Copy Markdown

Hi @aaf2tbz - I'm taking a look at the feature work in feat: proactive update banner with download+install flow (commit 266418aa) and will follow up shortly.

This comment is updated in place by pr-reviewer.

@PR-Reviewer-Ant PR-Reviewer-Ant left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment thread app/src/renderer/views/SettingsView.vue
Comment thread app/package.json
- 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)
@aaf2tbz
aaf2tbz merged commit 5ae6444 into main May 16, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants