Files
open-design/apps/desktop/tests
PerishFireandGitHub 5b5cc6b89c feat(updater): route to installer when a release outgrows this build (#5235)
Add the installed-base escape hatch: the desktop updater now refuses an
in-place payload update and routes to the full installer when a release
declares capabilities beyond what this build can adopt. Two orthogonal,
fail-open guardrails read from the release feed:

- launcher.schema (ABI axis): feed.launcher.schema > LAUNCHER_SCHEMA_VERSION
  means this build cannot interpret the launcher contract the payload expects.
- control.launcher.version.min (recency axis): min > currentVersion means the
  release requires a newer launcher/build.

Either trip forces preferPayload=false, reusing the existing installer path;
missing/malformed fields are ignored so older feeds keep updating seamlessly.
This lets already-shipped builds self-route to a reinstall once a future
launcher-based release lands, instead of attempting an update they cannot run.

remoteRequiresReinstall is a pure, exported function; the same schema floor
will later be enforced locally by the Go launcher against on-disk manifests.
The tools-serve updater fixture can now emit both fields for verification.
2026-07-08 04:41:44 +00:00
..