Skip to content

chore: prep CHANGELOG for v4.0.0 GA#2606

Merged
bpamiri merged 3 commits into
developfrom
release/4.0.0
May 12, 2026
Merged

chore: prep CHANGELOG for v4.0.0 GA#2606
bpamiri merged 3 commits into
developfrom
release/4.0.0

Conversation

@bpamiri
Copy link
Copy Markdown
Collaborator

@bpamiri bpamiri commented May 12, 2026

Summary

Pre-flight prep for the v4.0.0 GA tag. Once this lands on develop, the remaining release-day steps are mechanical (FF main, tag, push — see "Manual steps for you" below).

What changed

  • CHANGELOG header — promoted ## [Unreleased] to # [4.0.0](...) => 2026-05-11. This is the line release.yml grep-validates for => TBD. Bump the date to whatever day you actually tag if it slides past 2026-05-11.
  • PR count + contributor list — synced with docs/releases/wheels-4.0-audit.md (260+ PRs, added @MukundaKatta).
  • New `Distribution` subsection under Added — captures the four install channels (Homebrew tap, Scoop bucket, Linux .deb/.rpm, WinGet drafts) that landed for 4.0 but weren't itemized in the changelog.
  • Section terminator fix — changed the ---- (4 dashes) separator between the 4.0.0 block and the 3.0.0 block to --- (3 dashes). release.yml's release-notes extraction is awk '/^# \[VERSION\]/,/^---$/' — that pattern matches only the 3-dash form. With the 4-dash terminator, the extraction would have run into 3.0.0's notes and shipped a doubled release-notes body on GitHub.

Pre-flight checks (all passing)

  • CHANGELOG has no => TBD for 4.0.0 → release.yml validation step (line 92) passes
  • `wheels.json` version is clean (`4.0.0`, no `-snapshot` suffix) → release.yml validation step (line 100) passes
  • `package.json` version matches (`4.0.0`)
  • First-party packages compatible — all six declare `wheelsVersion >= 4.0` (wheels-sentry, wheels-hotwire, wheels-basecoat, wheels-i18n, wheels-seo-suite, wheels-legacy-adapter)
  • Release-notes awk extraction terminates at correct boundary (sanity-check via `awk '/^# \[4\.0\.0\]/,/^---$/' CHANGELOG.md | wc -l` = 199 lines, ends with the security section)

Open PRs to land before tagging (or punt to 4.0.1)

  • #2603 — fix(scoop): write `wheels.cmd` in `pre_install` so Scoop's bin shim step succeeds
  • #2604 — docs(web/guides): replace nonexistent install.sh URL with working .deb/.rpm install

Both are small and low-risk; recommend landing them before tagging so the GA install story is consistent. If either CI fails or you decide to punt, this prep PR is independent of both.

Manual steps for you (after this PR merges to develop)

```bash

1. Verify date in CHANGELOG.md still reflects today; if not, bump it on develop.

2. Fast-forward main from develop. (Run from a clean local checkout.)

git checkout main
git pull origin main
git merge --ff-only origin/develop

3. Tag and push. release.yml fires automatically on the tag push.

git tag -a v4.0.0 -m "Release 4.0.0"
git push origin main --tags
```

After the tag push, the automation cascade runs:

  1. `release.yml` builds artifacts (`wheels-core`, `wheels-cli`, `wheels-base-template`, `wheels-starter-app`, `wheels-module`, `.deb`, `.rpm`), publishes to GitHub Releases, marks as latest.
  2. `bump-develop-version.yml` opens a PR against develop bumping `wheels.json` to `4.0.1` (the next-patch baseline for snapshots).
  3. Homebrew tap's `wheels-bump.yml` opens a PR bumping `Formula/wheels.rb`.
  4. Scoop bucket's auto-update opens a PR bumping the `wheels` manifest.
  5. Pre-staged WinGet drafts are ready for manual submission to `microsoft/winget-pkgs` (see issue trail).

End-to-end maintainer turnaround per the playbook: merge ~3 auto-PRs across tap/bucket repos. ~10 min.

Post-release smoke test (per RELEASE_PLAYBOOK.md)

```bash

Wait for the brew tap auto-PR to merge, then:

brew update && brew upgrade wheels
wheels --version # should report 4.0.0 (stable)

Smoke test:

mkdir /tmp/release-smoke && cd /tmp/release-smoke
wheels new myapp && cd myapp && wheels start

Visit http://localhost:8080 — should see the welcome page.

```

If the smoke test fails, the playbook's rollback section covers revert via the brew tap (the GitHub Release stays — yanking it would 404 anyone scaffolding against that version's URL).

Why no scope-level work was needed

Per the audit (docs/releases/wheels-4.0-audit.md), the "Where Wheels Trails" master plan items 3/4/6 all closed, and the [Unreleased] section was incrementally maintained across the April–May window. The 60-PR catch-up gap flagged at audit time (2026-04-22) was filled by the PRs that landed that same window — the recent fixes (#2412, #2489, #2568/2599, #2569, #2567, #2530, #2563, etc.) are already in [Unreleased]. The only remaining gaps were the install-distribution channels themselves, which are now captured in this PR's new "Distribution" subsection.

🤖 Generated with Claude Code

@github-actions github-actions Bot added the docs label May 12, 2026
@bpamiri
Copy link
Copy Markdown
Collaborator Author

bpamiri commented May 12, 2026

Quick update: #2603 merged to develop as e7445bc9d. Added a Fixed entry to this PR's CHANGELOG (commit d971cde8e) so the v4.0.0 release notes call out the Scoop install fix explicitly. No other changes to the GA plan — release/4.0.0 is now ahead of develop by 2 commits (CHANGELOG prep + Scoop fix entry).

Remaining: #2604 (Linux install docs) is still open. Same call as before — recommend landing it pre-tag so the install story is consistent across all three OSes.

Copy link
Copy Markdown
Contributor

@wheels-bot wheels-bot Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wheels Bot — Reviewer A

TL;DR: This is a focused, low-risk release-prep change — promoting [Unreleased] to # [4.0.0], backfilling the Distribution subsection, and fixing the critical ------- section-terminator so release.yml's awk extraction doesn't bleed into the 3.0.0 notes. The core logic is correct and the pre-flight checks in the PR body verify out. Two nits worth addressing before the GA tag lands.


Correctness

The section-terminator fix is the most consequential change and it's right. release.yml line 365 uses:

awk '/^# \['"${VERSION_PATTERN}"'\]/,/^---$/ {print}' CHANGELOG.md

^---$ requires exactly three dashes. The old ---- (four-dash) terminator at what was CHANGELOG.md:216 would have caused the range to stay open past the 4.0.0 block, consuming the 3.0.0 header and all its notes. The fix is correct.

Verified via grep -n "^---\|^----\|^# \[":

  • Line 219 is now --- (three dashes) — matches the awk pattern. ✓
  • Lines 8 and 19 remain ---- (four dashes) — those are preamble separators, not version-block terminators; they are never inside an awk range. ✓

wheels.json and package.json both show "version": "4.0.0" (no -snapshot suffix), so the release.yml version-cleanliness check also passes. ✓

Docs

Link text mismatch in the Homebrew bullet (CHANGELOG.md, new line ~103):

- **macOS** — Homebrew tap at [`wheels-dev/wheels`](https://github.com/wheels-dev/homebrew-wheels) ...

The link text is wheels-dev/wheels but the URL resolves to wheels-dev/homebrew-wheels. A reader clicking the link lands in the right place, but the visible text is the name of the framework repo, not the tap. Suggest either of:

[`wheels-dev/homebrew-wheels`](https://github.com/wheels-dev/homebrew-wheels)

or just:

[the Homebrew tap](https://github.com/wheels-dev/homebrew-wheels)

Date is already one day past. CHANGELOG now reads => 2026-05-11; today is 2026-05-12. The PR body explicitly calls this out ("Bump the date… if it slides past 2026-05-11"), so this is pre-acknowledged. Just a reminder to update it on the actual tag day before the FF-merge.

Commits

The single commit (bff31f981) conforms to commitlint (chore: prep CHANGELOG for v4.0.0 GA — valid type, subject well under 100 chars, sentence-case). ✓

One gap: the commit is missing a Signed-off-by: trailer. DCO was adopted in #2575 (listed in this very changelog block) and is documented as a required status check going forward. The DCO GitHub App check does not appear in gh pr checks output for this PR, so it is not actively blocking today — but the policy is in effect and the trailer is easy to add:

git commit --amend -s   # adds Signed-off-by: <git config user.name> <email>

Worth squeezing in before tagging so the release commit is policy-compliant from day one.


No Wheels-convention, cross-engine, security, or test concerns — this PR touches only CHANGELOG.md.

@wheels-bot
Copy link
Copy Markdown
Contributor

wheels-bot Bot commented May 12, 2026

Wheels Bot — Reviewer B (round 1)

A's review is accurate and not sycophantic. All three findings (link-text mismatch, date drift, DCO trailer) are confirmed against the diff. One missed issue: A's DCO note covers only bff31f981 but the second commit on this PR -- d971cde8e -- also lacks a Signed-off-by: trailer. The verdict (COMMENTED, changes needed) is correct. Converging on changes-needed.

Sycophancy

None detected. A used COMMENTED state rather than APPROVE, called out two concrete nits, and explicitly said "worth squeezing in before tagging" for the DCO issue rather than waving it through.

False positives

None detected.

  • Section-terminator fix: A cites release.yml line 365 - confirmed. The awk command is awk '/^# [VERSION]/,/^---$/ {print}' CHANGELOG.md. The old ---- (four dashes) would have left the range open; the new --- (three dashes) matches /^---$/ exactly. Correct.
  • Link-text mismatch: Confirmed in the diff. The macOS bullet uses wheels-dev/wheels as link text but the URL resolves to wheels-dev/homebrew-wheels. Real nit.
  • DCO trailer on bff31f981: Confirmed via git show. Commit body ends with Co-Authored-By: but has no Signed-off-by: trailer.
  • Date one day past: => 2026-05-11 vs today 2026-05-12 - confirmed. Pre-acknowledged in the PR body.

Missed issues

  • d971cde8e also lacks a DCO trailer. This commit (docs(changelog): add Fixed entry for #2603 Scoop pre_install fix) was added after A's review (A's marker references bff31f981). Its commit message also ends with only a Co-Authored-By: line - no Signed-off-by: trailer. Both commits need the trailer before this PR can merge. The fix is the same as A described: add Signed-off-by: to each commit via interactive rebase or amend chain.

Verdict alignment

COMMENTED is consistent with the findings -- two actionable nits and a policy-compliance gap mean approve is not warranted here.

Convergence

Aligned on changes-needed. A's core findings are accurate; the only gap is that the DCO finding needs to extend to d971cde8e as well as bff31f981. Consensus changes before merge: (1) add Signed-off-by: trailers to both commits, (2) fix the Homebrew link text from wheels-dev/wheels to wheels-dev/homebrew-wheels (or "the Homebrew tap"), (3) bump the date to the actual tag day before the FF-merge.

@wheels-bot
Copy link
Copy Markdown
Contributor

wheels-bot Bot commented May 12, 2026

Wheels Bot — No fix proposed

/propose-fix 2606 was invoked, but #2606 is a pull request (the v4.0.0 GA changelog prep), not a triaged bug issue. The propose-fix workflow requires a prior triage comment (marker wheels-bot:triage:<issue>) to anchor the spec and implementation, and none exists here.

If the intent was to address the reviewer feedback on this PR (DCO trailers on bff31f981 / d971cde8e, Homebrew link text, tag-day date bump), the right surface is /address-review on this PR — not /propose-fix.

Exiting without changes.

@wheels-bot
Copy link
Copy Markdown
Contributor

wheels-bot Bot commented May 12, 2026

Wheels Bot — Address Review (round 1)

Applied consensus findings from Reviewer A and Reviewer B's convergence (round 1):

  • Homebrew link text — fixed [wheels-dev/wheels](https://github.com/wheels-dev/homebrew-wheels) to [wheels-dev/homebrew-wheels](https://github.com/wheels-dev/homebrew-wheels) at CHANGELOG.md:104 so the visible link text matches the URL target.
  • Tag-day date bump — bumped the 4.0.0 release-date marker from => 2026-05-11 to => 2026-05-12 at CHANGELOG.md:21 so it reflects today's tag day. If the FF-merge slides past 2026-05-12, the maintainer should bump again before pushing the tag.

Skipped (out of address-review's safe scope):

  • DCO trailers on bff31f981 and d971cde8e — Both A (round 1) and B (round 1) flagged the missing Signed-off-by: trailers on these two existing commits. Adding the trailers retroactively requires git commit --amend -s (single commit) or interactive rebase (chain) followed by a force-push to release/4.0.0. The wheels-bot rails forbid history rewrites and force-pushes — see .claude/commands/_shared-rails.md § "Tool restrictions" — so this finding cannot be addressed automatically. Action for a maintainer before the FF-merge: rebase the two release-prep commits onto themselves with -s (e.g. git rebase -i HEAD~3 and re-author each with --signoff), or amend the chain and force-push. The DCO GitHub App check will block the merge to main if the trailers are missing once DCO is enforced on this branch.

The new commit will trigger a fresh Reviewer A run on the updated SHA. Convergence loop continues until reviewers align on approve or the outer-loop cap (5 rounds) is reached.

Copy link
Copy Markdown
Contributor

@wheels-bot wheels-bot Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wheels Bot — Reviewer A

TL;DR: This PR (now at three commits) has addressed all findings from the previous round: the Homebrew tap link text is corrected, the date is bumped to 2026-05-12, and a new Fixed entry for the Scoop pre_install bug (#2603) has been backfilled. The CHANGELOG content is accurate and release-pipeline–ready. The one outstanding item from the prior review — missing Signed-off-by trailers on the two human-authored commits (bff31f981, d971cde8e) — remains open. The bot commit (fb14fb81e) carries the trailer correctly; the other two do not. This is a policy concern (DCO adopted in #2575), not a correctness blocker, but it should be resolved before the FF-merge to main.


Docs

Homebrew link text — fixed. CHANGELOG.md:104 now reads [wheels-dev/homebrew-wheels] and the link target matches. ✓

Release date — fixed. CHANGELOG.md:21 now reads => 2026-05-12, matching today's date. ✓

Scoop Fixed entry — added at CHANGELOG.md:163. The text accurately describes the pre_install → shim creation → post_install ordering issue and the fix. Cross-references #2603. ✓

Section terminatorCHANGELOG.md:220 is still --- (three dashes). The awk extraction range terminates correctly before the 3.0.0 block. ✓

Commits

Three commits are in scope for this PR:

SHA Author Subject Signed-off-by
bff31f981 Peter Amiri chore: prep CHANGELOG for v4.0.0 GA missing
d971cde8e Peter Amiri docs(changelog): add Fixed entry for #2603 Scoop pre_install fix missing
fb14fb81e claude[bot] docs(changelog): address Reviewer A/B consensus findings (round 1) present

All three subjects conform to commitlint (valid type, scope optional and present where used, ≤ 100 chars, not ALL-CAPS). ✓

The two Peter Amiri commits are missing Signed-off-by: trailers. DCO was adopted in #2575 (which is itemised in this very changelog block) and the DCO GitHub App is a required status check on new PRs. The bot commit correctly calls out that fixing them requires git commit --amend -s + force-push, which the wheels-bot rails forbid — a maintainer needs to do this before the FF-merge:

# From a local checkout:
git rebase --onto develop develop~3   # or however you scope it
git commit --amend -s                 # for bff31f981
git commit --amend -s                 # for d971cde8e
git push --force-with-lease origin <branch>

Or, since this is a docs-only prep PR, squash all three into a single signed commit during the FF-merge:

git merge --squash origin/<branch>
git commit -s -m "chore: prep CHANGELOG for v4.0.0 GA"

Either path produces a policy-compliant commit chain. The DCO check does not appear in the current gh pr checks output as a blocking status, but the policy is live and the trailer should be present on the release commit.


No Correctness, Cross-engine, Security, or Test concerns — this PR touches only CHANGELOG.md.

bpamiri and others added 3 commits May 11, 2026 22:21
- Promote [Unreleased] heading to # [4.0.0] with GitHub release link and
  date 2026-05-11 (replace `=> TBD` so release.yml validation passes).
- Update PR count (185 → 260+) and contributor list (+ @MukundaKatta) to
  match docs/releases/wheels-4.0-audit.md.
- Add new "Distribution" subsection under Added — captures the four
  install channels (Homebrew, Scoop, .deb/.rpm, WinGet drafts) that
  landed in 4.0 but weren't itemized in the changelog.
- Fix the section terminator after 4.0.0's notes from `----` (4 dashes)
  to `---` (3 dashes) so release.yml's release-notes awk extraction
  (`awk '/^# \[VERSION\]/,/^---$/'`) terminates at the right boundary
  instead of running into the 3.0.0 entry.

wheels.json is already at "4.0.0" (no snapshot suffix), so the
release.yml clean-source-version check passes. First-party packages all
declare wheelsVersion >=4.0 so no coordination updates are needed.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Peter Amiri <peter@alurium.com>
Captures the user-visible impact ("scoop install fails with Can't shim
wheels.cmd") and the actual fix (move launcher emit from post_install to
pre_install, where Scoop's install order requires it). Already merged on
develop as commit e7445bc; this just makes sure the GA changelog
reflects it under v4.0.0's Fixed section.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Peter Amiri <peter@alurium.com>
- Fix Homebrew tap link text from `wheels-dev/wheels` to
  `wheels-dev/homebrew-wheels` so the visible repo name matches the
  URL target (CHANGELOG.md:104).
- Bump the 4.0.0 release date marker from `2026-05-11` to
  `2026-05-12` so it reflects today's tag day (CHANGELOG.md:21).

Not addressed in this commit:
- Missing `Signed-off-by:` trailers on `bff31f981` and `d971cde8e`.
  Adding them requires `git commit --amend -s` (or interactive
  rebase) plus a force-push, both of which the wheels-bot rails
  forbid. Flagged to the human in the address-review comment so a
  maintainer can amend the trailer chain before the FF-merge to main.

Signed-off-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Signed-off-by: Peter Amiri <peter@alurium.com>
@bpamiri
Copy link
Copy Markdown
Collaborator Author

bpamiri commented May 12, 2026

Wheels-bot's round-1 commit fb14fb81e (now rebased to 917a5489d after the signoff pass) addressed:

  • Homebrew tap link text — wheels-dev/wheelswheels-dev/homebrew-wheels (now matches the URL target)
  • Date marker — 2026-05-112026-05-12

The bot also explicitly flagged that adding Signed-off-by: to the two prior commits required a force-push it wasn't allowed to do. Just rebased with --signoff so all three commits now carry the DCO trailer:

  • 917a5489d — bot's fix commit (carries both claude[bot]'s signoff and mine — proper chain-of-trust for the maintainer accepting a contribution)
  • 6bdc0eba7 — Scoop fix entry
  • 8d4790df9 — original prep

Force-pushed with --force-with-lease. Note on the date: the bot bumped it to 2026-05-12, presumably because it ran the address-review pass at a moment when today-by-bot-clock was already 2026-05-12. If you tag earlier than that, edit the CHANGELOG date back before tagging.

@wheels-bot
Copy link
Copy Markdown
Contributor

wheels-bot Bot commented May 12, 2026

Wheels Bot — Reviewer B (round 1)

A's review on this SHA is accurate and not sycophantic. All four resolved findings (Homebrew link text, date, Scoop entry, section terminator) are confirmed against the diff and git log. The one remaining open finding — DCO trailers missing on bff31f981 and d971cde8e — is correctly identified by A and flagged to the maintainer. Verdict COMMENTED is consistent with the findings. Converging on changes-needed; the required fix is human-only (rebase + force-push).

Sycophancy

None detected. A used COMMENTED state rather than APPROVE, explicitly flagged the DCO gap as unresolved, and provided two concrete remediation paths. No LGTM handwaving.

False positives

None detected.

  • Homebrew link text corrected: diff shows [wheels-dev/homebrew-wheels](https://github.com/wheels-dev/homebrew-wheels) — link text and URL now match. A's claim confirmed.
  • Date bumped to 2026-05-12: diff shows # [4.0.0](...) => 2026-05-12. Confirmed.
  • Scoop Fixed entry added: diff shows the pre_install entry under Fixed. Confirmed.
  • Section terminator: diff shows removal of ---- (four dashes) and addition of --- (three dashes) at the 4.0.0 / 3.0.0 boundary. The awk pattern /^---$/ matches exactly the three-dash form. Confirmed.
  • DCO trailers: git log on the branch confirms bff31f981 ends with Co-Authored-By: and no Signed-off-by:; same for d971cde8e. Bot commit fb14fb81e carries the trailer. A's table is accurate.

Missed issues

None detected. This PR touches only CHANGELOG.md. No CFML code, no cross-engine concerns, no security surface, no tests affected.

Verdict alignment

COMMENTED is correct — approving with an open policy-compliance finding (DCO) would be wrong, and the bot correctly notes that the fix requires human action outside its rails.

Convergence

Aligned on changes-needed. A and I agree on the complete picture: the only remaining item is Signed-off-by: trailers on bff31f981 and d971cde8e. This requires a maintainer to git rebase -i and re-author those two commits with -s, then force-push to release/4.0.0. Bot-address-review cannot apply this fix (as confirmed in the previous round's address-review comment). Emitting converged-changes to signal that the consensus is clear; address-review will run but will again skip the DCO item — the human must act directly.

Copy link
Copy Markdown
Contributor

@wheels-bot wheels-bot Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wheels Bot — Reviewer A

TL;DR: This is the third-round review of the v4.0.0 CHANGELOG prep PR. All findings from rounds 1 and 2 have been resolved — including the previously-outstanding DCO trailer concern, which the maintainer addressed by force-pushing rewritten commits. The PR is clean and ready to merge to develop.


Resolved since round 2

The three commits in the current chain (8d4790df9, 6bdc0eba7, 917a5489d) all carry proper Signed-off-by: trailers:

SHA Author Subject Signed-off-by
8d4790df9 Peter Amiri chore: prep CHANGELOG for v4.0.0 GA present ✓
6bdc0eba7 Peter Amiri docs(changelog): add Fixed entry for #2603 Scoop pre_install fix present ✓
917a5489d claude[bot] docs(changelog): address Reviewer A/B consensus findings (round 1) present ✓

DCO concern is closed.

State of the CHANGELOG

All key invariants verified against CHANGELOG.md at 917a5489d:

  • Version header# [4.0.0](...) => 2026-05-12 at line 21. Date matches today; no => TBD in the file. release.yml validation at line 92 will pass. ✓
  • Section terminator — line 220 is --- (three dashes). The awk pattern /^---$/ in release.yml terminates correctly before the 3.0.0 block. ✓
  • Homebrew link text — line 104 reads [wheels-dev/homebrew-wheels](https://github.com/wheels-dev/homebrew-wheels). Link text now matches the URL target. ✓
  • Scoop Fixed entry — present at line 163, accurately describes the pre_install ordering fix from #2603. ✓
  • PR count + contributors — updated to 260+ merged PRs, @MukundaKatta added. ✓

Minor note (no action needed)

The bot commit's message body contains a "Not addressed" section that references old SHAs (bff31f981, d971cde8e) — the ones from before the force-push. Those SHAs no longer exist in the branch history; the current commits carry the trailers. The message is a historical artifact and has no effect on merge correctness.


No Correctness, Cross-engine, Security, or Test concerns — this PR touches only CHANGELOG.md.

@wheels-bot
Copy link
Copy Markdown
Contributor

wheels-bot Bot commented May 12, 2026

Wheels Bot — Address Review (round 2)

No commits needed at SHA 917a5489d. Every consensus finding from the most recent converged-changes marker (wheels-bot:converged-changes:2606:fb14fb81e15adb8c021b25c2db258401c02df517) is already resolved on the current head:

  • Homebrew link text — applied in round 1; CHANGELOG.md:104 reads [`wheels-dev/homebrew-wheels`](https://github.com/wheels-dev/homebrew-wheels). ✓
  • Tag-day date bump — applied in round 1; CHANGELOG.md:21 reads => 2026-05-12. ✓
  • DCO Signed-off-by: trailers on the two human-authored commits — the round-1 comment flagged this as out-of-scope for the bot (force-push forbidden by the rails). The maintainer addressed it manually via git rebase --signoff + --force-with-lease. Verified locally with git log --format='%(trailers:only)' HEAD~3..HEAD:
    • 8d4790df9 (was bff31f981) — Signed-off-by: Peter Amiri <peter@alurium.com> present ✓
    • 6bdc0eba7 (was d971cde8e) — Signed-off-by: Peter Amiri <peter@alurium.com> present ✓
    • 917a5489d (was fb14fb81e) — Signed-off-by: claude[bot] + Signed-off-by: Peter Amiri both present ✓

Reviewer A's latest review at this SHA (05:24:08Z) is APPROVED and explicitly closes the DCO concern. There is no remaining consensus finding for address-review to act on, so no commit is being pushed and the round-2 marker is recorded here.

Convergence loop will close once Reviewer B confirms alignment on approve at SHA 917a5489d (or the outer-loop cap is reached).

@wheels-bot
Copy link
Copy Markdown
Contributor

wheels-bot Bot commented May 12, 2026

Wheels Bot — Reviewer B (round 1)

A's review is accurate, thorough, and not sycophantic. All invariants A verified (DCO trailers, version header, section terminator, Homebrew link text, Scoop Fixed entry) check out against the diff and git log. The APPROVED verdict is correct — every prior finding is resolved. Converging on approve.

Sycophancy

None detected. A verified each invariant with specific line numbers and SHA citations rather than a blanket LGTM, and explicitly flagged the historical-SHAs artifact in the bot commit's message body — a mark of thoroughness, not rubber-stamping.

False positives

None detected.

  • DCO trailers: git show confirms all three commits carry Signed-off-by: trailers. 8d4790df9 and 6bdc0eba7 both end with Signed-off-by: Peter Amiri; 917a5489d carries both claude[bot] and Peter Amiri trailers. A's table is accurate.
  • Version header at line 21: diff hunk @@ -18,9 +18,9 @@ places the ## [Unreleased]# [4.0.0](...) => 2026-05-12 substitution at line 21 in the new file. Confirmed.
  • Homebrew link text at line 104: Distribution section added at @@ -100,6 +100,12 @@; the macOS bullet is the first item under the heading, landing at line 104 in the new file. Text reads [wheels-dev/homebrew-wheels](https://github.com/wheels-dev/homebrew-wheels) — text and URL match. Confirmed.
  • Scoop Fixed entry at line 163: @@ -154,6 +160,7 @@ places the new entry at line 163 in the new file (after blank + ### Fixed + blank). Content accurately describes the pre_install ordering fix. Confirmed.
  • Section terminator: @@ -210,7 +217,7 @@ shows ---- removed and --- added at the 4.0.0/3.0.0 boundary. Matches the awk pattern /^---$/ in release.yml. Confirmed.

Missed issues

None detected. This PR touches only CHANGELOG.md. No CFML code, no cross-engine surface, no tests, no security concerns. Commit messages all conform to commitlint.config.js (chore:, docs(changelog): types, subjects under 100 chars, not ALL-CAPS).

Verdict alignment

APPROVED is consistent with the findings — all prior findings are resolved, no new issues surfaced, and the file is mechanically correct for the release.yml extraction pipeline.

Convergence

Aligned, no changes needed. A and I agree the PR is clean and ready to merge to develop. The historical-SHAs note in 917a5489d's commit body is cosmetic and has no effect on correctness or the DCO check. The maintainer should verify the date marker before tagging if the FF-merge slides past 2026-05-12, as A's review already notes — that is a process reminder, not a blocker.

@bpamiri bpamiri merged commit 3914c90 into develop May 12, 2026
6 checks passed
@bpamiri bpamiri deleted the release/4.0.0 branch May 12, 2026 05:31
@bpamiri bpamiri mentioned this pull request May 12, 2026
13 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant