Skip to content

alpha.13: updates across a model-list change, interrupted Undo repair (#113) - #327

Merged
andersalm merged 12 commits into
developfrom
train/alpha13-fix
Oct 9, 2026
Merged

andersalm merged 12 commits into
developfrom
train/alpha13-fix

Conversation

@andersalm

Copy link
Copy Markdown
Contributor

alpha.13 train, second part: updates across a model-list change (#113).

Found by Sasha's real Mac runs (#113): updaters in alpha.12 and earlier never install model-catalog.json, so after an update into a release that adds or changes the model-list pin, Undo and later updates were refused ("Installed release inputs require repair") and the System page restored with "could not start". An interrupted Undo could leave a component from the other release that setup would not repair, and setup of an older release fetched components by name.

  • Home start, elastos update (also when already up to date), System Update and Undo repair the installed release from its signed components first: the pinned catalogue is fetched by CID over Carrier (CID + publisher signature checked; 128 KiB, 30 s); a component with wrong bytes is re-fetched by CID. Offline, Home still starts and Local AI says the list could not be fetched; Update/Undo change nothing.
  • Both update paths install the target's catalogue as journaled support; Undo restores the previous one or removes it for a pin-less release.
  • Component folders are replaced by an atomic swap (renameat2 RENAME_EXCHANGE / renameatx_np RENAME_SWAP); leftovers are reclaimed safely; fresh setup takes the install lock.
  • Setup fetches a release's own components and catalogue by its signed CIDs.
  • Large awaited futures in the update chain are boxed so it fits a 2 MiB test stack.
  • Reverts the catalogue-3 pin (c5c75fb): this release keeps alpha.11's model list so alpha.11/12 System updaters (which cannot install catalogues) can reach it. Qwen's list ships in alpha.14 through this release's updater. Homes on alpha.10 or older update once from Terminal.

Cross-family reviews: FAIL x5 -> PASS (4c125df), stack fix PASS (bee41aa). Full remote check PASS at 11085c2.

#113)

An older updater installs a release's components without its pinned
model-catalog.json (or keeps the previous one), and an Undo stopped
halfway leaves another release's component; admission then refuses
Home, Update and Undo with "Installed release inputs require repair".

- Home start, Update and Undo first repair the installed release's own
  support from its signed components: the pinned catalogue is fetched by
  CID over Carrier and verified (CID + publisher signature), a component
  whose bytes differ from its unchanged description is refreshed by CID.
  Offline gives a retryable message and changes nothing.
- Terminal and System updates stage the target's catalogue as journaled
  support (model-catalog.json is the one top-level support file), so a
  pin change installs cleanly and Undo restores the previous file, or
  removes it for a release without a pin.
- Setup fetches the installed release's components and catalogue by
  their signed CIDs instead of the source's newest files by name.
…atalogue (#113 review)

- System Update and Undo repair the installed release (catalogue required,
  components) before admission, like Terminal; `elastos update` repairs a
  current release before saying it is up to date.
- Home admission no longer requires the catalogue. Home start repairs
  components and tries the catalogue once (128 KiB, 30 s total); offline,
  Home starts and Local AI reports it, retrying on its next read.
- Repair restores every Home-profile component that admission requires,
  whether or not a Home document is present.
- Directory replacement stages a synced copy beside the destination and
  exchanges it atomically; file replacement syncs before rename. The old
  tree is never removed first.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant