Skip to content

release: v4.7.2 - #209

Merged
kevintseng merged 2 commits into
mainfrom
release/v4.7.2
Aug 24, 2026
Merged

release: v4.7.2#209
kevintseng merged 2 commits into
mainfrom
release/v4.7.2

Conversation

@kevintseng

Copy link
Copy Markdown
Contributor

Version bump + release notes for 4.7.2. Nothing else — no behaviour change lands in this PR.

Version anchors

All eight bumped together and verified by check-version-coherence:

  package.json: 4.7.2
  .claude-plugin/plugin.json: 4.7.2
  package-lock.json version: 4.7.2
  package-lock.json packages[""].version: 4.7.2
  .claude-plugin/marketplace.json plugins[].version: [4.7.2]
  CHANGELOG.md has [4.7.2] section: YES
  docs/ARCHITECTURE.md **Version**: 4.7.2
  docs/api/API_REFERENCE.md **Version**: 4.7.2
✓ All version sources agree.

The CHANGELOG needed more than a heading change

Four PRs merged since 4.7.1 and only two of them had entries. #203 — the largest at 83 files, with twelve user-facing fixes — was absent entirely, as was #206's README parity work. A release note that omits the biggest thing in the release is worse than a short one, so those were written from the commit messages rather than the PR titles.

Deliberately not listed: #204 (CodeQL alerts in a test file and a build script) and #205 (a Windows test-cleanup race). Neither is reachable by an installed user, and listing a fix for something they never experienced reads as a defect they should worry about.

Also in this PR: the two translated READMEs

Structurally complete since #206, but they still read as English wearing another language's words — em-dash clauses carried over verbatim, stacked modifiers, single sentences running four clauses deep. Rewritten, not re-translated; two paragraphs that were pretending to be lists became lists.

German lexical fixes: verdrahteteingerichtet, die Constraintdie Einschränkung. Speicher deliberately left alone at all 19 sites — a terminology swap is a native speaker's call, not something to slip into a release commit.

Pre-release checks

npm run verify:release                 exit=0
  ✓ Every documented claim matches the code.
  ✓ Every hit is triaged; every detector saw a non-empty candidate set.
  ✓ consumer install has no high-or-worse advisories

node scripts/run-tests-isolated.mjs    exit=0
  Test Files  188 passed (188)
       Tests  2592 passed (2592)

npm run test:packaged                  exit=0
  tarball installs outside the repo, opens a database, and completes an
  MCP initialize/list/remember/recall exchange

npm pack --dry-run    308 files, 752.8 kB packed / 2.9 MB unpacked
                      no .env, credentials, keys, internal docs or plans

Three-way README structure verified identical: 19 ##, 15 ###, 30 code fences. No simplified-Chinese characters.

After merge, npm run release:finish creates the tag and GitHub Release in one call, which triggers publish-npm.yml.

Eight version anchors bumped together, CHANGELOG's [Unreleased] section
closed as [4.7.2].

The CHANGELOG needed more than a heading change. Four PRs merged since
4.7.1 and only two of them (#207, #208) had entries — #203's twelve
user-facing fixes, the largest of the four at 83 files, were absent
entirely, as was #206's README parity work. A release note that omits
the biggest thing in the release is worse than a short one. Written from
the commit messages, not from the PR titles.

Deliberately NOT listed: #204 (CodeQL alerts in a test file and a build
script) and #205 (a Windows test-cleanup race). Neither is reachable by
an installed user, and listing a fix for something they never
experienced reads as a defect they should worry about — the mistake the
v4.6.0 notes made.

  node scripts/check-version-coherence.mjs   exit=0, all 8 agree
  node scripts/run-tests-isolated.mjs        exit=0
    Test Files  188 passed (188)
         Tests  2592 passed (2592)
  node scripts/check-doc-claims.mjs          exit=0
…uages

Both translations were structurally complete after #206 but still read as
English wearing another language's words: em-dash clauses carried over
verbatim, stacked modifiers, and single sentences running four clauses deep.
That fails the project's own plain-language bar, which assumes a reader
without a university degree and asks for short sentences over nested ones.

Rewritten, not re-translated. The three-part 'what it does' paragraph and the
'repeats work' paragraph became lists in both languages, because that is what
those sentences were pretending to be.

German lexical fixes: 'verdrahtet' (a literal rendering of 'wired') to
'eingerichtet', and 'die Constraint' to 'die Einschränkung'.

NOT changed: 'Speicher' stays, all 19 occurrences. 'Gedächtnis' is arguably
the better word for memory-as-recollection, but the file has already settled
on the anglicism 'Memories' (21 uses) with 'Speicher' as the mass noun, and a
19-site terminology swap is a decision a native speaker should make, not one I
should slip into a release commit.

  three-way structure: 19 '##', 15 '###', 30 code fences — identical
  node scripts/check-doc-claims.mjs   exit=0
  no simplified-Chinese characters
@kevintseng
kevintseng merged commit b939e9e into main Aug 24, 2026
13 checks passed
@kevintseng
kevintseng deleted the release/v4.7.2 branch August 24, 2026 12:08
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