vercel-labs / vercel-labs/native

feat(updates): implement signed atomic updates for macOS app bundles

Open
#169 0 comments 0 reactions 0 assignees View on GitHub

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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.