Context
APW.app today is updated via Homebrew (brew upgrade), manual download (once the DMG path lands), or rebuild-from-source. There is no in-app update channel, which means:
- Users not following GitHub releases run stale brokers.
- Security fixes have no push channel — only pull.
- Notarized release signatures are verified at install time but never re-checked at update time.
For a security-sensitive credential broker, "update urgency" deserves its own surface.
Proposed Fix
Evaluate Sparkle (the standard macOS in-app update framework) or a homegrown updater that:
- Checks a signed appcast served from a stable URL.
- Verifies the EdDSA signature of the appcast and the codesign + notarization status of the downloaded bundle before applying.
- Respects MDM-managed config (companion roadmap issue) so enterprise admins can disable user-driven updates.
- Surfaces an explicit "security update available" prompt when the appcast item is flagged.
Acceptance criteria
Context
APW.app today is updated via Homebrew (
brew upgrade), manual download (once the DMG path lands), or rebuild-from-source. There is no in-app update channel, which means:For a security-sensitive credential broker, "update urgency" deserves its own surface.
Proposed Fix
Evaluate Sparkle (the standard macOS in-app update framework) or a homegrown updater that:
Acceptance criteria