zero-gravity: resolve release tag by probing known forms; fail loudly on 404 #61
Reference in New Issue
Block a user
Delete Branch "fix-zerog-release-tag-resolution"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
ASSET-only change (
zero-gravity/zerog.Dockerfile). No gitlink bump, no source change, no regeneration — the gitlink stays deploy-owned.Problem 1 — the release tag cannot be hardcoded
0G publishes aristotle and galileo from two different repositories, and neither uses a consistent tag format. The asset filename is always
<spec>-v<version>.tar.gz; only the tag varies. Probed live 2026-08-11:0gchain-Aristotle1.0.40gchain-Aristotlev1.0.60gchain-NGv3.0.30gchain-NGgalileo-v3.0.70gchain-NGv3.0.8The old Dockerfile hardcoded
download/${VER}/for aristotle anddownload/v${VER}/for galileo. Consequences:Fixed by resolving the tag: try the known forms in order, take the first that yields the asset.
Problem 2 — 404s failed silently, four layers later
curl -sLhas no--fail, so a 404 HTML body was written into the.tar.gzand the build died at the next layer with:An error that points nowhere near the cause. This has now caused three separate misdiagnoses:
node_version: 3.0.3was inherited by aristotle (3.0.3 exists in0gchain-NG, not in0gchain-Aristotle) — fixed by pinning 1.0.4 in vibe-node f3f7f23;1.0.6and would have reintroduced it;0gchain-NG.Now
curl -fsSL, plus an explicit guard that names the version, the repo, and every tag tried.Verification
Resolver logic run verbatim against the real GitHub artifacts:
aristotle 3.0.3is the exact input that caused the original blocker — it now fails in seconds with an actionable message instead of an opaque tar error.Then end-to-end against the real 68 MB
aristotle-v1.0.6.tar.gz(the previously-unreachable case), including the extraction step:The extraction branch and the
chmodtargets were checked explicitly, since the 1.0.6 layout had never been exercised.⚠️ Not built as a container image — no docker daemon on the controller. The download/extract path is verified against the real artifacts; the surrounding layers are unchanged from what already builds today.
Behaviour for current pins
Unchanged.
aristotle 1.0.4still resolves on the first candidate andgalileo 3.0.3on the first — no extra requests, no behaviour change, for anything pinned today.Follow-up this unblocks
context.ymlbump in vibe-node. Land this first — bumping the version before this Dockerfile is deployed would break the build.chainid: 16602) is independent of this and unaffected.Context: closed vibe-node #2865/#2967/#3086/#3087/#3145/#3171/#3189 during the 0g cluster triage; full evidence in vibe-node #2865.
🤖 Generated with Claude Code