docs(changelog): reconcile and promote [Unreleased] to [4.0.3]#2891
Conversation
Release-cut reconciliation ahead of the 4.0.3 GA: - Rename [Unreleased] -> [4.0.3] with the 2026-06-09 release date and a summary blurb, matching the 4.0.2 promotion format (#2824). - Consolidate the duplicated ### Changed / ### Fixed sections that accumulated from incremental entry additions into one Added/Changed/Fixed trio (same order as the 4.0.2 block). - Drop the byte-identical duplicate #2844 (protectedControllerMethods) entry. - Add the missing consolidated entry for the 24-command CLI audit sweep (#2882, #2883, #2884, #2885). - Fix the separator below the promoted block to exactly '---' (3 dashes) so release.yml's release-notes awk extraction terminates correctly (the #2606/#2768 footgun its Validate Release Checklist step guards against). Cutting the release branch from develop AFTER this lands avoids the 4.0.2 back-port dance (#2824) where the rename lived only on the release branch. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Signed-off-by: Peter Amiri <peter@alurium.com>
There was a problem hiding this comment.
Wheels Bot — Reviewer A
This PR performs a changelog reconciliation ahead of the 4.0.3 GA: it renames [Unreleased] to [4.0.3], consolidates duplicated ### Changed/### Fixed sections, drops the byte-identical duplicate #2844 entry, adds the missing CLI audit sweep entry (#2882-#2885), and fixes the block-terminating separator from five dashes (-----) to exactly three (---) so release.yml's awk extraction closes correctly. The diff is CHANGELOG.md-only; no production code is touched. Verdict: approve.
Correctness
The five claimed edits all land as described:
- Version heading renamed with correct link and date (2026-06-09), matching the 4.0.2 promotion format. The summary blurb claims (ArgSpec overhaul, sibling-server guard, PostgreSQL FK fix, Oracle DDL,
protectedControllerMethods, column-casing, reload password) all correspond to entries in the consolidated sections. - Duplicate section collapse — the second
### Changedblock (the CLI user-error-paths entry, #2890) and the second### Fixedheader were removed; their entries are preserved in the consolidated block. - Duplicate #2844 entry dropped —
protectedControllerMethodsappeared twice in the old### Fixedsections; exactly one instance remains. - Missing CLI audit entry added — the
A full audit of the CLI's 24 commandsbullet was absent from any prior### Fixedsection; it now appears, matching #2882-#2885. - Separator fix — the terminating separator below the 4.0.3 block changed from
-----(five dashes) to---(three dashes).
The separator fix is the highest-risk item. Verified with release.yml's own awk pattern against the post-merge CHANGELOG — the range /^# \[4\.0\.3\]/,/^---$/ ends at the --- on line 67 and the very next line is a blank before # [4.0.2]. Zero bleed into the prior release block. The ---- (four-dash) decorative separators around the rebrand note at lines 8 and 19 do not match ^---$ and are correctly left alone.
Commits
Single commit: docs(changelog): reconcile and promote [Unreleased] to [4.0.3]
- Type
docs, scopechangelog, header 61 chars, not ALL-CAPS — all valid per commitlint. - Body explains each of the five edits and the motivation for the pre-release timing.
Signed-off-by: Peter Amiri <peter@alurium.com>matches the git author identity — DCO satisfied.Co-Authored-By: Claude Fable 5present.
No Cross-engine, Tests, or Security sections apply to a documentation-only CHANGELOG edit.
Wheels Bot — Reviewer B (round 1)A's review checks out across all five claimed edits. No sycophancy, no false positives, no missed issues. Convergence: aligned on approve. SycophancyNone detected. A backed each finding with a specific diff reference — no bare LGTM or unsupported approval. False positivesNone detected. Verified each claim against the diff and the merged file:
A's claim that the version summary blurb's items "all correspond to entries in the consolidated sections" extends to the column-casing and reload-password items, which were not visible in the diff (they were already in the file from prior PRs). Verified against the merged file: both entries are present at lines 59-60 of the final CHANGELOG — no false positive. Missed issuesNone detected. The diff is Verdict alignmentA's approve is consistent with the findings: every claimed edit verified, documentation-only change, no actionable issues outstanding. ConvergenceAligned on approve. A's review is accurate and complete for a CHANGELOG-only reconciliation PR. No changes needed. |
…ase playbook (#2893) Learned at the 4.0.3 cut (#2892): - The 'merge with a merge commit' step silently depended on the repo setting 'Allow merge commits', which had been switched to squash-only between the 4.0.1 and 4.0.2 cuts — forcing #2819 to squash and poisoning the next promotion with 24 spurious conflicts. The setting is enabled again (permanently, per maintainer decision 2026-06-09); the playbook now says so explicitly. - Document the '-s ours' healing recipe for promoting develop over a diverged main, including the must-be-empty tree-diff verification. - Promote the CHANGELOG rename on develop BEFORE cutting the release branch (the 4.0.3 flow, #2891) so develop doesn't need a back-port like #2824. - Fix dispatch-list drift: chocolatey-wheels was retired for scoop-wheels, and the apt/yum bucket dispatches were missing from the trigger list. Signed-off-by: Peter Amiri <peter@alurium.com> Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Release-cut reconciliation ahead of the 4.0.3 GA.
What
# [Unreleased]→# [4.0.3](…) => 2026-06-09with a summary blurb, matching the 4.0.2 promotion format (docs(changelog): promote develop [Unreleased] to [4.0.2] #2824).### Changed/### Fixedsections (accumulated from incremental entry additions) into one Added/Changed/Fixed trio, same order as the 4.0.2 block.protectedControllerMethods) entry.---(3 dashes) sorelease.yml's release-notes awk extraction terminates correctly (the chore: prep CHANGELOG for v4.0.0 GA #2606/chore(release): prep CHANGELOG for v4.0.1 GA #2768 footgun).Verification
Mirrored
release.yml's Validate Release Checklist locally:/^# \[4\.0\.3\]/,/^---$/extracts the 4.0.3 block with zero bleed into the 4.0.2 section=> TBDon the 4.0.3 headingwheels.jsonon develop already reads4.0.3(clean, no snapshot suffix)Why now
Doing the promotion on develop before cutting
release/4.0.3-to-mainavoids the 4.0.2 back-port dance (#2824), where the rename lived only on the squash-merged release branch and develop kept stale[Unreleased]entries.🤖 Generated with Claude Code