chore: roll v0.4.0 — the clean-cutover release#131
Merged
Conversation
Assembles the [Unreleased] block into a dated heading per the derived-changelog plan's cutover: the last hand-cut release before abcd launch ship takes over. Introduces the Breaking section the file header promises (first pre-1.0 breaking release): the strict banned_tokens schema (iss-51) moves there from Changed, and the two Fixed sections merge into one. breaking -> minor under the pre-1.0 rule, so 0.3.0 -> 0.4.0. The tag this heading triggers will be the first release whose tree carries the surface baseline, unwedging every future derived cut. Assisted-by: Claude:claude-fable-5
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The clean-cutover manual roll (plan outcome 7)
Assembles the
[Unreleased]block into## [0.4.0] - 2026-07-22and resets[Unreleased]to empty. This is the last hand-cut release; every cut afterit uses the derived
abcd launch shippipeline that merged in the P0–P4 stack.Why 0.4.0
The block contains one
breakingrecord — iss-51, the strictbanned_tokensschema (entries lacking
successororallow_contextare rejected at load).Under the pre-1.0 rule (
breaking -> minor++, ADR-37), that derives0.3.0 → 0.4.0. Maintainer signed off on the
breakingreading.What the roll changes structurally
### Breakingsection the file header has always promised(this is the first pre-1.0 breaking release): the banlist entry moves there
from
### Changed.### Fixedsections into one.What merging this PR does
auto-release.yml's detect job greps the newest dated heading on the nextpush to main — merging this PR creates tag v0.4.0 and publishes the
release. Verified locally that the detect pattern resolves this heading and
nothing else.
This will be the first tagged tree containing
.abcd/development/release/surface.json, which unwedges the surface guard:abcd changelogcurrently refuses fail-closed against v0.3.0 (no baseline inthat tag) and derives cleanly once this tag exists.
Gates
make preflightgreen (build, gofmt, vet, tests,-race, record-lint,docs lint — 0 blockers).
docs-currency review returned PASS — all fifteen user-facing claims in
the 0.4.0 block verified against the implementing code with file:line
evidence, and the committed CLI reference regenerates with no diff.