Skip to content

Commit 1379c37

Browse files
committed
Retire three redundant interaction-manifest entries; era-bound a fourth
client-transport:http:protocol-version-stored and transport:streamable-http:origin-validation were second labels on assertions their tests already pin under client-transport:http:protocol-version-header and hosting:http:dns-rebinding respectively (decorators removed, tests kept). lifecycle:stateless:no-initialize described a pin API that no longer exists, deferred against coverage that does not exist, and bound no tests. transport:streamable-http:server-to-client is NOT deleted: the underlying behaviour is real 2025-era wire truth that 2026 forbids (SEP-2322), so it gets removed_in="2026-07-28" with the supersession note; the MRTR successor link lands with the era pass. Cells unchanged (830 before and after).
1 parent 437da68 commit 1379c37

3 files changed

Lines changed: 5 additions & 26 deletions

File tree

‎tests/interaction/_requirements.py‎

Lines changed: 5 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -359,15 +359,6 @@ def __post_init__(self) -> None:
359359
),
360360
added_in="2026-07-28",
361361
),
362-
"lifecycle:stateless:no-initialize": Requirement(
363-
source=f"{SPEC_2026_BASE_URL}/basic/lifecycle#stateless-operation",
364-
behavior=(
365-
"A ClientSession pinned to 2026-07-28 is born initialized: initialize() is idempotent "
366-
"and returns the synthesized result without any frame sent."
367-
),
368-
added_in="2026-07-28",
369-
deferred="covered by a tests/client/ unit test; not observable as an interaction",
370-
),
371362
"lifecycle:stateless:caller-meta-preserved": Requirement(
372363
source=f"{SPEC_2026_BASE_URL}/basic#_meta",
373364
behavior=(
@@ -2676,7 +2667,11 @@ def __post_init__(self) -> None:
26762667
"A server-initiated request nested inside an in-flight call round-trips over stateful streamable HTTP."
26772668
),
26782669
transports=("streamable-http",),
2679-
note="Only observable over streamable HTTP: exercises stateful HTTP session callbacks.",
2670+
removed_in="2026-07-28",
2671+
note=(
2672+
"removed in 2026-07-28 (SEP-2322); server-initiated requests are forbidden on streamable HTTP, "
2673+
"replaced by MRTR input requests embedded in InputRequiredResult."
2674+
),
26802675
),
26812676
"transport:streamable-http:resumability": Requirement(
26822677
source=f"{SPEC_BASE_URL}/basic/transports#streamable-http",
@@ -2685,12 +2680,6 @@ def __post_init__(self) -> None:
26852680
removed_in="2026-07-28",
26862681
note="removed in 2026-07-28 (SEP-2575); Last-Event-ID resumability/redelivery dropped, no replacement.",
26872682
),
2688-
"transport:streamable-http:origin-validation": Requirement(
2689-
source=f"{SPEC_BASE_URL}/basic/transports#security-warning",
2690-
behavior="Requests with an invalid Origin header are rejected with 403 before reaching the session.",
2691-
transports=("streamable-http",),
2692-
note="Only observable over streamable HTTP: Origin is an HTTP header.",
2693-
),
26942683
"transport:sse": Requirement(
26952684
source=f"{SPEC_BASE_URL}/basic/transports#backwards-compatibility",
26962685
behavior=(
@@ -3509,14 +3498,6 @@ def __post_init__(self) -> None:
35093498
transports=("streamable-http",),
35103499
note="Only observable over HTTP: MCP-Protocol-Version is an HTTP header.",
35113500
),
3512-
"client-transport:http:protocol-version-stored": Requirement(
3513-
source="sdk",
3514-
behavior=(
3515-
"The client transport stores the negotiated protocol version and sends it on every subsequent request."
3516-
),
3517-
transports=("streamable-http",),
3518-
note="Only observable over HTTP: MCP-Protocol-Version is an HTTP header.",
3519-
),
35203501
"client-transport:http:reconnect-get": Requirement(
35213502
source=f"{SPEC_BASE_URL}/basic/transports#resumability-and-redelivery",
35223503
behavior=(

‎tests/interaction/transports/test_client_transport_http.py‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,6 @@ async def test_every_request_after_initialize_carries_the_issued_session_id(reco
9696
assert session_id
9797

9898

99-
@requirement("client-transport:http:protocol-version-stored")
10099
@requirement("client-transport:http:protocol-version-header")
101100
async def test_every_request_after_initialize_carries_the_negotiated_protocol_version(
102101
recorded: list[httpx2.Request],

‎tests/interaction/transports/test_hosting_http.py‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -344,7 +344,6 @@ async def read_standalone_stream() -> None:
344344

345345

346346
@requirement("hosting:http:dns-rebinding")
347-
@requirement("transport:streamable-http:origin-validation")
348347
async def test_origin_validation_rejects_disallowed_origins_when_enabled() -> None:
349348
"""A disallowed Origin returns 403 (and Host 421) with protection enabled; disabled lets both through.
350349

0 commit comments

Comments
 (0)