Skip to content

feat: publish a v3 runtime feed that can list the image runtime - #11

Merged
ashokgelal merged 1 commit into
mainfrom
feat/runtime-feed-v3
Nov 11, 2026
Merged

ashokgelal merged 1 commit into
mainfrom
feat/runtime-feed-v3

Conversation

@ashokgelal

Copy link
Copy Markdown
Contributor

This adds a second runtime feed at v3/runtime/<channel>/runtime-release-feed.signed.json, next to v2. It uses the same schema, envelope and signing key. Runtime 0.10 reads v3 and falls back to v2 until v3 exists.

v3 has everything v2 has, plus the Nexus image runtime (images). The image entry is read from runtime-manifest.json and checksums.txt under msty-nexus/runtime/images/ on nexus-assets. The stable channel reads latest/ and points at the versioned archive. The dev channel reads latest/dev/ and pins that archive by SHA-256, the same way Apple Foundation Models does today. If the manifest returns 404, the image runtime is left out of that channel. Any other error fails the refresh.

v2 is not touched. Runtime 0.9.1 and earlier reject the whole feed for a runtime they do not know, so the v2 generator never asks for the image runtime, and the v2 validator, signer and verifier refuse a feed that lists it. The scripts take a feed version (default 2), and the refresh workflow now generates, signs, verifies and commits both paths. The first scheduled run creates the v3 files. CI skips v3 until then.

Testing:

  • node --test scripts/*.test.mjs (61 pass) and the Python bundle tests pass.
  • Ran the generator against live upstreams. v2 stable and v2 dev both report "unchanged" against the committed files.
  • The v3 candidates for stable and dev have the same entries as the committed v2 files (only publishedAt differs). The image manifests return 404 today on both latest/ and latest/dev/, so no images entry yet.
  • The tests cover: v2 never lists images, v3 lists it when the manifest exists and omits it on 404, a bad manifest, a missing checksum and a non-404 error all fail, and the exact artifact fields.

Two things to know. v2 dev already lists foundationmodels, so the v2 allowlist is ollama, llamacpp, mlx, and foundationmodels on dev, as it is today. And the MLX feed code has no dev lane (both channels read mlx/latest/), so the dev rule for images follows the Foundation Models code instead.

Runtime 0.9.1 and earlier reject the whole v2 feed for a runtime they do not know, so v2 stays frozen. v3 has the same entries plus the image runtime once its manifest is published. The v2 generator and verifier refuse any other runtime.
@ashokgelal
ashokgelal merged commit de69f51 into main Nov 11, 2026
1 check passed
@nikeshparajuli
nikeshparajuli deleted the feat/runtime-feed-v3 branch November 13, 2026 04:16
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