seed-release: jq-free, tag keyed to upstream.json (#263) #266

Merged
plat merged 1 commit from seed-release-jqfree into main 2026-09-02 15:03:45 +00:00
Owner

Task 28177's log (read from the pod — Forgejo has no run-log API) shows the true cause of every seed-release failure since birth: jq: command not found on the isolated runner image. Step 1 always worked — the github.token raw fetch and in-cluster BASE derivation are fine.

  • jq-free: JSON built with printf from controlled fields; release id read via tr/sed (Go marshals struct order — id first). Nothing beyond curl/sed/tr/grep/tar, with a header comment holding that line.
  • Tag from genesis/upstream.json .release — the reseed run number, the same id the seed package is versioned by. The old fallback minted seed-r20260902045124 from the manifest's seedVersion timestamp. A seed without a release id fails loudly.

Proof after merge: workflow_dispatch must create release seed-r886 for the current genesis (r873/r829 exist hand-made; r886 does not — a real 201-path proof, then the next reseed merge proves the push path).

Task 28177's log (read from the pod — Forgejo has no run-log API) shows the true cause of every seed-release failure since birth: `jq: command not found` on the isolated runner image. Step 1 always worked — the `github.token` raw fetch and in-cluster BASE derivation are fine. - **jq-free**: JSON built with printf from controlled fields; release id read via tr/sed (Go marshals struct order — `id` first). Nothing beyond curl/sed/tr/grep/tar, with a header comment holding that line. - **Tag from `genesis/upstream.json` `.release`** — the reseed run number, the same id the seed package is versioned by. The old fallback minted `seed-r20260902045124` from the manifest's seedVersion timestamp. A seed without a release id fails loudly. Proof after merge: `workflow_dispatch` must create release `seed-r886` for the current genesis (r873/r829 exist hand-made; r886 does not — a real 201-path proof, then the next reseed merge proves the push path).
seed-release: no jq, tag from upstream.json
All checks were successful
guard-ppt / no-ppt (pull_request) Successful in 21s
guard-ppt / no-ppt (push) Successful in 21s
8d5d17aa68
The isolated runner image ships no jq — every firing since birth died at
step 2's first jq -n (task 28177 log; #263). The workflow now uses only
curl/sed/tr/grep/tar. The tag comes from genesis/upstream.json .release
(the reseed run number, the id the package is versioned by) — never from
merge-commit prose or the manifest's seedVersion timestamp, which minted
seed-r20260902045124 on dispatch.
plat merged commit 64dd69a1df into main 2026-09-02 15:03:45 +00:00
plat deleted branch seed-release-jqfree 2026-09-02 15:03:45 +00:00
Sign in to join this conversation.
No description provided.