• v0.29.0 56bf27b44a

    Release v0.29.0
    Some checks failed
    changelog-body-check / changelog body Cold-Read linter (pull_request) Successful in 3s
    check-self-bootstrap / check (pull_request) Has been skipped
    changelog-body-check / check (pull_request) Successful in 0s
    fragment-check / changelog fragment-kind (pull_request) Successful in 3s
    fragment-check / check (pull_request) Successful in 0s
    manifest-check / manifest-vs-tag consistency (pull_request) Successful in 5s
    manifest-check / check (pull_request) Successful in 0s
    register-check / register-drift check (pull_request) Failing after 4s
    register-check / check (pull_request) Failing after 0s
    tests / bats (pull_request) Successful in 1m52s
    tests / shellcheck (pull_request) Successful in 7s
    check-self-bootstrap / check (push) Failing after 3s
    release / decide + act (push) Successful in 6s
    release / release (push) Successful in 0s
    tests / bats (push) Successful in 1m52s
    tests / shellcheck (push) Successful in 8s
    mirror-on-cut / mirror-1 (release) Successful in 1s
    mirror-on-cut / mirror (release) Successful in 0s
    Stable

    release-bot released this 2026-07-07 09:55:05 +02:00 | 1081 commits to main since this release

    Added

    Compose-time register-scrub on commit-subject → CHANGELOG bullets. Chamber-name attributions in commit subjects used to ride through cc_categorize_commits_since into CHANGELOG bullets past the register-check file-scan gate. The bullet is now scrubbed at emission — every REGISTER_PATTERNS match is replaced with [reviewer] — so the composed CHANGELOG is clean at source. The pre-existing register-check --stdin FATAL in release-prep.sh stays wired as a defense-in-depth layer for fragment-side drift the emission scrub doesn't cover. No action required. Closes #442.

    Fixed

    changelog-body-check now targets the newest versioned section instead of the empty [Unreleased] placeholder above it. On a composed CHANGELOG the transition step inserts the freshly-versioned [vX.Y.Z] section BELOW a still-empty [Unreleased] heading. The pre-fix check took the first ## [ and passed vacuously. The check now prefers the newest ## [vX.Y.Z] heading and falls back to [Unreleased] only when no versioned section exists. No action required. Closes #440.

    Fragment-vs-commit dedup now matches (closes #NNN) / (fixes #NNN) bullet formats. A CC bullet composed from a commit subject carrying (closes #NNN) / (fixes #NNN) / Closes #NNN. used to escape the trailer-only dedup and appear alongside its fragment prose.

    The dedup key is now a bare #NNN with a word-boundary guard. It catches every ref shape — trailer, bolded scope, inline close-verb, comma-separated multi-refs. #4380 still does not match fragment #438. No action required. Closes #441.

    • release-prep: Bundle 1 v0.28.1 must-fix — target section + dedup + register-scrub [#440 #441 #442]
    Downloads