| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
…ntextprotocol#1721) The server unconditionally stamped resultType, ttlMs, and cacheScope on every JSON-RPC result, which are exclusive to the 2026-07-28 revision. Strict 2025-11-25 clients (such as MCP Inspector 1.0.0) reject these unrecognized keys and fail the handshake. Every stamping site is now gated on the negotiated (or per-request) protocol version: - SetHandler and SetWithAlternateHandler only stamp resultType, ttlMs, and cacheScope when the request is 2026-07-28 or later. - InitializeResult no longer hardcodes resultType (the initialize handshake only ever negotiates 2025-11-25 or earlier). - The default logging/setLevel handler returns a fresh EmptyResult instead of the shared, pre-stamped EmptyResult.Instance, so this legacy method no longer leaks resultType to down-level clients. Added Core and raw HTTP wire regression tests, and updated existing down-level assertions accordingly. Copilot-Session: 80653343-5dcb-43cb-89b0-8ac8e572c4f7
There was a problem hiding this comment.
Custom handlers and filters can still explicitly set resultType or cache hints for legacy requests, producing invalid wire shapes. I filed #1754 to decide whether we should reject, warn and strip, or silently strip those values. This shouldn’t block this release fix.
Sorry, something went wrong.
| Back | FazBrowse Home | New Git URL |
Fixes #1721.
The server unconditionally stamped resultType, ttlMs, and cacheScope on every JSON-RPC result. These fields are exclusive to the 2026-07-28 revision, so strict 2025-11-25 clients (such as MCP Inspector 1.0.0) reject them as unrecognized keys and fail the handshake.
This change gates every stamping site on the negotiated (or per-request) protocol version:
The 2026-07-28-only paths (server/discover, subscriptions/listen, and the Tasks extension) keep stamping these fields as required by the spec.
Testing