Files
Claude 446e3f484d feat(desktop): self-update from NIP-82 releases signed by Amethyst's key
The desktop app now finds, downloads, verifies and installs its own updates
when it was installed from a GitHub Release file, and tells Homebrew, Flatpak
and read-only installs how to update instead.

- commons/appupdate: NIP-82 release lookup (#i + #f on the relay), a finder
  that trusts only releases and assets signed by the pinned publisher key for
  the desktop app id, stable channel and host platform, the AppUpdateManager
  state machine behind an AppUpdateController port, and the events amy signs.
- desktopApp/update: install channel detection (DMG, Homebrew, translocated
  app, MSI, zip, AppImage, tarball, deb/rpm, Flatpak), a SHA-256-checked
  downloader, per-channel installers and helper scripts that swap after the
  app quits and always relaunch, and a notify-only GitHub fallback.
- commonsUI: the update prompt and Settings > App > Updates.
- amy desktop-release publish: hashes the release files and signs the asset
  and release events (beta channel for prereleases).
- AppImage: zsync update information and the .zsync asset.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HjWRrkeWh8jtjHeFDRXkc3
2026-10-15 19:18:18 +00:00
..