Skip to content

In-app auto-updater with download and install #345

@darktorres

Description

@darktorres

Description

Extend the existing update notification (which checks GitHub Releases) into a full auto-updater that can download and install updates without the user leaving the app.

Current State

The update checker exists (74d22b32a) and shows a dialog when a new version is available with a link to the release page. It does not download or install updates.

Acceptance Criteria

  • Non-intrusive notification when an update is available
  • One-click download and install (restart required)
  • Rollback on failed update
  • User can disable auto-check in settings
  • Works on all three platforms

Implementation Guide

1. Download

  • Extend UpdateChecker to download the release asset (AppImage/ZIP/DMG) from the GitHub Releases API
  • Download to a temp directory with progress reporting
  • Verify checksum if available in the release notes

2. Platform-specific installation

  • Linux AppImage: Replace the current AppImage file, re-launch
  • Windows: Download the installer/ZIP, launch installer, quit current instance
  • macOS: Download DMG, mount, replace .app bundle (or use Sparkle framework)

3. Rollback

  • Before replacing, backup the current binary
  • If the new version fails to launch, restore the backup
  • Store backup path in settings for cleanup on next successful launch

4. UI

  • Extend the existing update dialog with "Download & Install" button
  • Show download progress bar
  • Add "Check for Updates" in Help menu (already exists — add download action)

Key files

  • App/Core/UpdateChecker.h/.cpp — existing update check logic
  • App/UI/MainWindow.cpp — update dialog
  • App/Core/Settings.h/.cpp — auto-update preference

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    Status

    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions