chore(release): v0.62.3 #1429

Merged
bosun merged 1 commit from release-prep/rolling into main 2026-09-07 09:26:47 +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

None.

Changed

None.

Fixed

None.

Removed

None.

Deprecated

None.

Upgrade

None.

Internal

  • internal: an arm holds the README Status rule (#1401).
  • docs: the integration guide answers its hardest questions where a reader can reach them (#1407)
  • internal: the integration guide names no ungraded version (#1415).
<!-- 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 None. ### Changed None. ### Fixed None. ### Removed None. ### Deprecated None. ### Upgrade None. ### Internal - **internal**: an arm holds the README Status rule (#1401). - **docs**: the integration guide answers its hardest questions where a reader can reach them (#1407) - **internal**: the integration guide names no ungraded version (#1415).
chore(release): prepare v0.62.3
All checks were successful
check-self-bootstrap / check (pull_request) Has been skipped
fragment-check / changelog fragment-kind (pull_request) Successful in 7s
fragment-check / check (pull_request) Successful in 0s
go-ci / record reviewed vs landed commit (pull_request) Has been skipped
fork-pr-approval-notice / explain fork workflow approval (pull_request_target) Successful in 18s
gitea-twin-check / check (pull_request) Successful in 23s
base-divergence-check / check (pull_request) Successful in 26s
go-ci / lint + build + test (pull_request) Successful in 31s
changelog-body-check / changelog body Cold-Read linter (pull_request) Successful in 44s
ac-closure-check / ac-closure check (pull_request) Successful in 45s
tests / dated-examples (pull_request) Successful in 4s
changelog-body-check / check (pull_request) Successful in 0s
ac-closure-check / check (pull_request) Successful in 0s
prep-order-check / check (pull_request) Successful in 32s
readme-pin-check / check (pull_request) Successful in 31s
toolkit-self-gates / toolkit-self gates (PR's own rt) (pull_request) Successful in 8s
tests / workflow-schema (pull_request) Successful in 29s
go-ci / page landing-tree failure (pull_request) Has been skipped
manifest-check / manifest-vs-tag consistency (pull_request) Successful in 48s
manifest-check / check (pull_request) Successful in 0s
tests / shellcheck (pull_request) Successful in 22s
tests / contract-paths (pull_request) Successful in 26s
register-check / register-drift check (pull_request) Successful in 46s
register-check / check (pull_request) Successful in 0s
workflow-parse-check / toolkit-self parse guard and controls (pull_request) Successful in 23s
workflow-parse-check / workflow parse and schema (pull_request) Successful in 26s
workflow-parse-check / check (pull_request) Successful in 0s
tests / bats (pull_request) Successful in 1m17s
a015489248
Generated by release-toolkit rt prep.

Tracker: frankenbit/release-toolkit#1
release-bot force-pushed release-prep/rolling from a015489248
All checks were successful
check-self-bootstrap / check (pull_request) Has been skipped
fragment-check / changelog fragment-kind (pull_request) Successful in 7s
fragment-check / check (pull_request) Successful in 0s
go-ci / record reviewed vs landed commit (pull_request) Has been skipped
fork-pr-approval-notice / explain fork workflow approval (pull_request_target) Successful in 18s
gitea-twin-check / check (pull_request) Successful in 23s
base-divergence-check / check (pull_request) Successful in 26s
go-ci / lint + build + test (pull_request) Successful in 31s
changelog-body-check / changelog body Cold-Read linter (pull_request) Successful in 44s
ac-closure-check / ac-closure check (pull_request) Successful in 45s
tests / dated-examples (pull_request) Successful in 4s
changelog-body-check / check (pull_request) Successful in 0s
ac-closure-check / check (pull_request) Successful in 0s
prep-order-check / check (pull_request) Successful in 32s
readme-pin-check / check (pull_request) Successful in 31s
toolkit-self-gates / toolkit-self gates (PR's own rt) (pull_request) Successful in 8s
tests / workflow-schema (pull_request) Successful in 29s
go-ci / page landing-tree failure (pull_request) Has been skipped
manifest-check / manifest-vs-tag consistency (pull_request) Successful in 48s
manifest-check / check (pull_request) Successful in 0s
tests / shellcheck (pull_request) Successful in 22s
tests / contract-paths (pull_request) Successful in 26s
register-check / register-drift check (pull_request) Successful in 46s
register-check / check (pull_request) Successful in 0s
workflow-parse-check / toolkit-self parse guard and controls (pull_request) Successful in 23s
workflow-parse-check / workflow parse and schema (pull_request) Successful in 26s
workflow-parse-check / check (pull_request) Successful in 0s
tests / bats (pull_request) Successful in 1m17s
to d4917b7222
Some checks failed
register-check / check (pull_request) Successful in 0s
go-ci / page landing-tree failure (pull_request) Has been skipped
toolkit-self-gates / toolkit-self gates (PR's own rt) (pull_request) Successful in 51s
tests / bats (pull_request) Successful in 1m18s
release / decide + act (push) Successful in 9s
release / release (push) Successful in 0s
tests / dated-examples (push) Successful in 4s
go-ci / record reviewed vs landed commit (push) Successful in 18s
tests / contract-paths (push) Successful in 4s
release / fire-cut (push) Successful in 1s
gitea-twin-check / check (push) Successful in 24s
prepared-uncut-check / toolkit-self prepared-uncut controls (push) Successful in 24s
check-self-bootstrap / check (push) Successful in 25s
tests / workflow-schema (push) Successful in 26s
release-toolkit/manifest-postcondition manifest-postcondition verdict=landed
go-ci / page landing-tree failure (push) Has been cancelled
prepared-uncut-check / check (push) Has been cancelled
go-ci / lint + build + test (push) Has been cancelled
prepared-uncut-check / prepared-but-uncut release (push) Has been cancelled
tests / shellcheck (push) Successful in 23s
mirror-drift-check / drift release(s) carry assets here and not on the mirror
mirror-drift-check / could-not-grade release(s) carry assets here and not on the mirror
build-ref-check / check (push) Successful in 25s
mirror drift check / check (release) Failing after 34s
tests / bats (push) Successful in 1m17s
goreleaser / build + publish rt asset (push) Successful in 1m16s
goreleaser / the release actually holds its assets (push) Successful in 16s
goreleaser / publish the rt image + bake its digest (push) Successful in 28s
goreleaser / adopters can pull the published image (push) Successful in 5s
goreleaser / adopters can fetch the published asset (push) Successful in 39s
2026-09-07 09:13:50 +02:00
Compare
surveyor approved these changes 2026-09-07 09:24:21 +02:00
surveyor left a comment

APPROVED at head d4917b7222305f8c519ab2e92cf4fb67813e969b. Routine cut, verified rather than pattern-matched.

The cut is current, which is the check a rolling branch actually needs

merge-base(origin/main, cut)  cbf70184   == origin/main   -> the cut is NOT behind
cbf70184 is an ancestor of the cut                        -> #1430 IS included
VERSION   0.62.2 -> 0.62.3

Fragments consumed, and the remainder is infrastructure only

consumed (deleted)  1401-an-arm-holds-the-status-rule · 1407-guide-start-here
                    1415-the-guide-names-no-ungraded-version
left in changelog.d/  .keep · .template.md      <- zero real fragments stranded
CHANGELOG            3 Internal entries, one per consumed fragment

The build-ref bump, swept UNFILTERED over the resulting tree

This is an absence claim — no marker left at main — so it is graded over the whole state, not over the diff:

18 markers found (9 in .forgejo/workflows, 9 in .gitea/workflows — symmetric)
distinct values:  18 x 'v0.62.3'      occurrences of 'main': 0
VERSION agrees: 0.62.3

Positive control, run against origin/main where the value is known to be unbumped: 18 x 'main'. The sweep can see the thing whose absence I am claiming, so the zero is a measurement rather than a silent miss.

Required set by complement

enable_status_check=true · required 23 · 168 status rows paginated to an EMPTY page (p=5)
28 distinct contexts · REQUIRED NOT GREEN: 0 · non-success rows of any kind: 0
gitea-twin-check / check (pull_request)   success

🔑 A wrong instrument I ran and am reporting rather than burying

I byte-compared the 11 shared .forgejo/.gitea filenames and got identical: 0, differing: 11. ⚠️ That is the EXPECTED state, not a finding — a .gitea twin references .gitea paths by construction, so byte-identity is the wrong invariant and my check would have manufactured an accusation out of correct work.

📌 gitea-twin-check is the gate that grades the real invariant, it is in the required set, and it is green. This is /srv/CLAUDE.md's a check you wrote yourself when a gate already grades that property row, and the tell it names fired exactly as written: I was about to compare artefacts that are GENERATED. Invoke the gate; do not re-derive its spec from its output.

⚠️ One nit, and it is mine

- **internal**: an arm holds the README Status rule (#1401).          <- period
- **docs**: … where a reader can reach them (#1407)                   <- NO period
- **internal**: the integration guide names no ungraded version (#1415).  <- period

The generator copied the fragment faithfully; the fragment 1407-guide-start-here.internal.md has no trailing period. 📌 That fragment came in on #1430, which I approved ninety minutes ago — so this reached the release CHANGELOG through my own stamp. Not blocking and not worth a re-cut: changelog-body-check is green, so it violates no rule, and a released CHANGELOG line is not worth re-spinning a cut over. Recorded so it is fixed at the source rather than in the generated file.


📌 For whoever merges — the one thing this stamp cannot cover

release-prep/rolling is force-pushed on every base move, which dismisses stamps. d4917b72 is current as I write. 🔴 Compare this stamp's commit_id against the head AT THE MOMENT YOU MERGEstale will not tell you, because a pure rebase onto a base that does not touch these paths leaves stale=false while the head moves underneath. ⚠️ And pass delete_branch_after_merge:false — this branch must survive.

**APPROVED at head `d4917b7222305f8c519ab2e92cf4fb67813e969b`.** Routine cut, verified rather than pattern-matched. ## The cut is current, which is the check a rolling branch actually needs ``` merge-base(origin/main, cut) cbf70184 == origin/main -> the cut is NOT behind cbf70184 is an ancestor of the cut -> #1430 IS included VERSION 0.62.2 -> 0.62.3 ``` ## Fragments consumed, and the remainder is infrastructure only ``` consumed (deleted) 1401-an-arm-holds-the-status-rule · 1407-guide-start-here 1415-the-guide-names-no-ungraded-version left in changelog.d/ .keep · .template.md <- zero real fragments stranded CHANGELOG 3 Internal entries, one per consumed fragment ``` ## The build-ref bump, swept UNFILTERED over the resulting tree **This is an absence claim — *no marker left at `main`* — so it is graded over the whole state, not over the diff:** ``` 18 markers found (9 in .forgejo/workflows, 9 in .gitea/workflows — symmetric) distinct values: 18 x 'v0.62.3' occurrences of 'main': 0 VERSION agrees: 0.62.3 ``` ✅ **Positive control, run against `origin/main` where the value is known to be unbumped:** `18 x 'main'`. **The sweep can see the thing whose absence I am claiming**, so the zero is a measurement rather than a silent miss. ## Required set by complement ``` enable_status_check=true · required 23 · 168 status rows paginated to an EMPTY page (p=5) 28 distinct contexts · REQUIRED NOT GREEN: 0 · non-success rows of any kind: 0 gitea-twin-check / check (pull_request) success ``` ## 🔑 A wrong instrument I ran and am reporting rather than burying **I byte-compared the 11 shared `.forgejo`/`.gitea` filenames and got `identical: 0, differing: 11`.** ⚠️ **That is the EXPECTED state, not a finding** — a `.gitea` twin references `.gitea` paths by construction, so byte-identity is the wrong invariant and my check would have manufactured an accusation out of correct work. 📌 **`gitea-twin-check` is the gate that grades the real invariant, it is in the required set, and it is green.** **This is `/srv/CLAUDE.md`'s *a check you wrote yourself when a gate already grades that property* row, and the tell it names fired exactly as written: I was about to compare artefacts that are GENERATED.** *Invoke the gate; do not re-derive its spec from its output.* ## ⚠️ One nit, and it is mine ``` - **internal**: an arm holds the README Status rule (#1401). <- period - **docs**: … where a reader can reach them (#1407) <- NO period - **internal**: the integration guide names no ungraded version (#1415). <- period ``` **The generator copied the fragment faithfully; the fragment `1407-guide-start-here.internal.md` has no trailing period.** 📌 **That fragment came in on `#1430`, which I approved ninety minutes ago — so this reached the release CHANGELOG through my own stamp.** ✅ **Not blocking and not worth a re-cut: `changelog-body-check` is green, so it violates no rule, and a released CHANGELOG line is not worth re-spinning a cut over.** *Recorded so it is fixed at the source rather than in the generated file.* --- ## 📌 For whoever merges — the one thing this stamp cannot cover **`release-prep/rolling` is force-pushed on every base move, which dismisses stamps.** *`d4917b72` is current as I write.* 🔴 **Compare this stamp's `commit_id` against the head AT THE MOMENT YOU MERGE** — `stale` will not tell you, because a pure rebase onto a base that does not touch these paths leaves `stale=false` while the head moves underneath. ⚠️ **And pass `delete_branch_after_merge:false` — this branch must survive.**
bosun merged commit d4917b7222 into main 2026-09-07 09:26:47 +02:00

Landing identity record

  • PR: #1429
  • landed commit (server merge_commit_sha): d4917b7222305f8c519ab2e92cf4fb67813e969b
  • effective official approval(s):
    • @surveyor, review #6905, stamped commit: d4917b7222305f8c519ab2e92cf4fb67813e969b
  • replay comparison: no identity change (stamped SHA equals landed SHA)

This is a post-merge identity record. It does not retroactively review the landed object; it records whether the server landed the object that an official approval named.

<!-- release-toolkit:landing-review-record-v1 landed=d4917b7222305f8c519ab2e92cf4fb67813e969b --> ## Landing identity record - PR: #1429 - landed commit (server merge_commit_sha): `d4917b7222305f8c519ab2e92cf4fb67813e969b` - effective official approval(s): - @surveyor, review #6905, stamped commit: `d4917b7222305f8c519ab2e92cf4fb67813e969b` - replay comparison: no identity change (stamped SHA equals landed SHA) This is a post-merge identity record. It does not retroactively review the landed object; it records whether the server landed the object that an official approval named.
Sign in to join this conversation.
No description provided.