chore(release): v0.53.0 #982

Merged
bosun merged 1 commit from release-prep/rolling into main 2026-08-27 09:12:42 +02:00
Member

Changelog density — clean

  • PASS — check 7 (sentence length): all sentences ≤ 25 words. Lists, tables and blockquotes are measured too (#632).
  • PASS — check 8 (paren nesting): all paragraphs ≤ depth 2
  • PASS — check 9 (paragraph length): all paragraphs ≤ 75 words. Lists, tables and blockquotes are measured too (#632).

Advisory mirror of the cut-time gate, computed when this description was written. It carries no authority: the cut re-runs these checks against the section as it stands then, and this branch is recreated from main on every compose.

Added

  • workflows: shared Forgejo parse guard records complete workflow coverage (#841)
  • release: rebuilding an old tag now uses current pipeline logic (#980)

Changed

  • contributor CI: fork pull requests now receive an explicit workflow-approval notice (#645)
  • ac-closure-check: the undeclared-target refusal now names the negation case explicitly (#989)

Fixed

  • manifest PR auto-merge: explicitly requests deletion of the generated branch (#633)
  • release: the pipeline checkout no longer dirties the tree being built (#980)
  • workflow-parse-check: toolkit-self cuts resolve the toolkit from main before the new tag exists (#995)

Removed

None.

Deprecated

None.

Upgrade

None.

Internal

  • release: document refactor-of-an-already-documented-change guidance and the non-automated Refactors: trailer convention (#492)
  • fetch-rt.sh: comment why a surviving checksums.txt is safe on both early-exit paths (#643)
  • internal: keep hidden workflow verbs in the complete CLI registration census (#787)
  • release-assets: pin that an unreadable release body cannot skip DELETE authorization (#967)
<!-- rt:density-verdict --> ### Changelog density — clean - **PASS** — check 7 (sentence length): all sentences ≤ 25 words. Lists, tables and blockquotes are measured too (#632). - **PASS** — check 8 (paren nesting): all paragraphs ≤ depth 2 - **PASS** — check 9 (paragraph length): all paragraphs ≤ 75 words. Lists, tables and blockquotes are measured too (#632). _Advisory mirror of the cut-time gate, computed when this description was written._ _It carries no authority: the cut re-runs these checks against the section as it stands then, and this branch is recreated from `main` on every compose._ <!-- /rt:density-verdict --> ### Added - **workflows**: shared Forgejo parse guard records complete workflow coverage (#841) - **release**: rebuilding an old tag now uses current pipeline logic (#980) ### Changed - **contributor CI**: fork pull requests now receive an explicit workflow-approval notice (#645) - **ac-closure-check**: the undeclared-target refusal now names the negation case explicitly (#989) ### Fixed - **manifest PR auto-merge**: explicitly requests deletion of the generated branch (#633) - **release**: the pipeline checkout no longer dirties the tree being built (#980) - **workflow-parse-check**: toolkit-self cuts resolve the toolkit from `main` before the new tag exists (#995) ### Removed None. ### Deprecated None. ### Upgrade None. ### Internal - **release**: document refactor-of-an-already-documented-change guidance and the non-automated `Refactors:` trailer convention (#492) - **fetch-rt.sh**: comment why a surviving `checksums.txt` is safe on both early-exit paths (#643) - **internal**: keep hidden workflow verbs in the complete CLI registration census (#787) - **release-assets**: pin that an unreadable release body cannot skip DELETE authorization (#967)
chore(release): prepare v0.53.0
All checks were successful
ac-closure-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 5s
ac-closure-check / ac-closure check (pull_request) Successful in 7s
ac-closure-check / check (pull_request) Successful in 0s
changelog-body-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 5s
changelog-body-check / changelog body Cold-Read linter (pull_request) Successful in 6s
changelog-body-check / check (pull_request) Successful in 0s
check-self-bootstrap / check (pull_request) Has been skipped
fragment-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 4s
fragment-check / changelog fragment-kind (pull_request) Successful in 7s
fragment-check / check (pull_request) Successful in 0s
go-ci / lint + build + test (pull_request) Successful in 26s
manifest-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 9s
manifest-check / manifest-vs-tag consistency (pull_request) Successful in 7s
manifest-check / check (pull_request) Successful in 0s
register-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 10s
register-check / register-drift check (pull_request) Successful in 8s
register-check / check (pull_request) Successful in 0s
tests / workflow-schema (pull_request) Successful in 3s
tests / bats (pull_request) Successful in 11s
tests / dated-examples (pull_request) Successful in 4s
tests / shellcheck (pull_request) Successful in 3s
aeee8b7b21
Generated by release-toolkit rt prep.

Tracker: frankenbit/release-toolkit#1
release-bot force-pushed release-prep/rolling from aeee8b7b21
All checks were successful
ac-closure-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 5s
ac-closure-check / ac-closure check (pull_request) Successful in 7s
ac-closure-check / check (pull_request) Successful in 0s
changelog-body-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 5s
changelog-body-check / changelog body Cold-Read linter (pull_request) Successful in 6s
changelog-body-check / check (pull_request) Successful in 0s
check-self-bootstrap / check (pull_request) Has been skipped
fragment-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 4s
fragment-check / changelog fragment-kind (pull_request) Successful in 7s
fragment-check / check (pull_request) Successful in 0s
go-ci / lint + build + test (pull_request) Successful in 26s
manifest-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 9s
manifest-check / manifest-vs-tag consistency (pull_request) Successful in 7s
manifest-check / check (pull_request) Successful in 0s
register-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 10s
register-check / register-drift check (pull_request) Successful in 8s
register-check / check (pull_request) Successful in 0s
tests / workflow-schema (pull_request) Successful in 3s
tests / bats (pull_request) Successful in 11s
tests / dated-examples (pull_request) Successful in 4s
tests / shellcheck (pull_request) Successful in 3s
to 6cd5c44ab4
All checks were successful
ac-closure-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 5s
ac-closure-check / ac-closure check (pull_request) Successful in 6s
ac-closure-check / check (pull_request) Successful in 0s
2026-08-26 23:25:57 +02:00
Compare
release-bot force-pushed release-prep/rolling from 6cd5c44ab4
All checks were successful
ac-closure-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 5s
ac-closure-check / ac-closure check (pull_request) Successful in 6s
ac-closure-check / check (pull_request) Successful in 0s
to c1b2733d95
Some checks failed
check-self-bootstrap / check (pull_request) Has been skipped
ac-closure-check / ac-closure check (pull_request) Successful in 9s
ac-closure-check / check (pull_request) Successful in 0s
manifest-check / manifest-vs-tag consistency (pull_request) Successful in 7s
manifest-check / check (pull_request) Successful in 0s
register-check / register-drift check (pull_request) Successful in 7s
register-check / check (pull_request) Successful in 0s
tests / workflow-schema (pull_request) Successful in 3s
changelog-body-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 30s
tests / bats (pull_request) Successful in 11s
tests / shellcheck (pull_request) Successful in 2s
ac-closure-check / toolkit-self gate (PR's own rt) (pull_request) Failing after 45s
fragment-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 1m3s
manifest-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 2m7s
go-ci / lint + build + test (pull_request) Successful in 2m9s
register-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 2m14s
tests / dated-examples (pull_request) Successful in 2m11s
fragment-check / changelog fragment-kind (pull_request) Successful in 3m24s
fragment-check / check (pull_request) Successful in 0s
changelog-body-check / changelog body Cold-Read linter (pull_request) Successful in 3m39s
changelog-body-check / check (pull_request) Successful in 0s
2026-08-27 00:07:59 +02:00
Compare
release-bot force-pushed release-prep/rolling from c1b2733d95
Some checks failed
check-self-bootstrap / check (pull_request) Has been skipped
ac-closure-check / ac-closure check (pull_request) Successful in 9s
ac-closure-check / check (pull_request) Successful in 0s
manifest-check / manifest-vs-tag consistency (pull_request) Successful in 7s
manifest-check / check (pull_request) Successful in 0s
register-check / register-drift check (pull_request) Successful in 7s
register-check / check (pull_request) Successful in 0s
tests / workflow-schema (pull_request) Successful in 3s
changelog-body-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 30s
tests / bats (pull_request) Successful in 11s
tests / shellcheck (pull_request) Successful in 2s
ac-closure-check / toolkit-self gate (PR's own rt) (pull_request) Failing after 45s
fragment-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 1m3s
manifest-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 2m7s
go-ci / lint + build + test (pull_request) Successful in 2m9s
register-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 2m14s
tests / dated-examples (pull_request) Successful in 2m11s
fragment-check / changelog fragment-kind (pull_request) Successful in 3m24s
fragment-check / check (pull_request) Successful in 0s
changelog-body-check / changelog body Cold-Read linter (pull_request) Successful in 3m39s
changelog-body-check / check (pull_request) Successful in 0s
to ade826bf2e
All checks were successful
check-self-bootstrap / check (pull_request) Has been skipped
changelog-body-check / changelog body Cold-Read linter (pull_request) Successful in 6s
changelog-body-check / check (pull_request) Successful in 0s
fragment-check / changelog fragment-kind (pull_request) Successful in 6s
fragment-check / check (pull_request) Successful in 0s
manifest-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 4s
manifest-check / manifest-vs-tag consistency (pull_request) Successful in 7s
manifest-check / check (pull_request) Successful in 0s
register-check / register-drift check (pull_request) Successful in 7s
register-check / check (pull_request) Successful in 0s
tests / workflow-schema (pull_request) Successful in 3s
tests / dated-examples (pull_request) Successful in 3s
tests / shellcheck (pull_request) Successful in 5s
ac-closure-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 1m2s
changelog-body-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 1m18s
fragment-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 1m32s
register-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 1m46s
go-ci / lint + build + test (pull_request) Successful in 2m7s
tests / bats (pull_request) Successful in 2m12s
ac-closure-check / ac-closure check (pull_request) Successful in 2m57s
ac-closure-check / check (pull_request) Successful in 0s
2026-08-27 00:35:00 +02:00
Compare
release-bot force-pushed release-prep/rolling from ade826bf2e
All checks were successful
check-self-bootstrap / check (pull_request) Has been skipped
changelog-body-check / changelog body Cold-Read linter (pull_request) Successful in 6s
changelog-body-check / check (pull_request) Successful in 0s
fragment-check / changelog fragment-kind (pull_request) Successful in 6s
fragment-check / check (pull_request) Successful in 0s
manifest-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 4s
manifest-check / manifest-vs-tag consistency (pull_request) Successful in 7s
manifest-check / check (pull_request) Successful in 0s
register-check / register-drift check (pull_request) Successful in 7s
register-check / check (pull_request) Successful in 0s
tests / workflow-schema (pull_request) Successful in 3s
tests / dated-examples (pull_request) Successful in 3s
tests / shellcheck (pull_request) Successful in 5s
ac-closure-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 1m2s
changelog-body-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 1m18s
fragment-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 1m32s
register-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 1m46s
go-ci / lint + build + test (pull_request) Successful in 2m7s
tests / bats (pull_request) Successful in 2m12s
ac-closure-check / ac-closure check (pull_request) Successful in 2m57s
ac-closure-check / check (pull_request) Successful in 0s
to b416daf1a4
All checks were successful
check-self-bootstrap / check (pull_request) Has been skipped
changelog-body-check / changelog body Cold-Read linter (pull_request) Successful in 6s
changelog-body-check / check (pull_request) Successful in 0s
manifest-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 4s
register-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 4s
register-check / register-drift check (pull_request) Successful in 9s
register-check / check (pull_request) Successful in 0s
tests / workflow-schema (pull_request) Successful in 3s
fragment-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 37s
fork-pr-approval-notice / explain fork workflow approval (pull_request_target) Successful in 44s
tests / bats (pull_request) Successful in 11s
ac-closure-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 1m1s
changelog-body-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 1m19s
go-ci / lint + build + test (pull_request) Successful in 2m32s
tests / dated-examples (pull_request) Successful in 2m4s
tests / shellcheck (pull_request) Successful in 2m12s
fragment-check / changelog fragment-kind (pull_request) Successful in 3m56s
fragment-check / check (pull_request) Successful in 0s
ac-closure-check / ac-closure check (pull_request) Successful in 4m14s
ac-closure-check / check (pull_request) Successful in 0s
manifest-check / manifest-vs-tag consistency (pull_request) Successful in 4m24s
manifest-check / check (pull_request) Successful in 0s
2026-08-27 00:42:36 +02:00
Compare
release-bot force-pushed release-prep/rolling from b416daf1a4
All checks were successful
check-self-bootstrap / check (pull_request) Has been skipped
changelog-body-check / changelog body Cold-Read linter (pull_request) Successful in 6s
changelog-body-check / check (pull_request) Successful in 0s
manifest-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 4s
register-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 4s
register-check / register-drift check (pull_request) Successful in 9s
register-check / check (pull_request) Successful in 0s
tests / workflow-schema (pull_request) Successful in 3s
fragment-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 37s
fork-pr-approval-notice / explain fork workflow approval (pull_request_target) Successful in 44s
tests / bats (pull_request) Successful in 11s
ac-closure-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 1m1s
changelog-body-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 1m19s
go-ci / lint + build + test (pull_request) Successful in 2m32s
tests / dated-examples (pull_request) Successful in 2m4s
tests / shellcheck (pull_request) Successful in 2m12s
fragment-check / changelog fragment-kind (pull_request) Successful in 3m56s
fragment-check / check (pull_request) Successful in 0s
ac-closure-check / ac-closure check (pull_request) Successful in 4m14s
ac-closure-check / check (pull_request) Successful in 0s
manifest-check / manifest-vs-tag consistency (pull_request) Successful in 4m24s
manifest-check / check (pull_request) Successful in 0s
to ba3a2a0ba7
All checks were successful
fork-pr-approval-notice / explain fork workflow approval (pull_request_target) Successful in 2s
ac-closure-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 4s
changelog-body-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 4s
check-self-bootstrap / check (pull_request) Has been skipped
changelog-body-check / changelog body Cold-Read linter (pull_request) Successful in 6s
changelog-body-check / check (pull_request) Successful in 0s
fragment-check / changelog fragment-kind (pull_request) Successful in 7s
fragment-check / check (pull_request) Successful in 0s
go-ci / lint + build + test (pull_request) Successful in 30s
manifest-check / manifest-vs-tag consistency (pull_request) Successful in 7s
manifest-check / check (pull_request) Successful in 0s
register-check / register-drift check (pull_request) Successful in 7s
register-check / check (pull_request) Successful in 0s
tests / workflow-schema (pull_request) Successful in 3s
tests / bats (pull_request) Successful in 12s
tests / dated-examples (pull_request) Successful in 4s
fragment-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 2m6s
manifest-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 2m7s
register-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 2m11s
tests / shellcheck (pull_request) Successful in 2m10s
ac-closure-check / ac-closure check (pull_request) Successful in 4m29s
ac-closure-check / check (pull_request) Successful in 0s
2026-08-27 00:49:45 +02:00
Compare
release-bot force-pushed release-prep/rolling from ba3a2a0ba7
All checks were successful
fork-pr-approval-notice / explain fork workflow approval (pull_request_target) Successful in 2s
ac-closure-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 4s
changelog-body-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 4s
check-self-bootstrap / check (pull_request) Has been skipped
changelog-body-check / changelog body Cold-Read linter (pull_request) Successful in 6s
changelog-body-check / check (pull_request) Successful in 0s
fragment-check / changelog fragment-kind (pull_request) Successful in 7s
fragment-check / check (pull_request) Successful in 0s
go-ci / lint + build + test (pull_request) Successful in 30s
manifest-check / manifest-vs-tag consistency (pull_request) Successful in 7s
manifest-check / check (pull_request) Successful in 0s
register-check / register-drift check (pull_request) Successful in 7s
register-check / check (pull_request) Successful in 0s
tests / workflow-schema (pull_request) Successful in 3s
tests / bats (pull_request) Successful in 12s
tests / dated-examples (pull_request) Successful in 4s
fragment-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 2m6s
manifest-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 2m7s
register-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 2m11s
tests / shellcheck (pull_request) Successful in 2m10s
ac-closure-check / ac-closure check (pull_request) Successful in 4m29s
ac-closure-check / check (pull_request) Successful in 0s
to f0bc87a751
Some checks failed
fork-pr-approval-notice / explain fork workflow approval (pull_request_target) Successful in 2s
ac-closure-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 4s
changelog-body-check / changelog body Cold-Read linter (pull_request) Successful in 6s
changelog-body-check / check (pull_request) Successful in 0s
check-self-bootstrap / check (pull_request) Has been skipped
fragment-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 4s
go-ci / lint + build + test (pull_request) Successful in 25s
manifest-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 4s
register-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 4s
register-check / register-drift check (pull_request) Successful in 7s
register-check / check (pull_request) Successful in 0s
tests / bats (pull_request) Successful in 12s
tests / shellcheck (pull_request) Successful in 2s
workflow-parse-check / toolkit-self parse guard and controls (pull_request) Successful in 3s
changelog-body-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 1m51s
workflow-parse-check / workflow parse and schema (pull_request) Failing after 30s
workflow-parse-check / check (pull_request) Failing after 0s
tests / workflow-schema (pull_request) Successful in 1m56s
tests / dated-examples (pull_request) Successful in 2m7s
ac-closure-check / ac-closure check (pull_request) Successful in 4m24s
ac-closure-check / check (pull_request) Successful in 0s
fragment-check / changelog fragment-kind (pull_request) Successful in 4m30s
fragment-check / check (pull_request) Successful in 0s
manifest-check / manifest-vs-tag consistency (pull_request) Successful in 4m17s
manifest-check / check (pull_request) Successful in 0s
2026-08-27 01:08:24 +02:00
Compare
release-bot force-pushed release-prep/rolling from f0bc87a751
Some checks failed
fork-pr-approval-notice / explain fork workflow approval (pull_request_target) Successful in 2s
ac-closure-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 4s
changelog-body-check / changelog body Cold-Read linter (pull_request) Successful in 6s
changelog-body-check / check (pull_request) Successful in 0s
check-self-bootstrap / check (pull_request) Has been skipped
fragment-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 4s
go-ci / lint + build + test (pull_request) Successful in 25s
manifest-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 4s
register-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 4s
register-check / register-drift check (pull_request) Successful in 7s
register-check / check (pull_request) Successful in 0s
tests / bats (pull_request) Successful in 12s
tests / shellcheck (pull_request) Successful in 2s
workflow-parse-check / toolkit-self parse guard and controls (pull_request) Successful in 3s
changelog-body-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 1m51s
workflow-parse-check / workflow parse and schema (pull_request) Failing after 30s
workflow-parse-check / check (pull_request) Failing after 0s
tests / workflow-schema (pull_request) Successful in 1m56s
tests / dated-examples (pull_request) Successful in 2m7s
ac-closure-check / ac-closure check (pull_request) Successful in 4m24s
ac-closure-check / check (pull_request) Successful in 0s
fragment-check / changelog fragment-kind (pull_request) Successful in 4m30s
fragment-check / check (pull_request) Successful in 0s
manifest-check / manifest-vs-tag consistency (pull_request) Successful in 4m17s
manifest-check / check (pull_request) Successful in 0s
to a1c383ea6f
Some checks failed
check-self-bootstrap / check (pull_request) Has been skipped
changelog-body-check / changelog body Cold-Read linter (pull_request) Successful in 6s
changelog-body-check / check (pull_request) Successful in 0s
manifest-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 4s
manifest-check / manifest-vs-tag consistency (pull_request) Successful in 7s
manifest-check / check (pull_request) Successful in 0s
register-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 4s
register-check / register-drift check (pull_request) Successful in 7s
register-check / check (pull_request) Successful in 0s
tests / workflow-schema (pull_request) Successful in 3s
ac-closure-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 44s
tests / bats (pull_request) Successful in 12s
tests / shellcheck (pull_request) Successful in 2s
workflow-parse-check / toolkit-self parse guard and controls (pull_request) Successful in 3s
changelog-body-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 1m8s
fragment-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 1m34s
workflow-parse-check / workflow parse and schema (pull_request) Failing after 38s
workflow-parse-check / check (pull_request) Failing after 0s
fork-pr-approval-notice / explain fork workflow approval (pull_request_target) Successful in 1m47s
go-ci / lint + build + test (pull_request) Successful in 2m33s
tests / dated-examples (pull_request) Successful in 2m16s
fragment-check / changelog fragment-kind (pull_request) Successful in 3m10s
fragment-check / check (pull_request) Successful in 0s
ac-closure-check / ac-closure check (pull_request) Successful in 3m42s
ac-closure-check / check (pull_request) Successful in 0s
2026-08-27 01:14:39 +02:00
Compare
surveyor requested changes 2026-08-27 01:15:54 +02:00
Dismissed
surveyor left a comment

REQUEST CHANGES @ f0bc87a751459d37d1fc5bb54b1ce217fb3294cbworkflow-parse-check cannot pass on this PR, and it is not a flake, a stale base, or the cut's content. It is circular by construction, and this is the first cut to meet the new gate.

🔴 The gate resolves to a tag that this PR creates

reusable-workflow-parse-check.yml
  BUILD_BAKED_TOOLKIT_REF: 'v0.53.0'     ← rebaked by `rt prep`, IN THIS DIFF
  checkout release-toolkit @ that ref

server:  GET /tags/v0.53.0  →  404       ← the tag this cut creates
log:     Fetching the repository … git failed exit 1 (×2, then fail)

rt prep rebakes the ref to the version being cut; the tag for that version does not exist until the cut merges. So the gate checks out a ref that cannot exist yet, on every cut PR, forever.

The diff shows the rebake explicitly:

-  BUILD_BAKED_TOOLKIT_REF: 'main'      # release-toolkit-build-ref
+  BUILD_BAKED_TOOLKIT_REF: 'v0.53.0'   # release-toolkit-build-ref

🔴 And the #456 override exists for exactly this and does not fire here

The resolver has a floating-pin escape hatch, commented "keeps toolkit-self floating pins from resolving a transient pre-cut tag (#456)"the precise failure above. I replayed its logic against this branch:

WRAPPER_REF = ''            ← the wrapper uses `uses: ./.forgejo/workflows/…`
                              a LOCAL PATH, so there is no `@ref` to read
override condition          WRAPPER_REF == "main"   → FALSE
resolved ref                v0.53.0   (source=baked)

🔑 The override was written for the CONSUMER shape (frankenbit/release-toolkit/….yml@main) and this repo invokes its own reusable workflow by local path. An empty WRAPPER_REF is the self-hosted case and it falls through to the baked value — which on a cut PR is always the unpublished tag.

Why the other five baked gates pass and this one does not

Six workflows carry v0.53.0 after the rebake. reusable-ac-closure-check.yml is the exception — it is still 'main'. So there is already precedent for a gate that is not rebaked, and whatever excludes that one is the natural place to exclude this one.

📌 Three candidate fixes, and I would not choose for you:

  • Treat an empty WRAPPER_REF as main — extends #456's override to the self-hosted invocation. Smallest change; fixes every future cut.
  • Exclude the parse workflow from rt prep's rebake, as reusable-ac-closure-check.yml already is.
  • Resolve to the PR's own tree for the self-check case, the way the toolkit-self gate jobs already do — they build rt from the PR and are the only reason the other gates are green here.

📌 This is the gate's first encounter with a cut

workflow-parse-check landed at 48d87084 (00:48); #982 was created 23:15 and is the first release cut since. There is no prior green to contradict this — the gate has simply never met a cut PR before, so the interaction was unobservable until now.

⚠️ And it is not #982's defect. The cut is doing exactly what rt prep is supposed to do. The fix belongs in the gate or in the rebake exclusion, not in this branch — though this branch is where it surfaces and will keep surfacing.


Everything else on the cut, checked while I was here: ac-closure-check has since gone green on its own; manifest-check was still pending at my read. I will re-read the artifact — VERSION, fragment consumption, bullet fidelity, stale-version sweep — once the parse question is resolved, since a rebase or a gate change may move the head and I would rather grade the tree that is going to merge.

**REQUEST CHANGES @ `f0bc87a751459d37d1fc5bb54b1ce217fb3294cb`** — `workflow-parse-check` cannot pass on this PR, and **it is not a flake, a stale base, or the cut's content.** It is circular by construction, and this is the first cut to meet the new gate. ## 🔴 The gate resolves to a tag that this PR creates ``` reusable-workflow-parse-check.yml BUILD_BAKED_TOOLKIT_REF: 'v0.53.0' ← rebaked by `rt prep`, IN THIS DIFF checkout release-toolkit @ that ref server: GET /tags/v0.53.0 → 404 ← the tag this cut creates log: Fetching the repository … git failed exit 1 (×2, then fail) ``` **`rt prep` rebakes the ref to the version being cut; the tag for that version does not exist until the cut merges.** So the gate checks out a ref that cannot exist yet, on every cut PR, forever. **The diff shows the rebake explicitly:** ``` - BUILD_BAKED_TOOLKIT_REF: 'main' # release-toolkit-build-ref + BUILD_BAKED_TOOLKIT_REF: 'v0.53.0' # release-toolkit-build-ref ``` ## 🔴 And the `#456` override exists for exactly this and does not fire here The resolver has a floating-pin escape hatch, commented *"keeps toolkit-self floating pins from resolving a transient pre-cut tag (#456)"* — **the precise failure above.** I replayed its logic against this branch: ``` WRAPPER_REF = '' ← the wrapper uses `uses: ./.forgejo/workflows/…` a LOCAL PATH, so there is no `@ref` to read override condition WRAPPER_REF == "main" → FALSE resolved ref v0.53.0 (source=baked) ``` 🔑 **The override was written for the CONSUMER shape (`frankenbit/release-toolkit/….yml@main`) and this repo invokes its own reusable workflow by local path.** An empty `WRAPPER_REF` is the self-hosted case and it falls through to the baked value — which on a cut PR is always the unpublished tag. ## ✅ Why the other five baked gates pass and this one does not Six workflows carry `v0.53.0` after the rebake. **`reusable-ac-closure-check.yml` is the exception — it is still `'main'`.** So there is already precedent for a gate that is *not* rebaked, and whatever excludes that one is the natural place to exclude this one. 📌 **Three candidate fixes, and I would not choose for you:** - **Treat an empty `WRAPPER_REF` as `main`** — extends `#456`'s override to the self-hosted invocation. Smallest change; fixes every future cut. - **Exclude the parse workflow from `rt prep`'s rebake**, as `reusable-ac-closure-check.yml` already is. - **Resolve to the PR's own tree** for the self-check case, the way the `toolkit-self gate` jobs already do — they build `rt` from the PR and are the only reason the other gates are green here. ## 📌 This is the gate's first encounter with a cut `workflow-parse-check` landed at `48d87084` (00:48); `#982` was created 23:15 and is the first release cut since. **There is no prior green to contradict this** — the gate has simply never met a cut PR before, so the interaction was unobservable until now. ⚠️ **And it is not `#982`'s defect.** The cut is doing exactly what `rt prep` is supposed to do. **The fix belongs in the gate or in the rebake exclusion, not in this branch** — though this branch is where it surfaces and will keep surfacing. --- **Everything else on the cut, checked while I was here:** `ac-closure-check` has since gone green on its own; `manifest-check` was still pending at my read. **I will re-read the artifact — VERSION, fragment consumption, bullet fidelity, stale-version sweep — once the parse question is resolved**, since a rebase or a gate change may move the head and I would rather grade the tree that is going to merge.
Owner

📌 Binding correction to 5909, and the finding SURVIVES the regeneration

My review body says @ f0bc87a751…. The row bound to a1c383ea6f713aa73f12a708b4afa62d3baabf2d — the cut regenerated while I was writing it. I omit commit_id on every stamp, so the substrate supplied the current head and the read-back disagreed with what I had read. Read 5909's header as a1c383ea.

Re-verified at the bound head — the defect is unchanged:

BUILD_BAKED_TOOLKIT_REF: 'v0.53.0'        line 52, still rebaked
wrapper invocation        uses: ./.forgejo/workflows/reusable-workflow-parse-check.yml
                          ← local path, so WRAPPER_REF is EMPTY and #456's override cannot fire
resolved ref              v0.53.0    →  GET /tags/v0.53.0 = 404

Every clause of 5909 holds. Nothing in it needs re-deriving.

📌 What actually changed between the two heads is unrelated to the finding:

CHANGELOG.md        +1
scripts/fetch-rt.sh +11

That is #985 landing on main and the cut absorbing it — the comment-only checksums.txt safety note I approved at 5904. A rolling cut regenerates rather than rebases, so it picked the merge up automatically. Correct behaviour, and worth stating so the delta is not read as someone editing the cut.

⚠️ CI is re-running at 25 contexts. I expect workflow-parse-check to red again for the same reason — the regeneration re-baked the same unpublished tag. If it goes green instead, that is a fact I would want to see before believing, because nothing in the resolution path changed.

## 📌 Binding correction to `5909`, and the finding SURVIVES the regeneration My review body says `@ f0bc87a751…`. **The row bound to `a1c383ea6f713aa73f12a708b4afa62d3baabf2d`** — the cut regenerated while I was writing it. I omit `commit_id` on every stamp, so the substrate supplied the current head and the read-back disagreed with what I had read. **Read `5909`'s header as `a1c383ea`.** ✅ **Re-verified at the bound head — the defect is unchanged:** ``` BUILD_BAKED_TOOLKIT_REF: 'v0.53.0' line 52, still rebaked wrapper invocation uses: ./.forgejo/workflows/reusable-workflow-parse-check.yml ← local path, so WRAPPER_REF is EMPTY and #456's override cannot fire resolved ref v0.53.0 → GET /tags/v0.53.0 = 404 ``` **Every clause of `5909` holds. Nothing in it needs re-deriving.** 📌 **What actually changed between the two heads is unrelated to the finding:** ``` CHANGELOG.md +1 scripts/fetch-rt.sh +11 ``` That is **`#985` landing on `main` and the cut absorbing it** — the comment-only `checksums.txt` safety note I approved at `5904`. A rolling cut regenerates rather than rebases, so it picked the merge up automatically. **Correct behaviour, and worth stating so the delta is not read as someone editing the cut.** ⚠️ **CI is re-running at 25 contexts.** I expect `workflow-parse-check` to red again for the same reason — the regeneration re-baked the same unpublished tag. **If it goes green instead, that is a fact I would want to see before believing, because nothing in the resolution path changed.**
release-bot force-pushed release-prep/rolling from a1c383ea6f
Some checks failed
check-self-bootstrap / check (pull_request) Has been skipped
changelog-body-check / changelog body Cold-Read linter (pull_request) Successful in 6s
changelog-body-check / check (pull_request) Successful in 0s
manifest-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 4s
manifest-check / manifest-vs-tag consistency (pull_request) Successful in 7s
manifest-check / check (pull_request) Successful in 0s
register-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 4s
register-check / register-drift check (pull_request) Successful in 7s
register-check / check (pull_request) Successful in 0s
tests / workflow-schema (pull_request) Successful in 3s
ac-closure-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 44s
tests / bats (pull_request) Successful in 12s
tests / shellcheck (pull_request) Successful in 2s
workflow-parse-check / toolkit-self parse guard and controls (pull_request) Successful in 3s
changelog-body-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 1m8s
fragment-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 1m34s
workflow-parse-check / workflow parse and schema (pull_request) Failing after 38s
workflow-parse-check / check (pull_request) Failing after 0s
fork-pr-approval-notice / explain fork workflow approval (pull_request_target) Successful in 1m47s
go-ci / lint + build + test (pull_request) Successful in 2m33s
tests / dated-examples (pull_request) Successful in 2m16s
fragment-check / changelog fragment-kind (pull_request) Successful in 3m10s
fragment-check / check (pull_request) Successful in 0s
ac-closure-check / ac-closure check (pull_request) Successful in 3m42s
ac-closure-check / check (pull_request) Successful in 0s
to fc7bf493a0
Some checks failed
check-self-bootstrap / check (pull_request) Has been skipped
changelog-body-check / changelog body Cold-Read linter (pull_request) Successful in 6s
changelog-body-check / check (pull_request) Successful in 0s
manifest-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 4s
register-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 4s
register-check / register-drift check (pull_request) Successful in 7s
register-check / check (pull_request) Successful in 0s
tests / workflow-schema (pull_request) Successful in 3s
fork-pr-approval-notice / explain fork workflow approval (pull_request_target) Successful in 41s
tests / bats (pull_request) Successful in 12s
tests / shellcheck (pull_request) Successful in 2s
workflow-parse-check / toolkit-self parse guard and controls (pull_request) Successful in 3s
changelog-body-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 1m1s
ac-closure-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 1m16s
workflow-parse-check / workflow parse and schema (pull_request) Failing after 32s
workflow-parse-check / check (pull_request) Failing after 0s
fragment-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 1m48s
go-ci / lint + build + test (pull_request) Successful in 2m48s
tests / dated-examples (pull_request) Successful in 2m22s
ac-closure-check / ac-closure check (pull_request) Successful in 3m45s
ac-closure-check / check (pull_request) Successful in 0s
fragment-check / changelog fragment-kind (pull_request) Successful in 3m56s
fragment-check / check (pull_request) Successful in 0s
manifest-check / manifest-vs-tag consistency (pull_request) Successful in 4m9s
manifest-check / check (pull_request) Successful in 0s
2026-08-27 01:18:39 +02:00
Compare
release-bot force-pushed release-prep/rolling from fc7bf493a0
Some checks failed
check-self-bootstrap / check (pull_request) Has been skipped
changelog-body-check / changelog body Cold-Read linter (pull_request) Successful in 6s
changelog-body-check / check (pull_request) Successful in 0s
manifest-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 4s
register-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 4s
register-check / register-drift check (pull_request) Successful in 7s
register-check / check (pull_request) Successful in 0s
tests / workflow-schema (pull_request) Successful in 3s
fork-pr-approval-notice / explain fork workflow approval (pull_request_target) Successful in 41s
tests / bats (pull_request) Successful in 12s
tests / shellcheck (pull_request) Successful in 2s
workflow-parse-check / toolkit-self parse guard and controls (pull_request) Successful in 3s
changelog-body-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 1m1s
ac-closure-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 1m16s
workflow-parse-check / workflow parse and schema (pull_request) Failing after 32s
workflow-parse-check / check (pull_request) Failing after 0s
fragment-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 1m48s
go-ci / lint + build + test (pull_request) Successful in 2m48s
tests / dated-examples (pull_request) Successful in 2m22s
ac-closure-check / ac-closure check (pull_request) Successful in 3m45s
ac-closure-check / check (pull_request) Successful in 0s
fragment-check / changelog fragment-kind (pull_request) Successful in 3m56s
fragment-check / check (pull_request) Successful in 0s
manifest-check / manifest-vs-tag consistency (pull_request) Successful in 4m9s
manifest-check / check (pull_request) Successful in 0s
to d1d487fdd5
Some checks failed
check-self-bootstrap / check (pull_request) Has been skipped
ac-closure-check / check (pull_request) Has been cancelled
fragment-check / changelog fragment-kind (pull_request) Successful in 7s
fragment-check / check (pull_request) Successful in 0s
manifest-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 4s
register-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 4s
register-check / register-drift check (pull_request) Successful in 7s
register-check / check (pull_request) Successful in 0s
tests / workflow-schema (pull_request) Successful in 5s
fork-pr-approval-notice / explain fork workflow approval (pull_request_target) Failing after 35s
tests / bats (pull_request) Successful in 14s
workflow-parse-check / toolkit-self parse guard and controls (pull_request) Successful in 44s
tests / shellcheck (pull_request) Successful in 1m15s
tests / dated-examples (pull_request) Successful in 1m35s
workflow-parse-check / workflow parse and schema (pull_request) Failing after 2m13s
workflow-parse-check / check (pull_request) Failing after 0s
manifest-check / manifest-vs-tag consistency (pull_request) Failing after 13m17s
go-ci / lint + build + test (pull_request) Failing after 13m27s
fragment-check / toolkit-self gate (PR's own rt) (pull_request) Failing after 13m29s
changelog-body-check / changelog body Cold-Read linter (pull_request) Failing after 13m29s
changelog-body-check / toolkit-self gate (PR's own rt) (pull_request) Failing after 13m29s
ac-closure-check / ac-closure check (pull_request) Failing after 13m29s
ac-closure-check / toolkit-self gate (PR's own rt) (pull_request) Failing after 13m29s
changelog-body-check / check (pull_request) Has been cancelled
manifest-check / check (pull_request) Has been cancelled
2026-08-27 08:22:55 +02:00
Compare
release-bot force-pushed release-prep/rolling from d1d487fdd5
Some checks failed
check-self-bootstrap / check (pull_request) Has been skipped
ac-closure-check / check (pull_request) Has been cancelled
fragment-check / changelog fragment-kind (pull_request) Successful in 7s
fragment-check / check (pull_request) Successful in 0s
manifest-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 4s
register-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 4s
register-check / register-drift check (pull_request) Successful in 7s
register-check / check (pull_request) Successful in 0s
tests / workflow-schema (pull_request) Successful in 5s
fork-pr-approval-notice / explain fork workflow approval (pull_request_target) Failing after 35s
tests / bats (pull_request) Successful in 14s
workflow-parse-check / toolkit-self parse guard and controls (pull_request) Successful in 44s
tests / shellcheck (pull_request) Successful in 1m15s
tests / dated-examples (pull_request) Successful in 1m35s
workflow-parse-check / workflow parse and schema (pull_request) Failing after 2m13s
workflow-parse-check / check (pull_request) Failing after 0s
manifest-check / manifest-vs-tag consistency (pull_request) Failing after 13m17s
go-ci / lint + build + test (pull_request) Failing after 13m27s
fragment-check / toolkit-self gate (PR's own rt) (pull_request) Failing after 13m29s
changelog-body-check / changelog body Cold-Read linter (pull_request) Failing after 13m29s
changelog-body-check / toolkit-self gate (PR's own rt) (pull_request) Failing after 13m29s
ac-closure-check / ac-closure check (pull_request) Failing after 13m29s
ac-closure-check / toolkit-self gate (PR's own rt) (pull_request) Failing after 13m29s
changelog-body-check / check (pull_request) Has been cancelled
manifest-check / check (pull_request) Has been cancelled
to 8323fa58ba
All checks were successful
tests / bats (pull_request) Successful in 13s
tests / shellcheck (pull_request) Successful in 4s
workflow-parse-check / toolkit-self parse guard and controls (pull_request) Successful in 4s
ac-closure-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 1m34s
workflow-parse-check / workflow parse and schema (pull_request) Successful in 5s
workflow-parse-check / check (pull_request) Successful in 0s
fragment-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 1m49s
changelog-body-check / changelog body Cold-Read linter (pull_request) Successful in 2m51s
changelog-body-check / check (pull_request) Successful in 0s
go-ci / lint + build + test (pull_request) Successful in 2m39s
ac-closure-check / ac-closure check (pull_request) Successful in 3m28s
ac-closure-check / check (pull_request) Successful in 0s
tests / dated-examples (pull_request) Successful in 2m19s
fragment-check / changelog fragment-kind (pull_request) Successful in 4m7s
fragment-check / check (pull_request) Successful in 0s
register-check / register-drift check (pull_request) Successful in 3m28s
register-check / check (pull_request) Successful in 0s
check-self-bootstrap / check (push) Successful in 31s
tests / workflow-schema (push) Successful in 45s
tests / bats (push) Successful in 1m15s
tests / dated-examples (push) Successful in 1m19s
tests / shellcheck (push) Successful in 1m54s
go-ci / lint + build + test (push) Successful in 2m7s
release-toolkit/manifest-postcondition manifest-postcondition verdict=landed
release / decide + act (push) Successful in 2m57s
release / release (push) Successful in 0s
goreleaser / build + publish rt asset (push) Successful in 1m8s
goreleaser / publish the rt image + bake its digest (push) Successful in 15s
goreleaser / adopters can pull the published image (push) Successful in 5s
goreleaser / adopters can fetch the published asset (push) Successful in 33s
2026-08-27 09:03:13 +02:00
Compare
surveyor approved these changes 2026-08-27 09:08:53 +02:00
surveyor left a comment

APPROVE @ 8323fa58bac32257d20f760f0ebcc198490ef841 — supersedes my REQUEST_CHANGES on a1c383ea.

CI: 25/25 contexts green at this head, read latest-per-context. The #995 circularity that blocked this cut is not live — verified per workflow rather than assumed from the fix landing.


The four things I owed on the artifact

VERSION            0.52.0 → 0.53.0
FRAGMENTS          11 consumed; only .keep and .template.md remain (neither is a fragment)
BULLET FIDELITY    11/11 present in CHANGELOG, 0 missing
                   CONTROL: an absent string returns no match, so the needle can say no
STALE-VERSION      0.52.0 survives in exactly two places, both correct:
                     .release-toolkit-manifest.json  last_released_version / _tag  ← v0.53.0 is not released yet
                     tests/workflows.bats            deliberate consumer-pin FIXTURES

📌 My first bullet-fidelity pass reported 8 of 11 missing. That was my needle — fragments begin - **, which grep read as options. grep -F -e gives 11/11. Recording it because a false "3 bullets landed, 8 didn't" on a release cut is the kind of finding that gets acted on.

THE CIRCULARITY IS CLOSED — but by THREE different routes, not one

#996 changed reusable-workflow-parse-check.yml and workflows.bats; it did not touch ref resolution elsewhere. So I resolved each marker-bearing workflow individually:

workflow-parse-check     baked v0.53.0  LOCAL      → main   via #996's new empty-ref branch
ac-closure-check         baked main     LOCAL      → main   because it was never repinned
changelog-body-check     baked v0.53.0  QUALIFIED  → main   #456 override fires (wrapper @main)
fragment-check           baked v0.53.0  QUALIFIED  → main
manifest-check           baked v0.53.0  QUALIFIED  → main
register-check           baked v0.53.0  QUALIFIED  → main
release                  baked v0.53.0  QUALIFIED  → main

All seven resolve to main, so no gate checks out a tag that does not exist. I nearly filed the opposite: seeing v0.53.0 baked in files whose #456 override cannot fire on local invocation reads as the #995 bug still live. It is not — those files are invoked FULLY-QUALIFIED @main, so their override does fire.

⚠️ LATENT — rt prep REPINNED 6 OF 7 MARKER-BEARING FILES AND SILENTLY SKIPPED ONE

repinned to v0.53.0 by this cut:  changelog-body · changelog-fragment · manifest
                                  register · release · workflow-parse       (6)
carries the marker, NOT repinned: reusable-ac-closure-check.yml             (1)

All seven carry # release-toolkit-build-ref (auto-updated by rt prep / rt repin). Six moved; one did not.

🔴 And it is the one file where that matters most:

reusable-ac-closure-check.yml   invoked LOCALLY  ·  has NO #996 empty-ref branch  ·  baked 'main'

It is correct today only because it was skipped. If rt prep ever does repin it, the result is REF=v0.53.0, a local invocation so WRAPPER_REF is empty, no #456 override, and no #996 branch to catch it — the exact #995 failure, in the one file that lacks the fix for it.

The durable repair is to give it the same empty-ref branch workflow-parse-check now has, so it is correct whether prep repins it or not. Then the skip becomes a cosmetic inconsistency rather than the thing holding the gate up. Requesting a tracker rather than widening this cut.

📌 #996's branch FATALs when the wrapper is neither a local call nor a recognised pin — a refusal rather than a silent fallthrough. That is the right shape and the reason copying it to the sibling is cheap.


Nothing blocks the release. The artifact is faithful, the fragments are fully consumed, the version sweep is clean, and every gate resolves to a ref that exists.

**APPROVE @ `8323fa58bac32257d20f760f0ebcc198490ef841`** — supersedes my `REQUEST_CHANGES` on `a1c383ea`. **CI: 25/25 contexts green** at this head, read latest-per-context. **The `#995` circularity that blocked this cut is not live** — verified per workflow rather than assumed from the fix landing. --- ## ✅ The four things I owed on the artifact ``` VERSION 0.52.0 → 0.53.0 FRAGMENTS 11 consumed; only .keep and .template.md remain (neither is a fragment) BULLET FIDELITY 11/11 present in CHANGELOG, 0 missing CONTROL: an absent string returns no match, so the needle can say no STALE-VERSION 0.52.0 survives in exactly two places, both correct: .release-toolkit-manifest.json last_released_version / _tag ← v0.53.0 is not released yet tests/workflows.bats deliberate consumer-pin FIXTURES ``` 📌 *My first bullet-fidelity pass reported 8 of 11 missing. That was my needle — fragments begin `- **`, which `grep` read as options. `grep -F -e` gives 11/11. Recording it because a false "3 bullets landed, 8 didn't" on a release cut is the kind of finding that gets acted on.* ## ✅ THE CIRCULARITY IS CLOSED — but by THREE different routes, not one `#996` changed `reusable-workflow-parse-check.yml` and `workflows.bats`; it did **not** touch ref resolution elsewhere. So I resolved each marker-bearing workflow individually: ``` workflow-parse-check baked v0.53.0 LOCAL → main via #996's new empty-ref branch ac-closure-check baked main LOCAL → main because it was never repinned changelog-body-check baked v0.53.0 QUALIFIED → main #456 override fires (wrapper @main) fragment-check baked v0.53.0 QUALIFIED → main manifest-check baked v0.53.0 QUALIFIED → main register-check baked v0.53.0 QUALIFIED → main release baked v0.53.0 QUALIFIED → main ``` **All seven resolve to `main`, so no gate checks out a tag that does not exist.** *I nearly filed the opposite: seeing `v0.53.0` baked in files whose `#456` override cannot fire on local invocation reads as the `#995` bug still live. It is not — those files are invoked FULLY-QUALIFIED `@main`, so their override does fire.* ## ⚠️ LATENT — `rt prep` REPINNED 6 OF 7 MARKER-BEARING FILES AND SILENTLY SKIPPED ONE ``` repinned to v0.53.0 by this cut: changelog-body · changelog-fragment · manifest register · release · workflow-parse (6) carries the marker, NOT repinned: reusable-ac-closure-check.yml (1) ``` **All seven carry `# release-toolkit-build-ref (auto-updated by rt prep / rt repin)`.** Six moved; one did not. 🔴 **And it is the one file where that matters most:** ``` reusable-ac-closure-check.yml invoked LOCALLY · has NO #996 empty-ref branch · baked 'main' ``` **It is correct today only because it was skipped.** If `rt prep` ever does repin it, the result is `REF=v0.53.0`, a local invocation so `WRAPPER_REF` is empty, no `#456` override, and no `#996` branch to catch it — **the exact `#995` failure, in the one file that lacks the fix for it.** ✅ **The durable repair is to give it the same empty-ref branch `workflow-parse-check` now has**, so it is correct whether prep repins it or not. **Then the skip becomes a cosmetic inconsistency rather than the thing holding the gate up.** Requesting a tracker rather than widening this cut. 📌 *`#996`'s branch FATALs when the wrapper is neither a local call nor a recognised pin — a refusal rather than a silent fallthrough. That is the right shape and the reason copying it to the sibling is cheap.* --- **Nothing blocks the release.** The artifact is faithful, the fragments are fully consumed, the version sweep is clean, and every gate resolves to a ref that exists.
bosun merged commit 8323fa58ba into main 2026-08-27 09:12:42 +02:00
bosun deleted branch release-prep/rolling 2026-08-27 09:12:42 +02:00
Sign in to join this conversation.
No description provided.