Skip to content

docs(changelog): 1.2.5 through 1.2.7, plus the gate that should have caught it - #24

Merged
MasterPlayspots merged 2 commits into
mainfrom
docs/changelog-1.2.5-1.2.7-und-gate
Aug 17, 2026
Merged

docs(changelog): 1.2.5 through 1.2.7, plus the gate that should have caught it#24
MasterPlayspots merged 2 commits into
mainfrom
docs/changelog-1.2.5-1.2.7-und-gate

Conversation

@MasterPlayspots

Copy link
Copy Markdown
Owner

The measured gaps

Measured 2026-08-15
Tags v1.2.3 v1.2.4 v1.2.5 v1.2.6 v1.2.7five
GitHub releases v1.2.5one
CHANGELOG ended at 1.2.4 while npm served 1.2.7
Unreleased commits on main after v1.2.7 three

Three releases shipped to npm with no changelog entry. The prepublishOnly check
was green the entire time — because it only asked whether CHANGELOG.md existed.

What this PR changes

CHANGELOG.md — entries for 1.2.5, 1.2.6 and 1.2.7, written from the commit
log rather than from memory. The tone follows 1.2.7's own release name, "honest
short descriptions".

bin/changelog-gate.js — replaces the file-exists check in prepublishOnly.
It requires a non-empty ## [<version>] section for the version being
published. This is the cause of gap 2, and it is fifty lines.

.github/workflows/release.yml — a tag now creates its own GitHub release,
using the changelog section as the release notes. Writing release notes twice
means writing them differently, and then neither is authoritative. Also accepts
workflow_dispatch with a tag name, to backfill the four missing releases.

Proven, not asserted

Case Expected Result
version present, section filled pass exit 0
version absent from CHANGELOG refuse exit 1
section present but empty refuse exit 1
npm test green green
npm audit clean 0 vulnerabilities

The gate's first draft reported a filled section as empty — rest begins with
the heading itself, so splitting on /^##\s/m put an empty string first. Fixed
and re-tested; the comment in the file records it.

🔴 Follow-up that is more urgent than this PR

4d6fb59 fix: resolve high severity npm vulnerability sits on main,
unpublished. npm still serves 1.2.7, which predates it — anyone installing
the package today gets the version without the fix. npm audit reports clean
locally, but that describes the working tree, not the published package.

It is recorded under [Unreleased]. Cutting 1.2.8 should follow directly after
this merge, so the new gate is in place for it.

Not in this PR

Six merged branch refs are still present (chore/audit-fix-2026-08-03,
chore/unblock-npm-audit, docs/changelog-1.2.3-1.2.4, docs/llms-install,
fix/surface-a11y-warnings, release/1.2.7 — PRs #17, #15, #4, #20, #18, #19).
All are genuinely merged; squash-merging makes the ancestry differ, which is why
they look unmerged. Deleting them is a separate decision.

🤖 Generated with Claude Code

…caught it

THE MEASURED GAPS
  1. Five tags exist (v1.2.3 ... v1.2.7). One GitHub release does (v1.2.5).
  2. CHANGELOG ended at 1.2.4 while npm served 1.2.7 — three releases with
     no entry.
  3. Unreleased commits sit on main after v1.2.7.

WHAT CHANGED
  CHANGELOG: 1.2.5, 1.2.6 and 1.2.7 written from the commit log, not from
  memory. Tone follows 1.2.7's own name — "honest short descriptions".

  bin/changelog-gate.js: the previous prepublishOnly check only asked whether
  CHANGELOG.md EXISTED. It did, continuously, while three versions shipped
  without an entry. A file-exists check cannot catch that; it was green the
  whole time. The new gate requires a NON-EMPTY "## [<version>]" section.

  .github/workflows/release.yml: a tag now creates its GitHub release, with the
  changelog section as the release notes. Writing release notes twice means
  writing them differently, and then neither is authoritative.

PROVEN, not asserted:
  version present + section filled  -> exit 0
  version absent from CHANGELOG     -> exit 1
  section present but empty         -> exit 1
  npm test green, npm audit: 0 vulnerabilities

CORRECTIONS to the task description:
  · It claims TWO unreleased commits after v1.2.7. There are THREE — the extra
    one is 4d6fb59 "fix: resolve high severity npm vulnerability". A security
    fix is sitting on main, unpublished; npm still serves 1.2.7 without it.
    Recorded under [Unreleased].
  · plugin.json does not exist on main, so it cannot be at 1.2.7 as claimed.
    package.json and server.json are both 1.2.7 — no drift between those two.
  · The six "orphan" branches are all genuinely merged (PRs #4, #15, #17, #18,
    #19, #20); only the refs remain. Deleting them is K4 — listed, not done.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@netlify

netlify Bot commented Aug 17, 2026

Copy link
Copy Markdown

Deploy Preview for strong-fudge-f04a16 ready!

Name Link
🔨 Latest commit 3602180
🔍 Latest deploy log https://app.netlify.com/projects/strong-fudge-f04a16/deploys/6a82cc2386e0da0008a71e3a
😎 Deploy Preview https://deploy-preview-24--strong-fudge-f04a16.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

CI was red on this PR. It is red on `main` too, for the same reason and
independently of anything in this branch: a clean `main` worktree fails
`npm ci` identically.

  npm error `npm ci` can only install packages when your package.json and
  npm error package-lock.json are in sync.
  npm error Missing: @commitlint/cli@21.2.2 from lock file
  npm error Missing: @modelcontextprotocol/sdk@1.30.0 from lock file
  npm error Missing: zod@4.4.3 from lock file
  ... 20 more

The lock file was not merely stale. It carried NO ENTRY for either runtime
dependency — @modelcontextprotocol/sdk and zod — and none for the devDependency
tree at all. It pinned nothing. Every CI job died at `npm ci` before running a
single test, which is why coverage, e2e, lint, security and all three test
matrix legs failed within 17 seconds.

Regenerated with `npm install --package-lock-only`. The resulting versions match
exactly what package.json already specifies (sdk 1.30.0, zod 4.4.3), so this
changes no dependency — it records the ones that were already chosen.

  npm ci --dry-run   passes
  npm test           green
  npm audit          0 vulnerabilities

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@MasterPlayspots
MasterPlayspots merged commit 9bce2a2 into main Aug 17, 2026
11 checks passed
@MasterPlayspots
MasterPlayspots deleted the docs/changelog-1.2.5-1.2.7-und-gate branch August 17, 2026 08:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant