From a86d2a2b4802d91beb3da1d942c5d7be33464f66 Mon Sep 17 00:00:00 2001 From: Robert Sweet Date: Sun, 2 Aug 2026 07:33:41 -0400 Subject: [PATCH] docs(changelog): record the version-guard CHANGELOG-heading requirement MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit #117 added a hard gate — a version bump whose version has no matching "## [X.Y.Z]" heading in CHANGELOG.md now fails the PR — but shipped with no changelog entry of its own, so the guard that exists to stop undocumented releases was itself undocumented. Files it under [Unreleased] > Added, matching how the previous version-guard change (the src/**/*.ts bundle-only exemption) was recorded. Docs-only: .github/ does not ship and CHANGELOG.md is not shipped bytes, so no version bump is owed. --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a6526e2..bca906b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ ## [Unreleased] +### Added +- **`version-guard` now requires every version bump to be documented under a real `## [X.Y.Z]` CHANGELOG heading.** The guard already refused a bump to a version that was already on npm, but it never checked that the new version was described anywhere. Notes parked under `## [Unreleased]` are orphaned the moment the release ships: nothing in the release path renames that section — the `version` lifecycle script only syncs the plugin manifests — so the published version goes out undocumented while its release notes sit under a heading still claiming they are unreleased. **This repo is where that actually happened**: 2.6.10 and 2.6.11 both shipped with their notes stranded under `## [Unreleased]`, and were only filed under real headings retroactively. A bump whose version has no matching heading now hard-fails the PR, with an error naming the heading to add. Keep an empty `## [Unreleased]` at the top regardless — `dependabot-rebuild.yml` hard-exits without that marker, and since it already inserts a real heading, bot PRs pass unchanged. The guard file lives in `.github/`, which does not ship, so this owes no version bump. Matches apple-mail-mcp#124, keeping the guard identical across the four servers. (#117) + ## [2.6.12] - 2026-08-01 ### Fixed