Skip to content

Add an updater - #24

Merged
nsaintot merged 1 commit into
mainfrom
Auto-updater
Nov 12, 2026
Merged

nsaintot merged 1 commit into
mainfrom
Auto-updater

Conversation

@nsaintot

Copy link
Copy Markdown
Owner

An updater on every platform. The version stays centred in the title bar and checks on a click; a slot in the corner shows the result and "New update available!".

host check install
macOS Sparkle 2.10, daily, on a click, and from the app menu Sparkle's window replaces the bundle and relaunches
Windows newest v* GitHub release, at launch, daily and on a click download Setup (SHA-256 checked), wait until idle, silent Setup that keeps mode, location and GPU choice, then restart
Linux same as Windows opens the release page

Release changes:

  • CD writes appcast.xml, signed with the UPDATE_SIGNING_KEY secret (public half in packaging/update-ed25519.pub).
  • macOS reads the feed from releases/latest, so model releases must be created with --latest=false.

Tested:

  • macOS: install from a local signed feed through Sparkle.
  • Windows (amnacog-pc): notice, question, download, wait for queued separations, silent install of v0.1.3, and the new Setup run directly with /S /relaunch (mode, GPU choice, wait for the running exe, restart).
  • Not run: notarization with Sparkle inside (this PR's CD run covers it), Linux at run time.

- Title bar: the version stays centred; a click checks for updates. A slot
  in the corner away from the window buttons shows Checking, Up to date,
  Check failed, and "New update available!" once a newer release exists.
- macOS: Sparkle 2.10 in the bundle, with "Check for Updates…" in the app
  menu. A click on the version probes the feed; a click on the notice opens
  Sparkle's window. CD writes appcast.xml, signed with UPDATE_SIGNING_KEY.
- Windows: asks, downloads Setup and checks its SHA-256, waits until nothing
  is running, queued or downloading, then runs Setup silently and restarts
  Stemd. Setup keeps the install mode, location and GPU choice of the copy
  it replaces, and waits for the old executable to exit. The zip, or an
  all-users copy on a standard account, opens the release page.
- Linux: the notice shows in the status bar and opens the release page.
- Windows and Linux pick the newest v* release, so model releases do not
  hide updates. macOS reads releases/latest, so model releases must be
  published with --latest=false.
@nsaintot
nsaintot merged commit 868f6d8 into main Nov 12, 2026
6 checks passed
@nsaintot
nsaintot deleted the Auto-updater branch November 12, 2026 13:00
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.

1 participant