• v0.48.2 6537063d0b

    v0.48.2 Stable

    release-bot released this 2026-08-26 17:39:37 +02:00 | 588 commits to main since this release

    Added

    None.

    Changed

    None.

    Fixed

    • consumer-wrapper discovery: an ungradeable workflow file no longer reads as absent (#843)
    • fragment-check: refuse fragments without the documented summary header (#931)
    • publish-image: a failed container cleanup no longer aborts the bake (#933)
    • decide/manifest-check: a tag carrying #794's image-digest pin no longer reads as manifest anchor divergence. The bake force-moves the tag one commit above last_released_sha, which wedged rt decide at the start of every cut. Both commands now recognise that exact shape and accept it; any other divergence still fails loud (#943)

    Removed

    None.

    Deprecated

    None.

    Upgrade

    None.

    Internal

    • wrappers: a code comment now cites the full path it names (#843)
    • dated-examples-check: the control now has a caller (#926)
    Downloads
  • v0.48.1 7cf7451e16

    v0.48.1 Stable

    release-bot released this 2026-08-26 16:37:32 +02:00 | 602 commits to main since this release

    Added

    None.

    Changed

    None.

    Fixed

    • publish-image: the bake step takes rt from the image it just pushed (#933)

    Removed

    None.

    Deprecated

    None.

    Upgrade

    None.

    Internal

    • tests: arm the goreleaser version guard, which shipped without any (#925)
    Downloads
  • v0.48.0 50ef41aa06

    v0.48.0
    Some checks failed
    changelog-body-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
    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 / 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 9s
    register-check / check (pull_request) Successful in 0s
    tests / workflow-schema (pull_request) Successful in 3s
    tests / bats (pull_request) Successful in 9s
    tests / shellcheck (pull_request) Successful in 3s
    check-self-bootstrap / check (push) Successful in 5s
    go-ci / lint + build + test (push) Successful in 26s
    release-toolkit/manifest-postcondition manifest-postcondition verdict=landed
    release / decide + act (push) Successful in 8s
    release / release (push) Successful in 0s
    tests / workflow-schema (push) Successful in 3s
    tests / bats (push) Successful in 9s
    tests / shellcheck (push) Successful in 3s
    goreleaser / build + publish rt asset (push) Successful in 8s
    goreleaser / publish the rt image + bake its digest (push) Failing after 16s
    goreleaser / adopters can pull the published image (push) Has been skipped
    goreleaser / adopters can fetch the published asset (push) Has been skipped
    Stable

    release-bot released this 2026-08-26 16:10:16 +02:00 | 609 commits to main since this release

    Added

    • rt ac-closure-check: refuse a merge whose Closes #N would close an issue with an unfinished AC (#848)

    Changed

    • release notes: now require a changelog fragment for adopter-facing prose; fragment-less conventional commits still drive version bumps without leaking their subjects into notes (#717)
    • fragment-check: identifies dense fragments changed by the current PR versus pre-existing fragments so adoption failures route to the right file (#735)
    • manifest-postcondition: writes a durable Forgejo commit status carrying its exact verdict, including refusal outcomes, so post-cut evidence survives log retention (#747)
    • changelog: fragments contribute their summary line, not their whole body (#854)
    • style docs: the worked examples now state when they were written (#912)
    • release: the goreleaser install step now skips when the runner image already carries the pinned version, and installs otherwise. Comparing the version rather than mere presence keeps all three states self-healing: nothing baked installs as before, a matching bake skips, and a stale bake is corrected. Removes a ~100-module download and compile from the release critical path when the image provides it (#918)

    Fixed

    • decide: preserve changelog read and parse refusals instead of treating them as an empty latest-version result (#697)
    • fragment-check: pin which renderer the density gate calls (#854)
    • contract-paths-check on a shallow clone: provenance is now could-not-grade instead of a false failure (#903)
    • post-cut precheck: the idempotent-skip decision now logs the inputs it was made from (#914)

    Removed

    None.

    Deprecated

    None.

    Upgrade

    None.

    Security

    • PR-CI input handling: keep caller-supplied paths out of shell source (#654)

    Internal

    • C5 contract docs: name the three toolkit-self verbs the C5 table deliberately omits (#774)
    • live negative controls for three gates: changelog-body-check, manifest-check and register-check now each prove they can go RED (#890)
    Downloads
  • v0.47.0 239b5063c9

    v0.47.0
    Some checks failed
    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 6s
    fragment-check / check (pull_request) Successful in 0s
    go-ci / lint + build + test (pull_request) Successful in 26s
    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 8s
    tests / shellcheck (pull_request) Successful in 2s
    check-self-bootstrap / check (push) Successful in 5s
    go-ci / lint + build + test (push) Successful in 25s
    release / decide + act (push) Successful in 10s
    release / release (push) Successful in 0s
    tests / workflow-schema (push) Successful in 3s
    tests / bats (push) Successful in 8s
    tests / shellcheck (push) Successful in 2s
    goreleaser / build + publish rt asset (push) Successful in 1m24s
    goreleaser / publish the rt image + bake its digest (push) Failing after 20s
    goreleaser / adopters can pull the published image (push) Has been skipped
    goreleaser / adopters can fetch the published asset (push) Has been skipped
    Stable

    release-bot released this 2026-08-26 13:55:04 +02:00 | 647 commits to main since this release

    Added

    None.

    Changed

    • contract source-of-record split: byte-authority and provenance are now separate fields, and both are checkable (#849)

      The single field carried two different claims, so a naive check reddened on six correct sites. Source of record now lists only paths that must resolve today. Ported from lists historical paths, checked for having ever existed. scripts/contract-paths-check.sh grades both halves and classifies globs rather than resolving them.

    Fixed

    • cut-cancellation recovery docs: recovery (A) now covers manifest-create, non-atomicity, and the published-release case (#660)

      docs/integration.md § Cut-cancellation recovery (#417) no longer says "edit" the manifest for adopters who never had one — it gives the full create-from-scratch JSON. The three (A) steps are now named as non-atomic, since a bare tag push can silently clear the bootstrap population's orphan check unfinished. (B) is flagged as actively wrong once a release is already published, per the live 2026-08-25 incident (#884).

    • dry-run preview docs: fix the fidelity-guarantee direction and two stale claims (#662)

      The asymmetry #662 quoted — rt decide reporting mode=cut for a run that would resolve mode=update live — was already closed at the code level by #689. The doc now says so plainly: --dry-run is a computational no-op for rt decide. Also retires the stale FORGEJO_API_DRY_RUN env-var reference and names a live gap: rt release's idempotency pre-check is faked under --dry-run, always previewing a create.

    • changelog: suppress duplicate commit bullets covered by body-referenced fragments (#672)

      Multi-commit changes can keep the richer fragment entry without widening the add-only fragment walk that protects against silent omission.

    • release: disclose whether post-cut manifest bookkeeping creates or updates (#679)

      The typed post-cut boundary now preserves the observable create/update branch evidence from the release workflow.

    • prep: rt prep --dry-run no longer writes your checkout. It runs against a scratch copy and prints the diff it would produce, so a failed run leaves nothing behind for the retry's clean-tree gate to refuse. post_bump_hooks run in the scratch copy; anything they touch outside their working directory is still not contained (#708)

    • decide: a cut-safeguard that declines no longer resolves to mode=noop when the fall-through finds nothing release-relevant. That path dropped safeguard_fail, safeguard_version and prep_sha and exited 0, so a decline read exactly like "nothing to release". It now emits mode=blocked with reason=safeguard_decline, which the workflow already fails on. A could-not-grade stays distinguishable from a refusal (#711)

    • operations: document drain-before-review order for rolling release PRs (#770)

      Land other work before reviewing the rolling PR, then merge it before another main landing can rebuild its content and invalidate the approval. This is a regeneration rule, not an outdated-branch rule.

    • manifest: a draft cut no longer records a completed release. Schema 2 adds last_released_published, so a cut that leaves the release unpublished says so. manifest-check now reports the absent tag as an unfinished cut, not a desync. Schema 1 is still read, and migrates only when a record needs the new field (#805)

    • 849: fragment density, and scrub a register over-match in the arms

    • ci: keep the blocked arm FLAT so its bats guard reads what it means to

    Removed

    None.

    Deprecated

    None.

    Upgrade

    None.

    Internal

    • test guards: make pending-cut branch extraction safe for nested shell cases (#889)

      The workflow contract is unchanged; the structural guard now proves both a nested-case success path and a missing-refusal inverse fails closed.

    Downloads
  • v0.46.1 b4ae44a543

    v0.46.1
    Some checks failed
    changelog-body-check / changelog body Cold-Read linter (pull_request) Successful in 6s
    check-self-bootstrap / check (pull_request) Has been skipped
    changelog-body-check / check (pull_request) Successful in 0s
    fragment-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 4s
    fragment-check / changelog fragment-kind (pull_request) Successful in 6s
    fragment-check / check (pull_request) Successful in 0s
    go-ci / lint + build + test (pull_request) Successful in 23s
    manifest-check / manifest-vs-tag consistency (pull_request) Successful in 6s
    manifest-check / check (pull_request) Successful in 0s
    register-check / register-drift check (pull_request) Successful in 6s
    register-check / check (pull_request) Successful in 0s
    tests / workflow-schema (pull_request) Successful in 3s
    tests / bats (pull_request) Successful in 7s
    tests / shellcheck (pull_request) Successful in 2s
    check-self-bootstrap / check (push) Successful in 5s
    go-ci / lint + build + test (push) Successful in 23s
    release / decide + act (push) Successful in 7s
    release / release (push) Successful in 0s
    tests / workflow-schema (push) Successful in 3s
    tests / bats (push) Successful in 7s
    tests / shellcheck (push) Successful in 2s
    goreleaser / build + publish rt asset (push) Successful in 1m18s
    goreleaser / publish the rt image + bake its digest (push) Failing after 34s
    goreleaser / adopters can pull the published image (push) Has been skipped
    goreleaser / adopters can fetch the published asset (push) Has been skipped
    Stable

    release-bot released this 2026-08-26 09:49:30 +02:00 | 667 commits to main since this release

    Added

    None.

    Changed

    None.

    Fixed

    • dead-script documentation: freeze the 32-name namespace and classify every documented site by temporal provenance or citation shape (#852)

    • release: record the published v0.46.0 cut in the manifest

    • changelog: shorten manifest boundary fragment

    Removed

    None.

    Deprecated

    None.

    Upgrade

    None.

    Internal

    • manifest replay boundary: post-cut skips only when remote state records the cut head, so a current-run local manifest write cannot masquerade as prior-run bookkeeping (#862)

    • docker-build contract: fail release image jobs before Node-backed actions when runner capabilities are absent (#876)

      Publish and verify now log paths and versions for git, Docker CLI/daemon, jq, and Node, with a positive Docker control. No consumer action is required.

    • release recovery: expose pending cut version and prepare commit as a blocked decision, preventing rolling updates until an operator completes or reverts the cut (#882)

    Downloads
  • v0.46.0 7d248947f6

    v0.46.0
    Some checks failed
    changelog-body-check / changelog body Cold-Read linter (pull_request) Successful in 5s
    check-self-bootstrap / check (pull_request) Has been skipped
    changelog-body-check / check (pull_request) Successful in 0s
    fragment-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 4s
    fragment-check / changelog fragment-kind (pull_request) Successful in 5s
    fragment-check / check (pull_request) Successful in 0s
    go-ci / lint + build + test (pull_request) Successful in 23s
    manifest-check / manifest-vs-tag consistency (pull_request) Successful in 6s
    manifest-check / check (pull_request) Successful in 0s
    register-check / register-drift check (pull_request) Successful in 6s
    register-check / check (pull_request) Successful in 0s
    tests / workflow-schema (pull_request) Successful in 3s
    tests / bats (pull_request) Successful in 7s
    tests / shellcheck (pull_request) Successful in 2s
    check-self-bootstrap / check (push) Successful in 4s
    go-ci / lint + build + test (push) Successful in 24s
    release / decide + act (push) Failing after 7s
    release / release (push) Failing after 0s
    tests / workflow-schema (push) Successful in 3s
    tests / bats (push) Successful in 7s
    tests / shellcheck (push) Successful in 2s
    goreleaser / build + publish rt asset (push) Successful in 1m19s
    goreleaser / publish the rt image + bake its digest (push) Failing after 0s
    goreleaser / adopters can pull the published image (push) Has been skipped
    goreleaser / adopters can fetch the published asset (push) Has been skipped
    Stable

    release-bot released this 2026-08-25 21:29:56 +02:00 | 676 commits to main since this release

    Added

    None.

    Changed

    • Release orchestration: move stateful cut bookkeeping behind a typed rt boundary (#862)

      Manifest transactions, self-workflow bake/re-pin, and cut-time push handoff now run through tested Go code while workflow-native wiring and fail-closed post-conditions remain in YAML.

    Fixed

    • release: satisfy post-cut lint contracts

    Removed

    None.

    Deprecated

    None.

    Upgrade

    None.

    Downloads
  • v0.45.1 de927aad62

    v0.45.1
    Some checks failed
    changelog-body-check / changelog body Cold-Read linter (pull_request) Successful in 6s
    check-self-bootstrap / check (pull_request) Has been skipped
    changelog-body-check / check (pull_request) Successful in 0s
    fragment-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 5s
    fragment-check / changelog fragment-kind (pull_request) Successful in 6s
    fragment-check / check (pull_request) Successful in 0s
    go-ci / lint + build + test (pull_request) Successful in 23s
    manifest-check / manifest-vs-tag consistency (pull_request) Successful in 6s
    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 7s
    tests / shellcheck (pull_request) Successful in 3s
    check-self-bootstrap / check (push) Successful in 5s
    go-ci / lint + build + test (push) Successful in 25s
    release / decide + act (push) Successful in 8s
    release / release (push) Successful in 0s
    tests / workflow-schema (push) Successful in 3s
    tests / bats (push) Successful in 7s
    tests / shellcheck (push) Successful in 3s
    goreleaser / build + publish rt asset (push) Successful in 1m31s
    goreleaser / publish the rt image + bake its digest (push) Failing after 6s
    goreleaser / adopters can pull the published image (push) Has been skipped
    goreleaser / adopters can fetch the published asset (push) Has been skipped
    Stable

    release-bot released this 2026-08-25 18:41:16 +02:00 | 682 commits to main since this release

    Added

    None.

    Changed

    None.

    Fixed

    None.

    Removed

    None.

    Deprecated

    None.

    Upgrade

    None.

    Internal

    • CI gates now consume measured standard runner images — missing bats, shellcheck, jq, or Graphviz fails loud instead of triggering runtime package installation (#863)

    • Release cuts now publish the digest-pinned action from the measured Docker-capable runner and hand the tagged action artifact to verification (#872)

    Downloads
  • v0.45.0 74b059ff65

    v0.45.0
    Some checks failed
    changelog-body-check / changelog body Cold-Read linter (pull_request) Successful in 6s
    check-self-bootstrap / check (pull_request) Has been skipped
    changelog-body-check / check (pull_request) Successful in 0s
    fragment-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 4s
    fragment-check / changelog fragment-kind (pull_request) Successful in 6s
    fragment-check / check (pull_request) Successful in 0s
    go-ci / lint + build + test (pull_request) Successful in 25s
    manifest-check / manifest-vs-tag consistency (pull_request) Successful in 6s
    manifest-check / check (pull_request) Successful in 0s
    register-check / register-drift check (pull_request) Successful in 6s
    register-check / check (pull_request) Successful in 0s
    tests / workflow-schema (pull_request) Successful in 3s
    tests / bats (pull_request) Successful in 7s
    tests / shellcheck (pull_request) Successful in 3s
    check-self-bootstrap / check (push) Successful in 5s
    go-ci / lint + build + test (push) Successful in 23s
    release / decide + act (push) Successful in 8s
    release / release (push) Successful in 0s
    tests / workflow-schema (push) Successful in 3s
    tests / bats (push) Successful in 7s
    tests / shellcheck (push) Successful in 3s
    goreleaser / build + publish rt asset (push) Successful in 1m16s
    goreleaser / publish the rt image + bake its digest (push) Failing after 3s
    goreleaser / adopters can pull the published image (push) Has been skipped
    goreleaser / adopters can fetch the published asset (push) Failing after 3s
    Stable

    release-bot released this 2026-08-25 17:37:38 +02:00 | 687 commits to main since this release

    Added

    None.

    Changed

    • contracts: enforce C6 section-header grammar against shipped changelogs (#799)

      The Go contract test now checks level-3 section headers with an accept/reject control and refuses to grade a missing or empty section corpus.

    Fixed

    None.

    Removed

    None.

    Deprecated

    None.

    Upgrade

    None.

    Downloads
  • v0.44.2 e9b51bea30

    v0.44.2
    Some checks failed
    changelog-body-check / changelog body Cold-Read linter (pull_request) Successful in 6s
    check-self-bootstrap / check (pull_request) Has been skipped
    changelog-body-check / check (pull_request) Successful in 0s
    fragment-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 4s
    fragment-check / changelog fragment-kind (pull_request) Successful in 6s
    fragment-check / check (pull_request) Successful in 0s
    go-ci / lint + build + test (pull_request) Successful in 23s
    manifest-check / manifest-vs-tag consistency (pull_request) Successful in 6s
    manifest-check / check (pull_request) Successful in 0s
    register-check / register-drift check (pull_request) Successful in 6s
    register-check / check (pull_request) Successful in 0s
    tests / workflow-schema (pull_request) Successful in 4s
    tests / bats (pull_request) Successful in 7s
    tests / shellcheck (pull_request) Successful in 3s
    check-self-bootstrap / check (push) Successful in 5s
    go-ci / lint + build + test (push) Successful in 23s
    release / decide + act (push) Successful in 8s
    release / release (push) Successful in 0s
    tests / workflow-schema (push) Successful in 3s
    tests / bats (push) Successful in 7s
    tests / shellcheck (push) Successful in 3s
    goreleaser / build + publish rt asset (push) Successful in 1m18s
    goreleaser / publish the rt image + bake its digest (push) Failing after 3s
    goreleaser / adopters can pull the published image (push) Has been skipped
    goreleaser / adopters can fetch the published asset (push) Failing after 3s
    Stable

    release-bot released this 2026-08-25 17:12:44 +02:00 | 691 commits to main since this release

    Added

    None.

    Changed

    None.

    Fixed

    • rt manifest-pr skips assigning the manifest PR to a configured bot identity, retaining release-bot as the default (#722)

    Removed

    None.

    Deprecated

    None.

    Upgrade

    None.

    Downloads
  • v0.44.1 55c35c72fa

    v0.44.1
    Some checks failed
    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 6s
    fragment-check / check (pull_request) Successful in 0s
    go-ci / lint + build + test (pull_request) Successful in 24s
    manifest-check / manifest-vs-tag consistency (pull_request) Successful in 6s
    manifest-check / check (pull_request) Successful in 0s
    register-check / register-drift check (pull_request) Successful in 6s
    register-check / check (pull_request) Successful in 0s
    tests / workflow-schema (pull_request) Successful in 3s
    tests / bats (pull_request) Successful in 9s
    tests / shellcheck (pull_request) Successful in 3s
    check-self-bootstrap / check (push) Successful in 5s
    go-ci / lint + build + test (push) Successful in 24s
    release / decide + act (push) Successful in 8s
    release / release (push) Successful in 0s
    tests / workflow-schema (push) Successful in 3s
    tests / bats (push) Successful in 7s
    tests / shellcheck (push) Successful in 3s
    goreleaser / build + publish rt asset (push) Successful in 1m23s
    goreleaser / publish the rt image + bake its digest (push) Failing after 4s
    goreleaser / adopters can pull the published image (push) Has been skipped
    goreleaser / adopters can fetch the published asset (push) Failing after 4s
    Stable

    release-bot released this 2026-08-25 16:58:42 +02:00 | 695 commits to main since this release

    Added

    None.

    Changed

    None.

    Fixed

    • changelog-body-check: reject duplicate version sections across the full changelog (#791)

      The gate reports the competing version lines; repeated kind headers remain scoped to the newest release section.

    • rt repin recovers cleanly from a failed tag push by publishing the detached bake directly and naming remote verification before retry (#796)

    Removed

    None.

    Deprecated

    None.

    Upgrade

    None.

    Downloads