fix(mcp): pin the launcher to a build that carries the secret policy (WALM-685) - #998
Merged
Merged
Conversation
…(WALM-685) The plugin's `mcpPackageVersion` pinned `0.0.14-dev.2`, whose published `dist/` has 14 modules and no `consent.js`, `memory-policy.js`, `auto-save.js` or `health-probe.js` — it was published before the WALM-642 merge. The repository's default branch is `dev`, so `claude plugin marketplace add MystenLabs/MemWal` installs this plugin today, and every such install ran an MCP server without the WALM-642 secret filtering and consent gate. That is live now, not a future-release problem (Harry). `0.0.14-dev.6` is complete (18 modules, matching `src`), and its `dist/` is byte-identical to the `0.0.14` release; the two tarballs differ only in the version string in package.json. So this pin installs exactly the released code. Why a prerelease rather than `0.0.14` itself: the release verifier requires the override to be a prerelease and to be dropped once the release is on npm, while `trusted-launcher.test.mjs` requires the field to be present. Only a prerelease satisfies both. `dev.6` does, and it is also what npm's `dev` dist-tag points at, so `check:mcp-pin` passes without a warning. Reconciling those two rules is left for a separate change. Verified: check:mcp-pin OK, verify-manual-sdk-release passes, the launcher resolves 0.0.14-dev.6, MCP suite 304 pass.
harrymove-ctrl
approved these changes
Sep 24, 2026
harrymove-ctrl
left a comment
Collaborator
There was a problem hiding this comment.
Approved. Bumps mcpPackageVersion to published 0.0.14-dev.6 carrying the secret policy. CI is green.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Part of WALM-685 (MW-06). Harry's review of the triage flagged this as live, so it ships on its own instead of waiting for a release.
What was wrong
The plugin pins
mcpPackageVersion=0.0.14-dev.2. That published build'sdist/has noconsent.js,memory-policy.js,auto-save.jsorhealth-probe.js. It was published before the WALM-642 merge landed.The repo's default branch is
dev, soclaude plugin marketplace add MystenLabs/MemWalinstalls this plugin today. Every such install runs an MCP server without the WALM-642 secret filtering and consent gate, even thoughdev's source has both.The fix
One line: pin
0.0.14-dev.6.src.dist/is byte-identical to the0.0.14release. The tarballs differ only inpackage.json's version string, whiledev.2differs from them by 570 lines. So this installs exactly the released code.Why not pin
0.0.14directlyThe repo's own checks disagree, and only a prerelease satisfies both:
trusted-launcher.test.mjsrequiresmcpPackageVersionto be present, set to the release or a prerelease of it.scripts/verify-manual-sdk-release.mjsrequires it to be a prerelease, and says to drop it once the release is on npm.0.0.14fails the verifier; dropping the field fails the test.dev.6passes both, and it's what npm'sdevdist-tag points at, socheck:mcp-pinpasses with no warning. Fixing that contradiction is a separate change.A correction to what I said on #986 and WALM-679
I wrote that MW-05's launcher fix "is not in any published build yet", which implied it needs an npm release. It doesn't. The npm package ships only
dist/andREADME.md, and the launcher lives inplugin/scripts/, which reaches users with the plugin from the repo. #986 takes effect for marketplace installs as soon as it merges todev. No rc needed for it.Verification
pnpm check:mcp-pin→OK: … 0.0.14-dev.6 is published and matches the "dev" dist-tagscripts/verify-manual-sdk-release.mjspassespinnedVersion()resolves0.0.14-dev.6Still worth doing
Harry's third item: teach the release verifier to compare published
dist/againstsrc. It only checks version strings, which is howdev.2shipped incomplete without tripping anything.