Development record
The v0.6.0 tag is permanently unpublishable: its roll branch carried no receipts commit, the receipt gate fail-closed at release time, and the re-release path builds only from the tagged commit whose frozen tree can never contain receipts naming its own content commit. The tag stays as a record (anti-tag-move); v0.6.1 is the recovery
issueresolvedminoriss-326
The v0.6.0 tag is permanently unpublishable: its roll branch carried no receipts commit, the receipt gate fail-closed at release time, and the re-release path builds only from the tagged commit whose frozen tree can never contain receipts naming its own content commit. The tag stays as a record (anti-tag-move); v0.6.1 is the recovery
Frontmatter
| id | iss-326 |
|---|---|
| type | issue |
| lifecycle | resolved |
| severity | minor |
.abcd/work/issues/resolved/iss-326-the-v0-6-0-tag-is-permanently.md
open on GitHub ↗ · commit history ↗
mentions5
- dcn-26082000000000022026-08-20 — bughunt round 2 (branch bughunt-b/round-2): captured the round-2 records (iss-346..iss-357, with the two colliding ids re-minted as iss-358/iss-359), fixed
- dcn-26082100000000012026-08-21 — Bug-hunt round 4, branch bughunt-b/round-4. Baseline (make preflight
- iss-355a batched merge-queue push makes github.sha the batch tip, so auto-release tags the wrong commit and release.yml's HEAD-caret-2-caret receipt derivation resolves an unrelated PR's commit whenever the release roll is not the last entry in its queue batch; the ancestry guard passes and the run wedges after the immutable tag, the iss-326 outcome by a route itd-93's pre-merge check cannot close because batch composition is decided by the queue
- iss-2608211142142469The release-gate runbook describes the semantic-receipt gate as 'Dormant until the public flip' (README.md blockquote) and phrases arming as a future condition ('Once the fail-closed verify rule is armed, the tag is rejected'), but the repo is public and the gate is armed and fed receipts on every release — it has fail-closed two: v0.3.0 (iss-108, the self-reference defect) and v0.6.0 (iss-326, a missing receipts commit, leaving a permanently unpublishable tag). The runbook a maintainer follows at tag time thus tells them receipts are not yet required, which is iss-326's proximate cause. It also misstates the failure mode ('the tag is rejected' — the tag survives, anti-tag-move; the publication is refused) and self-contradicts at the adjacent parenthetical ('dormant... never exercised' vs iss-108's v0.3.0 firing). Inverts the enforcement-claims-are-facts principle (an under-claimed live gate).
- itd-93abcd Scaffolds a Release Gate That Works on the First Try