You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Make 2026-07-28 a real version the SDK can speak alongside every prior one: per-instance version knobs, the era classifier, and per-request _meta validation on the server. This is where the stateless server-side obligations land.
What's in it
Per-instance "what versions do I serve/speak" knobs (server + client); add 2026-07-28 to the negotiable set.
Era classifier + dispatch: server reads the _meta envelope (version/clientInfo/capabilities), validates it, emits the unsupported-version / missing-capability errors with typed data, and skips the legacy init gate for modern traffic.
Era-gate everything removed from core for modern peers: ping, logging/setLevel, roots/list_changed, the tasks surface, the URL-elicitation-required error.
(no scenario passes on this alone — it's the foundation the others stand on)
Together with New HTTP serving path (modern + dual-era), Capabilities API + server/discover handler, subscriptions/listen, Context object (layered, per-request): server-stateless
Tracks: #2803
Make 2026-07-28 a real version the SDK can speak alongside every prior one: per-instance version knobs, the era classifier, and per-request
_metavalidation on the server. This is where the stateless server-side obligations land.What's in it
_metaenvelope (version/clientInfo/capabilities), validates it, emits the unsupported-version / missing-capability errors with typed data, and skips the legacy init gate for modern traffic.ping,logging/setLevel,roots/list_changed, the tasks surface, the URL-elicitation-required error.resultTypestamped on every modern result (the strip-for-legacy half is already in Protocol types for 2026-07-28: superset monolith, committed per-version packages, and wire-method maps #2849).Conformance
server-statelessrequest-metadataDependencies
References