-
Release v0.31.0
StableAll checks were successfulchangelog-body-check / changelog body Cold-Read linter (pull_request) Successful in 4scheck-self-bootstrap / check (pull_request) Has been skippedchangelog-body-check / check (pull_request) Successful in 0sfragment-check / changelog fragment-kind (pull_request) Successful in 3sfragment-check / check (pull_request) Successful in 0smanifest-check / manifest-vs-tag consistency (pull_request) Successful in 5smanifest-check / check (pull_request) Successful in 0sregister-check / register-drift check (pull_request) Successful in 4sregister-check / check (pull_request) Successful in 0stests / bats (pull_request) Successful in 1m57stests / shellcheck (pull_request) Successful in 8scheck-self-bootstrap / check (push) Successful in 3srelease / decide + act (push) Successful in 7srelease / release (push) Successful in 0stests / bats (push) Successful in 1m57stests / shellcheck (push) Successful in 13smirror-on-cut / mirror-1 (release) Successful in 1smirror-on-cut / mirror (release) Successful in 0sreleased this
2026-07-07 20:49:20 +02:00 | 1049 commits to main since this releaseAdded
None.
Changed
Cold-read capture output now routes to the internal wiki (BookStack
release-toolkitbook, id 209) instead of dropping{date}-{model}-{surface}.mdand{date}-triangulation.mdfiles intodocs/internal/cold-read/. Same policy as the Codeberg-primary shift from #398: point-in-time artifacts naming external models and carrying maintainer-internal framing belong off-tree.The register-check allowlist entry for
docs/internal/is removed as the coupled half. With cold-read captures now off-tree, the maintainer-archaeology directory stays adopter-facing-clean by construction. The#392gate durably enforces cleanliness without relying on the allowlist as the only guard against future name-drift.Verified with the allowlist entry removed:
register-check.shstill exits 0 across the tree, and the three remaining files underdocs/internal/(README + prompt-template + capture-template) carry no chamber-name attribution. Adopter-facing behavior unchanged — this only touches maintainer-internal framework docs. Closes #402.Fixed
PREP_SUBJECT_REis now a single-source-of-truth inscripts/lib/prep-subject.sh. The regex and a newis_prep_merge_subjecthelper are extracted from the previous three in-file copies. Two lived inrelease-decide.shfor cut-detection; one lived incheck-self-bootstrap.shfor skip-detection.Consumers now source the shared library. Any future refinement of the shape matcher lands in one place. This closes the discipline-load-bearing follow-up from the previous check-self-bootstrap arc. Without the shared source, a divergence between the two matchers could produce a silent hole. A non-cut push would then be incorrectly skipped by the pin-drift check.
Test coverage lives in
tests/prep-subject.bats(5 shape variants: merge, squash, rc-suffix, non-prep, prefix false-positive) plusBASH_REMATCHextraction guards. Existing regressions intests/check-self-bootstrap.batsandtests/release-decide.batscontinue to pass unchanged. No action required for adopters. Closes #450.Removed
None.
Deprecated
None.
Upgrade
None.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Source code (ZIP)