You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
autopilot's INHERITED dogfood GO writes no receipt that check_publish_preflight.sh R5 accepts — v0.69.0 stopped at the publish preflight 43 min after tagging #3708
autopilot STATUS: 13:56:49Z DOGFOOD GO at 225b2a9ab (INHERITED from parent 5f9bd9344 preflight GO; bump diff = version surface only; receipt …/rel-069-state/dogfood-inherited.receipt). Then tag, clean-room (re-dispatched once), assets 16/16, B2-GPU all green, and:
FAIL R5 no dogfood receipt under /mnt/nvme-raid0/agent-wt/rel-069-state/wt/.dogfood (run scripts/dogfood.sh on this commit)
REFUSE check_publish_preflight.sh: publishing is not allowed from this tree (see the FAIL rows).
14:40:10Z STOP publish preflight refused rc=1
The two halves of the train disagree. The inheritance shortcut saves ~35 min at T-1, then R5 at T-4 demands the real receipt in the tag's worktree. Recovery was to run the real dogfood on the release commit (+~35 min, after the tag was already public). The cheapest path is also the wrong order: the dogfood the shortcut skipped ran anyway, just later.
done_when
ONE rule, enforced at both ends. EITHER autopilot never inherits and runs the real dogfood at T-1 in $AP/wt (pre-tag, where a NO-GO costs no public tag), OR R5 accepts the inherited receipt under exactly the conditions autopilot checked (parent GO receipt present, bump diff = version surface only, parent is the release commit's first parent), and both read the same file. Pick one; don't keep both.
a case table in scripts/release/: inherited receipt + R5 → PASS iff the conditions hold; missing parent receipt → REFUSE at T-1, never at T-4
measured on the 0.70 train: no STOP between TAGGED and CASCADE for this reason
Also found the same day (aprender-f0): the close step requires the milestone to have 0 open items, but nothing closes the release EPIC, so close dies on its own epic. 0.68.2's was closed by hand. Same fix owner.
Obligation added (issue author, cop, 2026-09-21):prepare_bump.sh --ship refuses to open the bump PR unless per-host model-ladder receipts for the NEW version are committed on the bump branch: evidence/dogfood/models/<v>/{lambda,gx10}.json, written by scripts/model_ladder.sh with an apr built from the bump tree. 0.68.2 did this by hand (#3498); 0.69.0 missed it, and that made check_model_ladder unmeasurable until after the tag. The script may REQUIRE the receipts without producing them; gx10's is measured over the operator-authorized lambda→gx10 SSH. Case row: missing gx10.json refuses, naming the file; mutant.
done_when 2 amended (issue author, cop, 2026-09-21), replacing the original, which assumed the inherit option. The option picked is: NEVER inherit.
a case table, wired as a scripts/check_*.sh so guard-tree runs it (the check_t2_preflight_verdict.sh pattern), that drives the real scripts/release/autopilot.sh dogfood step with stubs: a parent GO receipt plus a version-only bump diff still runs dogfood.sh (never inherits); a receipt R5 refuses (NO-GO, other commit, other version, absent) STOPs at T-1 before any tag; a GO receipt passes R5 at T-1, and check_publish_preflight.sh R5 at T-4 reads the same receipt file with the same function. Plus the close step: the epic as the milestone's only open item is closed, then the milestone; any other open item refuses both. A mutant for each.
done_when 1 and the ladder-receipt obligation (comment above) stand. done_when 3 (measured on a real train) is met at 0.69.1, so the PR carries Refs #3708.
Milestone 0.70.0 → 0.70.1 (gate triage). 0.70.0 now holds only the operator's release gate: "FULL ontology spec and all aprender binary working" + "0.70 to crates.io" (ONT-001, every [[bin]] build+smoke, the publish cascade), plus P0s and operator-ruled rows. This issue isn't needed for any of those. Evidence: evidence/m070-gate-triage-1835.md. If that's wrong, move it back to 0.70.0 and say which gate it serves.
Status on the 0.70 line: done_when 1 and 2 landed via #3772 (squash 8c7822f, which batch/0.70.0 contains). autopilot.sh runs the real pre-publish dogfood at T-1 and never inherits it. It judges R5 there with check_publish_preflight.sh --receipt-only and closes the epic before the milestone. scripts/check_release_autopilot_dogfood_close.sh passes 17/17 rows today, and its 2 mutants are killed. What remains is done_when 3: measuring on the 0.70 train that nothing STOPs between TAGGED and CASCADE for this reason. Close after the train.
P0 to P1 (2026-10-14 P0 triage): P0 now means it blocks the next release or carries the operator's own words on it; this issue does neither, so it stays on the 0.71.0 milestone at P1.
Folded into #2876 as a checklist row (TRIAGE-100, 2026-10-14): the open-ticket cap is 100, so this ticket is now tracked on that master and closed as not planned. Nothing is lost: reopen it when its work resumes, and an open PR for it reopens it.
Activity
noahgift commentedon Sep 21, 2026
Obligation added (issue author, cop, 2026-09-21):
prepare_bump.sh --shiprefuses to open the bump PR unless per-host model-ladder receipts for the NEW version are committed on the bump branch:evidence/dogfood/models/<v>/{lambda,gx10}.json, written byscripts/model_ladder.shwith an apr built from the bump tree. 0.68.2 did this by hand (#3498); 0.69.0 missed it, and that madecheck_model_ladderunmeasurable until after the tag. The script may REQUIRE the receipts without producing them; gx10's is measured over the operator-authorized lambda→gx10 SSH. Case row: missing gx10.json refuses, naming the file; mutant.noahgift commentedon Sep 21, 2026
done_when 2 amended (issue author, cop, 2026-09-21), replacing the original, which assumed the inherit option. The option picked is: NEVER inherit.
check_publish_preflight.shR5 at T-4 reads the same receipt file with the same function. Plus the close step: the epic as the milestone's only open item is closed, then the milestone; any other open item refuses both. A mutant for each.done_when 1 and the ladder-receipt obligation (comment above) stand. done_when 3 (measured on a real train) is met at 0.69.1, so the PR carries
Refs #3708.fold #3791 (+ #3571 unit 1, #3595, #3571 unit 2): APR Q4K GPU serve n…
fix(#3708): the bump guard's own fixture was pre-#3828 — five body ru…
noahgift commentedon Sep 24, 2026
Milestone 0.70.0 → 0.70.1 (gate triage). 0.70.0 now holds only the operator's release gate: "FULL ontology spec and all aprender binary working" + "0.70 to crates.io" (ONT-001, every [[bin]] build+smoke, the publish cascade), plus P0s and operator-ruled rows. This issue isn't needed for any of those. Evidence: evidence/m070-gate-triage-1835.md. If that's wrong, move it back to 0.70.0 and say which gate it serves.
noahgift commentedon Sep 24, 2026
Status on the 0.70 line: done_when 1 and 2 landed via #3772 (squash 8c7822f, which batch/0.70.0 contains). autopilot.sh runs the real pre-publish dogfood at T-1 and never inherits it. It judges R5 there with
check_publish_preflight.sh --receipt-onlyand closes the epic before the milestone.scripts/check_release_autopilot_dogfood_close.shpasses 17/17 rows today, and its 2 mutants are killed. What remains is done_when 3: measuring on the 0.70 train that nothing STOPs between TAGGED and CASCADE for this reason. Close after the train.fix(ollama): keep non-object tool args raw, empty tool_calls reads as…
fix(ollama): normalise empty tool_calls before the stream/non-stream …
release(0.69.1): batch 1 — 20 receipted rows + 3 combination fixes, o…
noahgift commentedon Oct 14, 2026
P0 to P1 (2026-10-14 P0 triage): P0 now means it blocks the next release or carries the operator's own words on it; this issue does neither, so it stays on the 0.71.0 milestone at P1.
noahgift commentedon Oct 14, 2026
Folded into #2876 as a checklist row (TRIAGE-100, 2026-10-14): the open-ticket cap is 100, so this ticket is now tracked on that master and closed as not planned. Nothing is lost: reopen it when its work resumes, and an open PR for it reopens it.
Agent: aprender-clerk