Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions backends/atlas-sparkqwen/pins.json
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
{
"manifestVersion": 1,
"status": "final",
"note": "Single pin manifest for the Atlas SparkQwen RC16 lane. Source, install tree, tag and model identities are final. image.reference is the GHCR manifest digest of ghcr.io/enntity/atlas-sparkqwen:e7268337a5c8, also used as the recipe's bootstrap image. The normal install path addresses image.reference; the tag is source-build metadata (the first 12 characters of the git tree of install/ at the pinned revision) and the install-tree label is a contents check. A tag or label alone is never the artifact identity.",
"note": "Single pin manifest for the Atlas SparkQwen RC16 lane. Source, install tree, tag and model identities are final. image.reference is the GHCR manifest digest of ghcr.io/enntity/atlas-sparkqwen:b151fbe840a1, also used as the recipe's bootstrap image. The normal install path addresses image.reference; the tag is source-build metadata (the first 12 characters of the git tree of install/ at the pinned revision) and the install-tree label is a contents check. A tag or label alone is never the artifact identity.",
"source": {
"repo": "Enntity/sparkqwen",
"revision": "0cf2436de5211b41edf4d92071180c75cec31dd8",
"installTree": "e7268337a5c8e77c874c7cb7be689f80a79946a5",
"revision": "2e8e6dda78fa12848d9a48722332f6aff39b860f",
"installTree": "b151fbe840a15b735f08026c2bf521edac9ce96e",
"cloneUrl": "https://github.com/Enntity/sparkqwen.git",
"buildScript": "install/build.sh"
},
"engine": {
"repo": "Enntity/atlas",
"branch": "sparkqwen/atlas-20261010-rc16",
"commit": "1c43247d93ca050f02cb67b0603e88edfe3d92a5"
"branch": "sparkqwen/atlas-20261013-sidecars",
"commit": "84e7c734bbb70850bd2f65b0bf9e68ab8f8bac22"
},
"image": {
"reference": "ghcr.io/enntity/atlas-sparkqwen@sha256:63fcc9f8f87a3963aba91f0a5dbf2c1cf5efa1d809c4ab1b52bd5853979e73ed",
"tag": "ghcr.io/enntity/atlas-sparkqwen:e7268337a5c8",
"reference": "ghcr.io/enntity/atlas-sparkqwen@sha256:ea6a2df03adfc8802a1baf6ab1d4b55c69dd76588f36bfd5d189781500e75830",
"tag": "ghcr.io/enntity/atlas-sparkqwen:b151fbe840a1",
"label": "io.enntity.sparkqwen.install-tree",
"entrypoint": "/opt/atlas/serve.py",
"profilePath": "/opt/atlas/profiles/8x262k.json",
Expand Down
4 changes: 2 additions & 2 deletions docs/recipes.md
Original file line number Diff line number Diff line change
Expand Up @@ -563,7 +563,7 @@ interface and backend address when refreshing discovery.
## Atlas SparkQwen RC16

`linux-nvidia-dgx-spark-2x-qwen38-flash-next-atlas` runs the Atlas SparkQwen
RC16 engine (Enntity/atlas `sparkqwen/atlas-20261010-rc16` @ `1c43247d`) on two
RC16 engine (Enntity/atlas `sparkqwen/atlas-20261013-sidecars` @ `84e7c734`) on two
directly connected DGX Sparks, serving the unmodified
`nvidia/Qwen3.8-Flash-Next-NVFP4` checkpoint at revision
`fc694b54fb0174e0913e6adf86691ef85a4ead47` as `qwen3.8-flash-next-atlas`. There
Expand All @@ -586,7 +586,7 @@ Do not raise the host memory safety limit to make an oversized cache fit.

The recipe is additive (no default model, no aliases, `keepWarm` false). Pins
live in `backends/atlas-sparkqwen/pins.json` (source `Enntity/sparkqwen`
`0cf2436d`, install tree `e7268337a5c8`). The GHCR manifest digest is pinned in the same manifest.
`2e8e6dda`, install tree `b151fbe840a1`). The GHCR manifest digest is pinned in the same manifest.
`node backends/atlas-sparkqwen/verify-pins.mjs`, setup step
`verify-atlas-pins` and `install.sh` reject missing or placeholder identities. The
installer only pulls that digest and verifies the image's arm64 architecture,
Expand Down
10 changes: 5 additions & 5 deletions recipes/linux-nvidia-dgx-spark-2x-qwen38-flash-next-atlas.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,16 +14,16 @@
"provenance": {
"createdBy": "lloom",
"generatedBy": "manual-curated",
"source": "SparkQwen RC16: Enntity/sparkqwen 0cf2436de5211b41edf4d92071180c75cec31dd8 (install tree e7268337a5c8e77c874c7cb7be689f80a79946a5), engine Enntity/atlas sparkqwen/atlas-20261010-rc16 @ 1c43247d (AGPL-3.0-only, recorded in the image's /opt/atlas/source-manifest.json). The image is ghcr.io/enntity/atlas-sparkqwen:e7268337a5c8, addressed by its GHCR manifest digest in pins.json. The engine argument vector ships inside the image as /opt/atlas/profiles/8x262k.json, selected with SPARKQWEN_PROFILE=8x262k: eight sequences of up to 262144 tokens, BF16 KV (about 3.19M pool tokens at the profile's 0.88 GPU memory utilization), prefix caching, MTP speculation (up to 7 drafts), content-loop steering. Model nvidia/Qwen3.8-Flash-Next-NVFP4 revision fc694b54fb0174e0913e6adf86691ef85a4ead47."
"source": "SparkQwen RC16 maintenance: Enntity/sparkqwen 2e8e6dda78fa12848d9a48722332f6aff39b860f (install tree b151fbe840a15b735f08026c2bf521edac9ce96e), engine Enntity/atlas sparkqwen/atlas-20261013-sidecars @ 84e7c734 (AGPL-3.0-only, recorded in the image's /opt/atlas/source-manifest.json). The image is ghcr.io/enntity/atlas-sparkqwen:b151fbe840a1, addressed by its GHCR manifest digest in pins.json. The engine argument vector ships inside the image as /opt/atlas/profiles/8x262k.json, selected with SPARKQWEN_PROFILE=8x262k: eight sequences of up to 262144 tokens, BF16 KV (about 3.19M pool tokens at the profile's 0.88 GPU memory utilization), prefix caching, MTP speculation (up to 7 drafts), content-loop steering. Model nvidia/Qwen3.8-Flash-Next-NVFP4 revision fc694b54fb0174e0913e6adf86691ef85a4ead47."
},
"links": [
{
"rel": "upstream",
"href": "https://github.com/Enntity/sparkqwen/tree/0cf2436de5211b41edf4d92071180c75cec31dd8"
"href": "https://github.com/Enntity/sparkqwen/tree/2e8e6dda78fa12848d9a48722332f6aff39b860f"
},
{
"rel": "engine",
"href": "https://github.com/Enntity/atlas/tree/1c43247d93ca050f02cb67b0603e88edfe3d92a5"
"href": "https://github.com/Enntity/atlas/tree/84e7c734bbb70850bd2f65b0bf9e68ab8f8bac22"
},
{
"rel": "engine-upstream",
Expand Down Expand Up @@ -219,7 +219,7 @@
"warmup": false,
"bootstrap": {
"adapter": "docker",
"image": "ghcr.io/enntity/atlas-sparkqwen@sha256:63fcc9f8f87a3963aba91f0a5dbf2c1cf5efa1d809c4ab1b52bd5853979e73ed",
"image": "ghcr.io/enntity/atlas-sparkqwen@sha256:ea6a2df03adfc8802a1baf6ab1d4b55c69dd76588f36bfd5d189781500e75830",
"pull": false,
"pullTimeoutMs": 3600000,
"createArgs": [
Expand Down Expand Up @@ -320,7 +320,7 @@
},
"bootstrap": {
"adapter": "docker",
"image": "ghcr.io/enntity/atlas-sparkqwen@sha256:63fcc9f8f87a3963aba91f0a5dbf2c1cf5efa1d809c4ab1b52bd5853979e73ed",
"image": "ghcr.io/enntity/atlas-sparkqwen@sha256:ea6a2df03adfc8802a1baf6ab1d4b55c69dd76588f36bfd5d189781500e75830",
"pull": false,
"pullTimeoutMs": 3600000,
"createArgs": [
Expand Down
10 changes: 5 additions & 5 deletions test/atlas-sparkqwen-recipe.test.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -323,10 +323,10 @@ assert.throws(() => materialize(missingFabric), /cluster\.nodes\[ennspark04\]\.f

// ---- pins: final identities, pending digest, fail-closed gate ---------------
assert.equal(pins.source.repo, 'Enntity/sparkqwen');
assert.equal(pins.source.revision, '0cf2436de5211b41edf4d92071180c75cec31dd8');
assert.equal(pins.source.installTree, 'e7268337a5c8e77c874c7cb7be689f80a79946a5');
assert.equal(pins.engine.commit, '1c43247d93ca050f02cb67b0603e88edfe3d92a5');
assert.equal(pins.image.tag, 'ghcr.io/enntity/atlas-sparkqwen:e7268337a5c8');
assert.equal(pins.source.revision, '2e8e6dda78fa12848d9a48722332f6aff39b860f');
assert.equal(pins.source.installTree, 'b151fbe840a15b735f08026c2bf521edac9ce96e');
assert.equal(pins.engine.commit, '84e7c734bbb70850bd2f65b0bf9e68ab8f8bac22');
assert.equal(pins.image.tag, 'ghcr.io/enntity/atlas-sparkqwen:b151fbe840a1');
assert.equal(pins.image.tag, imageTagFor(pins));
assert.equal(pins.image.label, 'io.enntity.sparkqwen.install-tree');
assert.equal(pins.image.profilePath, '/opt/atlas/profiles/8x262k.json');
Expand Down Expand Up @@ -357,7 +357,7 @@ const variant = (mutate) => {
for (const [label, mutate] of [
['draft status', (m) => (m.status = 'draft')],
['branch as revision', (m) => (m.source.revision = 'main')],
['short engine commit', (m) => (m.engine.commit = '1c43247d')],
['short engine commit', (m) => (m.engine.commit = '84e7c734')],
['shell in profile path', (m) => (m.image.profilePath = "/opt/atlas/x' ; rm -rf / ; '")],
['short install tree', (m) => (m.source.installTree = m.source.installTree.slice(0, 12))],
['tag not derived from tree', (m) => (m.image.tag = `${IMAGE_REPOSITORY}:latest`)],
Expand Down
Loading