Repository navigation
Conversation
🦋 Changeset detectedLatest commit: ac4d4df The changes in this PR will be included in the next version bump. This PR includes changesets to release 6 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
@modelcontextprotocol/client
@modelcontextprotocol/codemod
@modelcontextprotocol/core
@modelcontextprotocol/server
@modelcontextprotocol/server-legacy
@modelcontextprotocol/express
@modelcontextprotocol/fastify
@modelcontextprotocol/hono
@modelcontextprotocol/node
commit: |
|
Confirmed the bug and the fix. On main, the four new fragment-expansion tests fail (4 failed | 39 passed in uriTemplate.test.ts) because the old regex at uriTemplate.ts:233 captured the |
|
Hi maintainers, could someone take a look at this PR when you have a chance? It fixes URI template matching so the |
Problem
On current
main(43c45f4),UriTemplate.match()treats fragment expressions like reserved expansions. This includes the fragment delimiter in the captured variable and accepts a value without the delimiter.Resource template routing passes these captured variables to resource handlers, so a handler receives the wrong section identifier.
Change
Give the fragment operator its own pattern, with
#outside the capture group. Allow an empty fragment value, matching the existing expansion of an empty string to#. Keep reserved expansion matching unchanged.Includes five test cases and a patch changeset. This is a small bug fix under the contribution guide's straightforward-fix exception.
Validation
git diff --checkpassed.node --import tsx scripts/sync-snippets.ts --check; the normal tsx CLI launcher cannot open its IPC pipe in this environment.Fragment expansion behavior is documented in RFC 6570 §3.2.4. This change only fixes the matching of the delimiter; it does not change expansion or general decoding behavior.
AI-assisted implementation and test execution.