vercel-labs / vercel-labs/native
feat(updates): implement signed atomic updates for macOS app bundles
Nobody has claimed this yet.
- Dominant language
- Zig
- Stars
- 7.7k
- Forks
- 314
- Avg merge
- 5h
- Merged PRs (30d)
- 13
Description
Problem
Native reserves update configuration in app.zon, but applications must currently implement checking, downloading, signature verification, installation, and relaunch themselves.
https://native-sdk.dev/updates
This becomes particularly risky when an app contains helper executables. Updating the main binary and helper independently can leave an incompatible or partially updated installation.
Proposed initial scope
Implement a macOS-first update flow for a ZIP containing the complete .app bundle.
The application should explicitly control the flow through effects such as:
- Check for an update.
- Download an update.
- Receive download progress.
- Verify the artifact.
- Install and relaunch.
Updates must never install silently.
The existing feed_url and public_key fields should be used for discovery and Ed25519 verification.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading the update configuration in app.zon and the linked updates documentation, focusing on the existing feed_url and public_key fields. No implementation files or tests are named, so the repository entry point still needs to be identified. Done means an explicit macOS flow covers checking, downloading with progress, Ed25519 verification, atomic installation of the complete .app bundle, and relaunch without silent updates.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- macos, zig
- Domain
- desktop, release, security
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100