You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(update): drive install with quitAndInstall + "Restart to update" banner (#8)
* fix(update): drive install with quitAndInstall + "Restart to update" banner
A downloaded update only applied on a graceful quit (autoInstallOnAppQuit);
force-killing the app (Activity Monitor, kill -9, dev restart) skipped the
Squirrel swap, so a fully-staged update could sit unapplied indefinitely
(seen: a complete 0.0.25 download while the app stayed on 0.0.24).
- main: register `update:install` IPC -> autoUpdater.quitAndInstall()
- preload: expose onUpdateDownloaded() + installUpdate()
- renderer: "Off Grid AI <v> is ready / Restart to update" banner that
drives the install directly instead of relying on the user knowing to Cmd+Q
- regression guard asserting the IPC + preload contract
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* fix(update): address review — staged-version seed, failure handling, typed bridge
From CodeRabbit + Qodo review of PR #8:
- reliability: persist staged version in main + update:staged-version getter,
seeded on renderer mount — on macOS the app keeps running with zero windows,
so a download that finished before a window existed would never show the
banner (the update:downloaded event only reaches windows open at the time)
- stability: await installUpdate() and reset the CTA + notify on failure, so a
rejected invoke can't leave the button stuck on "Restarting…"
- types: drop `any` from the onUpdateDownloaded IPC payload
- copy: banner says "Update <v> is ready" (no product-name string to drift)
- test: guard the staged-version persistence + getter contract
Skipped (with reason): the phosphor-icon finding — App.tsx uses @tabler/icons
throughout (incl. the adjacent recording banner's IconLoader2); introducing
phosphor for two icons would fork the icon set in one file.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: User <user@Users-MacBook-Pro-174.local>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
0 commit comments