Skip to content

feat: in-app auto-update#133

Merged
johannesjo merged 1 commit into
johannesjo:mainfrom
VitorRibeiroCustodio:feat/add-auto-update
May 22, 2026
Merged

feat: in-app auto-update#133
johannesjo merged 1 commit into
johannesjo:mainfrom
VitorRibeiroCustodio:feat/add-auto-update

Conversation

@VitorRibeiroCustodio
Copy link
Copy Markdown
Contributor

@VitorRibeiroCustodio VitorRibeiroCustodio commented May 22, 2026

What

In-app auto-update — users move to a newer version without deleting and reinstalling the app (#91).

  • Silent update check ~10s after launch; manual Check for updates in Settings → Diagnostics → Updates.
  • A sidebar header button appears whenever an update is available / downloading / downloaded — the single apply path: one click downloads, then becomes restart & install. Hidden when up to date, unsupported, or the last check failed.
  • The Settings Updates section shows the current version, a manual check, and the last-check outcome (up to date / available / error). It no longer carries its own apply buttons — applying happens via the sidebar button, so there is one apply path.
  • Auto-update is a packaged-build capability. Dev runs and the Linux deb target (no in-place update channel) report "unavailable" instead of failing.
  • Once downloaded, Restart & install relaunches onto the new version; a deferred install also applies automatically on next quit.

How

  • New backend module electron/ipc/updater.ts wraps electron-updater's autoUpdater behind new IPC channels: check_for_updates, download_update, quit_and_install_update, get_update_status, and a pushed update_status_changed event.
  • Renderer store slice src/store/updates.ts (status signal + subscription + check/download/install helpers); new UpdateButton component in the Sidebar header; Updates section in SettingsDialog.
  • electron-builder config: GitHub publish target + a macOS zip artifact (electron-updater requires zip to apply macOS updates).
  • No persisted-state or schema change — update status is transient, re-derived from the main process each launch.

Testing

Verified locally against a generic update server: a packaged build detected a newer published version, downloaded it with progress, and relaunched onto the new version via Restart & install.

Screenshots

Screenshot 2026-05-22 at 06 15 31

Adds in-app auto-update so users get newer versions without a manual
reinstall (johannesjo#91). Checks GitHub Releases silently ~10s after launch and
on demand from Settings, downloads on request, and relaunches onto the
new version.

A sidebar header button surfaces an available update and is the single
apply path (download, then restart & install). The Settings Updates
section shows current version, a manual check, and last-check status.

Backend module electron/ipc/updater.ts wraps electron-updater behind
new IPC channels; degrades to "unsupported" for dev runs and the Linux
deb target, which have no in-place update channel. Adds a GitHub
publish target and a macOS zip artifact to the electron-builder config.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@johannesjo
Copy link
Copy Markdown
Owner

Thank you very much! <3

@johannesjo johannesjo merged commit 3811d58 into johannesjo:main May 22, 2026
2 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