mirror of
https://github.com/storytold/craft-libs.git
synced 2026-10-31 07:39:23 +00:00
The launcher lets someone keep an app on an older release or on nightlies, but the app's own update check never knew, so a pinned app prompted to update on every start and "Update and restart" undid the downgrade. `pins` is one small file the launcher writes (versions.json in its per-user data folder, or the absolute path in CRAFT_VERSIONS_FILE) and apps read: app id to Stable, Nightly or Pinned(tag), the launcher's own serde shape. A missing or damaged file means everyone follows stable; an entry a newer launcher wrote is left to the launcher and kept on save. `Updater` reads it before each check and before an offer. An app kept off stable gets no prompt and no network call; a requested check reports UpToDate, and `Updater::managed()` says why, so the public Status enum is unchanged and no app breaks on a rev bump. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>