feat: Add desktop OTA updater - #271
Conversation
|
Hey @indapublic — thanks for tackling this, re-downloading the DMG on every update is exactly the pain worth fixing. Heads up for coordination: I independently built the same feature in #272, and it ended up a bit broader, so cross-linking here to avoid duplicate work. Where #272 overlaps with this PR: Where #272 goes further:
One thing this PR does that #272 doesn't: @vakovalskii — your call on how to reconcile these. Suggestion: take #272 as the base (Windows + mac zip + hardening + test) and cherry-pick @indapublic's |
Adds desktop/scripts/regenerate-latest-mac.js (+ `npm run refresh-update-feed`) so the release runbook no longer hand-edits latest-mac.yml. Generalises the idea from #271 (thanks @indapublic) to the zip+dmg feed: it parses electron-builder's own latest-mac.yml and refreshes sha512/size/blockMapSize only for entries whose bytes changed on disk (sha512 mismatch), then re-syncs the top-level sha512 to the `path` file. Schema-preserving and idempotent — the untouched .zip entries (the actual mac update artifact) are left as-is; only stapled DMG entries are recomputed. RELEASE.md step 2b now calls the script instead of the manual yaml edit. Pure transforms covered by test/desktop-update-feed.test.js. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Redownloading the DMG isn't very convenient, so I’d like to discuss this PoC