Skip to content

[Client][Server] Negotiate 2026-07-28 across both eras on stdio and HTTP - #537

Open
chr-hertel wants to merge 12 commits into
mainfrom
default-spec-version
Open

chr-hertel wants to merge 12 commits into
mainfrom
default-spec-version

Conversation

@chr-hertel

@chr-hertel chr-hertel commented Oct 6, 2026 •

Copy link
Copy Markdown
Member

Defaults the client to 2026-07-28 and lets one client or server speak both eras on stdio and HTTP, following the backward compatibility rules of the spec.

  • Client probes with server/discover and falls back to initialize on 2025-11-25 unless the server proves to be modern - setFallbackProtocolVersion() picks the revision, null makes it modern-only
  • StdioTransport settles the era on the client's first request and serves 2026-07-28 incl. subscriptions/listen and notifications/cancelled
  • Refusals come back fast: request id on the missing-session error, -32022 naming the revisions on a bare initialize, HTTP error statuses and a dead stdio process fail the request at once
  • On a modern connection setLoggingLevel() rides on every request, ping() uses server/discover and the roots notification is skipped

[BC Break] A default client against a dual-era server now lands on 2026-07-28, so sampling and roots are gone there - pin setProtocolVersion(ProtocolVersion::V2025_11_25) to keep them.

Server conformance runs at 100% locally for both revisions, client baselines pass.

@chr-hertel chr-hertel changed the title [Client] Default to protocol version 2026-07-28 [Client][Server] Negotiate 2026-07-28 across both eras on stdio and HTTP Oct 6, 2026
@chr-hertel
chr-hertel marked this pull request as ready for review October 6, 2026 23:04
@chr-hertel chr-hertel added breaking change Breaking the Backwards Compatibility Promise Server Issues & PRs related to the Server component Client Issues & PRs related to the Client component improves spec compliance Improves consistency with other SDKs such as TyepScript 2026-07-28 All issues and PRs related to the spec release 2026-07-28 labels Oct 6, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

2026-07-28 All issues and PRs related to the spec release 2026-07-28 breaking change Breaking the Backwards Compatibility Promise Client Issues & PRs related to the Client component improves spec compliance Improves consistency with other SDKs such as TyepScript Server Issues & PRs related to the Server component

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant