| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Sorry, something went wrong.
⚠️ No Changeset foundLatest commit: 584913e Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset. This PR includes no changesetsWhen changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types Click here to learn what changesets are, and how to add one. Click here if you're a maintainer who wants to add a changeset to this PR |
Sorry, something went wrong.
|
@modelcontextprotocol/client
npm i https://pkg.pr.new/modelcontextprotocol/typescript-sdk/@modelcontextprotocol/client@2281
npm i https://pkg.pr.new/modelcontextprotocol/typescript-sdk/@modelcontextprotocol/codemod@2281
npm i https://pkg.pr.new/modelcontextprotocol/typescript-sdk/@modelcontextprotocol/server@2281
npm i https://pkg.pr.new/modelcontextprotocol/typescript-sdk/@modelcontextprotocol/server-legacy@2281
npm i https://pkg.pr.new/modelcontextprotocol/typescript-sdk/@modelcontextprotocol/express@2281
npm i https://pkg.pr.new/modelcontextprotocol/typescript-sdk/@modelcontextprotocol/fastify@2281
npm i https://pkg.pr.new/modelcontextprotocol/typescript-sdk/@modelcontextprotocol/hono@2281
npm i https://pkg.pr.new/modelcontextprotocol/typescript-sdk/@modelcontextprotocol/node@2281 commit: 584913e |
Sorry, something went wrong.
Pin the literal values of ProtocolErrorCode/SdkErrorCode, the error class shapes (name/code/data duck typing, fromError materialization), protocol version constants, and the strict/strip/loose line each wire schema draws. A change to any of these is consumer-visible; these tests turn accidental drift into a CI failure that must be acknowledged in the same PR.
Pin every public package's name, export-map keys, ESM-only conditions, files, and bin entries, plus the private flags on core and the workspace root. The package set itself is pinned via a directory scan: the pnpm workspace glob auto-adopts new directories and changesets publishes any non-private package, so an unpinned addition would ship to npm silently.
Pin DEFAULT_INHERITED_ENV_VARS against a frozen copy and pin the filtering behavior of getDefaultEnvironment (only set safelist keys are inherited, shell-function values are skipped). The structural comparison is required: the behavioral test alone cannot catch a widened safelist, because unset variables never appear in the output and sensitive variables are exactly the ones typically unset in CI.
Document what a pin is, what to do when one goes red (update in the same PR, changeset if consumer-facing, migration docs where applicable), where the pins live, and how to write one that actually pins (frozen literals, one-time mutation check).
… the stdio env safelist (#2281)
… the stdio env safelist (#2281)
| Back | FazBrowse Home | New Git URL |
Pins four behavior surfaces as tests so accidental drift fails CI: the wire error-code tables and version constants, the strict/strip/loose line each wire schema draws, the published package set and export maps, and the stdio environment-inheritance safelist. Tests and docs only — zero source changes.
Motivation and Context
Ahead of the 2026-07-28 revision work, surface moves should be deliberate, not silent: the regular suite verifies features work, but it stays green through error-code remaps, schema strictness flips, and export-map changes. A red pin doesn't mean a change is forbidden — it means the change is surface-visible: update the pin in the same PR, with a changeset where consumer-facing. The maintenance protocol lives in docs/behavior-surface-pins.md.
This is a focused port of the inventory from #2258/#2262 (closed, v1.x-based), cut down to the four surfaces where accidental drift is both plausible and expensive. Earlier revisions of this branch pinned much more — protocol runtime details, OAuth message text, shutdown timing, and a few known bugs pinned as-is. That long tail cost more in maintenance than it protected against and is dropped; the known bugs are filed as #2283 and #2284 instead of frozen as behavior.
How Has This Been Tested?
71 assertions across 4 test files, all green against the unchanged source tree. Each structural pin was mutation-checked: widening DEFAULT_INHERITED_ENV_VARS with an unset variable, adding an unlisted workspace package, adding an export-map key, and renumbering an error code each turn the relevant pin red.
Breaking Changes
None. Tests and documentation only.
Types of changes
Checklist
Additional context
Two construction notes, both consequences of mutation-checking the pins: