Desktop Packaging and Distribution — Signet Docs

Docs

Desktop Packaging and Distribution

Desktop Packaging and Distribution

Context

Signet now uses an Electron desktop app, but distribution is still incomplete as a release contract:

  • runtime startup depends too heavily on global installs
  • Linux channel expectations differ between Ubuntu and Arch users
  • signing readiness is implicit rather than enforced

This spec locks the packaging contract for macOS, Windows, Ubuntu, and Arch.

Contract

  1. Desktop build workflows must produce:
    • macOS installer artifacts
    • Windows installer artifacts
    • Ubuntu .deb and .AppImage
    • Arch deliverables as .AppImage + AUR metadata
  2. Electron desktop runtime startup must support a bundled Bun daemon fallback path when system runtimes are unavailable.
  3. Release workflows must resolve signing mode before publish:
    • official signing when certificate secrets are present
    • self-signed fallback when official signing is unavailable
  4. AUR metadata generation must be deterministic from version, AppImage URL, and checksum.
  5. Arch packaging must be validated in CI by building from the generated PKGBUILD.
  6. The official local source-build entrypoint is signet desktop build; signet desktop install builds from the same source checkout and installs a native launcher where the platform implementation exists.
  7. Packaged desktop releases must publish update metadata (latest*.yml) and platform artifacts required by electron-updater, including macOS zip artifacts, so desktop users can move to new dashboard/runtime bundles without reinstalling manually.

Integration notes

  • Depends on signet-runtime for daemon behavior contracts.
  • Desktop packaging remains independent of npm release train mechanics.
  • The CLI source-build path uses the already-pulled Signet checkout. It must not clone over local work or silently switch branches.
  • Generated AUR metadata is emitted as CI artifacts and can be pushed by a separate credentialed job.
  • platform/daemon-rs remains the shadow daemon rewrite. Desktop sidecar usage is intentionally bound to the current Bun daemon. daemon-rs remains separate parity work until cutover is approved.