You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
v0.6.0: in-app self-update from the About panel
About → 'Update now' downloads the latest release, verifies it, swaps the app in
place, and relaunches — no manual drag-to-Applications, no admin (the app is
user-owned).
- src/selfupdate.py: download (certifi HTTPS) → mount → VERIFY (spctl notarized
+ codesign TeamIdentifier pinned to ZWXAL8XA46; a tampered/fake update can't
install) → stage → detached helper waits for quit, ditto-swaps the bundle,
clears quarantine, relaunches. Falls back to the release page when running
from source or a read-only install.
- src/updates.py: expose the DMG asset browser_download_url.
- src/app.py: About shows 'Update now to vX' when a self-update can apply, else
the old 'Download update' page button.
- tests/test_selfupdate.py; README documents it; version → 0.6.0.
Verified end-to-end: a running v0.6.0 downloaded the notarized v0.5.0, verified
it, replaced itself and relaunched; verify correctly rejects wrong-team and
non-notarized apps.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>