* [CI] Matrix the conformance jobs over both spec revisions Runs server/client conformance against both 2025-11-25 and 2026-07-28, each against its own endpoint and baseline. PR pipeline pins an exact conformance package version; conformance-weekly tracks the moving target on both dist-tags. * [CI] Run the draft conformance suite from the alpha package The conformance repo now ships 2026-07-28 scenarios on its alpha dist-tag, so the draft targets no longer need a local checkout. Pinned to the same version the pipeline runs. * [CI] Baseline the failures --suite all newly exposes The old workflow ran without --suite all/--spec-version, so several pre-existing gaps never surfaced in CI. Now that both revisions run the full suite: - server: json-schema-2020-12 and resources-templates-read are fixture bugs shared by both revisions; 2026-07-28 also needs resources/subscribe and resources/unsubscribe declared removed under the stateless wire, which the server doesn't yet do - client: the example client doesn't call add_numbers or echo back a tool's inputSchema; against 2026-07-28 it doesn't speak the lifecycle or OAuth at all yet, so every such scenario fails Verified locally: all four conformance jobs (server/client x 2025-11-25/2026-07-28) pass against these baselines.
67 lines
2.7 KiB
YAML
67 lines
2.7 KiB
YAML
# Expected conformance failures for spec revision 2026-07-28.
|
|
#
|
|
# Separate from conformance-baseline.yml because the two revisions exercise
|
|
# different lifecycles against different endpoints: the dated baseline covers
|
|
# the handshake era served at /, this one covers the modern (SEP-2575) era
|
|
# served at /stateless.
|
|
#
|
|
# Entries are per-check (scenario:check-id) rather than whole scenarios, so a
|
|
# scenario that is mostly conformant keeps reporting the parts that work and a
|
|
# new regression inside it still fails the run.
|
|
#
|
|
# Run with:
|
|
# make conformance-draft-server
|
|
|
|
server:
|
|
# --- Pre-existing, not lifecycle-specific ----------------------------------
|
|
# Neither is caused by (or fixable in) the modern lifecycle; both reproduce
|
|
# on the handshake endpoint. Listed so the draft run is honest.
|
|
#
|
|
# json-schema-2020-12 wants a `json_schema_2020_12_tool` fixture that neither
|
|
# conformance server defines, so the scenario has nothing to exercise.
|
|
# resources-templates-read is the single remaining wire-schema failure: the
|
|
# fixture emits a resource-template URI in a shape the schema rejects, on
|
|
# both revisions.
|
|
- json-schema-2020-12:json-schema-2020-12-tool-found
|
|
- resources-templates-read:wire-schema-valid
|
|
|
|
# The client does not speak 2026-07-28 at all yet: it still opens with
|
|
# `initialize` regardless of revision, so it never reaches the stateless wire
|
|
# (no per-request `_meta`, no Mcp-Method/Mcp-Name headers, no client-side
|
|
# requestState) — and separately, the SDK ships no OAuth client, so every
|
|
# scenario driving an authorization flow has nothing to exercise.
|
|
client:
|
|
- request-metadata
|
|
- http-standard-headers
|
|
- http-custom-headers
|
|
- http-invalid-tool-headers:sep-2243-invalid-tool-tools-list-gate
|
|
- http-invalid-tool-headers:sep-2243-client-reject-invalid-tool
|
|
- sep-2322-client-request-state
|
|
- tools_call:tool-add-numbers
|
|
- json-schema-2020-12-preservation:json-schema-2020-12-client-tool-found
|
|
- json-schema-2020-12-preservation:json-schema-2020-12-client-echo-completed
|
|
|
|
- auth/metadata-default
|
|
- auth/metadata-var1
|
|
- auth/metadata-var2
|
|
- auth/metadata-var3
|
|
- auth/metadata-issuer-mismatch
|
|
- auth/basic-cimd
|
|
- auth/pre-registration
|
|
- auth/scope-from-www-authenticate
|
|
- auth/scope-from-scopes-supported
|
|
- auth/scope-omitted-when-undefined
|
|
- auth/scope-step-up
|
|
- auth/scope-retry-limit
|
|
- auth/token-endpoint-auth-basic
|
|
- auth/token-endpoint-auth-post
|
|
- auth/token-endpoint-auth-none
|
|
- auth/offline-access-scope
|
|
- auth/offline-access-not-supported
|
|
- auth/authorization-server-migration:sep-2352-reregister-on-as-change
|
|
- auth/iss-supported
|
|
- auth/iss-not-advertised
|
|
- auth/iss-supported-missing
|
|
- auth/iss-wrong-issuer
|
|
- auth/iss-unexpected
|
|
- auth/iss-normalized
|