Skip to content

[Enhancement]: About ΓÇö seamless auto-update (download, replace, restart) #2

Description

@laurentiu021

Problem

The current update flow checks GitHub, auto-downloads the new exe, but then requires the user to click Install which launches the new exe alongside the old one. The user must manually handle the transition. For a professional app, the update should be seamless.

Current behavior

  1. App checks GitHub Releases API on startup
  2. If newer version found, auto-downloads the exe
  3. User clicks 'Install' ΓÇö launches new exe
  4. If download blocked, 'Manual download' opens GitHub in browser

Proposed solution

Make the update fully automatic and professional:

Silent update flow

  1. Check for updates on startup (already done)
  2. Download new exe to temp location (already done)
  3. Verify SHA256 hash against the .sha256 file from the release
  4. On 'Install' click: copy new exe over old one and restart
    • Use a small helper script/batch that waits for the app to close, replaces the exe, and relaunches
    • Or use a staging approach: download to AppData, swap on next launch
  5. Show progress and status in a toast notification (if minimized to tray)

Optional: fully silent updates

  • Setting: 'Auto-install updates' (off by default)
  • When enabled: download + verify + stage, apply on next app restart
  • Never force-restart ΓÇö apply when user naturally closes/reopens

Update notification improvements

  • Tray notification when update is ready (integrates with SysManager 0.48.20 released #391)
  • 'What is new' summary in the notification
  • Update banner in main window (already exists, keep it)

Technical notes

  • Cannot replace a running exe directly ΓÇö need helper process or staging
  • SHA256 verification is critical for security
  • Consider Squirrel.Windows or Velopack for professional update framework

Affected tab

About + Application-wide (update banner, tray notification)

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions