Version Packages (alpha)#2375
Conversation
| "changesets": [ | ||
| "abort-handlers-on-close", | ||
| "add-connect-prior", | ||
| "add-consumer-sse-e2e", | ||
| "add-core-public-package", | ||
| "add-e2e-test-suite", | ||
| "add-fastify-middleware", | ||
| "add-hono-peer-dep", | ||
| "add-request-state-codec", | ||
| "add-resource-size-field", | ||
| "add-sdk-http-error", | ||
| "add-server-legacy-package", | ||
| "add-version-negotiation-option", | ||
| "auth-dcr-hygiene", |
There was a problem hiding this comment.
🔴 This release versions the changesets from #2286 (1823aae) but none of them declare @modelcontextprotocol/core, so packages/core stays at 2.0.0-alpha.1 and is not republished even though that commit changed core's public surface (removed the RequestMetaEnvelopeSchema export, added the SubscriptionFilter/SubscriptionsListen* schema exports) and core only bundles @modelcontextprotocol/core-internal as a devDependency, so its bundled schemas will diverge from client/server@2.0.0-alpha.4. Add a changeset on main declaring @modelcontextprotocol/core (e.g. major) so this auto-generated release PR is regenerated with a core bump before merging.
Extended reasoning...
What the bug is. This Version Packages PR consumes the ~70 changesets added by #2286 (commit 1823aae), bumping client/server/middleware to 2.0.0-alpha.4, codemod to alpha.2, and core-internal to alpha.3. However, none of those changesets declare @modelcontextprotocol/core. Changesets therefore produces no bump for it: packages/core/package.json and packages/core/CHANGELOG.md are absent from this PR's changed files, and changeset publish will skip core because its version (2.0.0-alpha.1) is unchanged on the registry.
Why core actually needs a bump. Commit 1823aae is not neutral toward core's published surface:
packages/core/src/index.tswas modified by that commit — it removes the publicRequestMetaEnvelopeSchemaexport (a breaking removal) and adds seven new exports (SubscriptionFilterSchema, theSubscriptionsListen*request/result schemas, and theSubscriptionsAcknowledged*notification schemas).@modelcontextprotocol/corelists@modelcontextprotocol/core-internalonly as a devDependency (it is bundled at build time), so changesets'updateInternalDependenciespropagation cannot carry the core-internal major bump (strictEmptyResultSchema, requiredCallToolResult.content, re-scopedspecTypeSchemas) into core either.
Why nothing else prevents it. The only changeset that has ever named @modelcontextprotocol/core is add-core-public-package, which was already consumed in the previous release (it produced core@2.0.0-alpha.1 and appears in pre.json as a pre-existing entry, not one added here). .changeset/config.json has no fixed/linked groups containing core and core is not in the ignore list, and core is publishable (access: public, no private flag) — so the omission is simply a missing changeset, not an intentional exclusion.
Step-by-step impact after merging this PR as-is. (1) The release publishes @modelcontextprotocol/client@2.0.0-alpha.4 and @modelcontextprotocol/server@2.0.0-alpha.4, whose wire behavior reflects the per-era codec split (e.g. CallToolResult.content now required, EmptyResultSchema strict). (2) @modelcontextprotocol/core remains 2.0.0-alpha.1 on npm, built from the pre-#2286 sources: it still exports RequestMetaEnvelopeSchema, lacks the new Subscriptions*/SubscriptionFilter schemas, and its bundled core-internal schemas still default content: [] and accept resultType on neutral results. (3) A consumer that follows the codemod guidance from #2354 — importing canonical Zod schemas from @modelcontextprotocol/core while running client/server at alpha.4 — gets schemas that disagree with what the alpha.4 client/server actually accept or emit on the wire. (4) The breaking removal of RequestMetaEnvelopeSchema ships in source but is recorded in no CHANGELOG and never reaches npm, so when core is eventually bumped the removal will appear without the changelog trail.
How to fix. Since this PR is auto-generated by the Changesets action, the fix lands on main: add a changeset declaring @modelcontextprotocol/core (major, given the export removal and the bundled wire-schema breaks; minor at minimum) describing the removed RequestMetaEnvelopeSchema export and the new subscription schema exports. The action will then regenerate this release PR with @modelcontextprotocol/core@2.0.0-alpha.2 (or the appropriate pre-version) included, keeping the published package set mutually consistent. This release PR should not be merged until that changeset is in place.
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and publish to npm yourself or setup this action to publish automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
mainis currently in pre mode so this branch has prereleases rather than normal releases. If you want to exit prereleases, runchangeset pre exitonmain.Releases
@modelcontextprotocol/client@2.0.0-alpha.4
@modelcontextprotocol/server@2.0.0-alpha.4
@modelcontextprotocol/express@2.0.0-alpha.4
@modelcontextprotocol/fastify@2.0.0-alpha.4
@modelcontextprotocol/hono@2.0.0-alpha.4
@modelcontextprotocol/node@2.0.0-alpha.4
@modelcontextprotocol/server-legacy@2.0.0-alpha.4
@modelcontextprotocol/codemod@2.0.0-alpha.2
@modelcontextprotocol/core-internal@2.0.0-alpha.3