-
Notifications
You must be signed in to change notification settings - Fork 3.7k
Extend the interaction suite to the 2026-07-28 spec #3018
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
maxisbey
wants to merge
27
commits into
main
Choose a base branch
from
interaction-2026-requirements
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
27 commits
Select commit
Hold shift + click to select a range
957deb2
Fix dead 2026 spec source URLs in the interaction manifest
maxisbey b591b58
Align interaction-manifest ids with the cross-SDK vocabulary
maxisbey deda5a5
Retire three redundant interaction-manifest entries; era-bound a fourth
maxisbey bcd1556
Make interaction-manifest behaviour strings match what their tests prove
maxisbey a4fd883
Model the 2025-11-25 to 2026-07-28 transition as first-class manifest…
maxisbey 0eb3d67
Add the first MRTR interaction tests: 16 tests across six files
maxisbey d38927c
Complete the MRTR core coverage: multi-round, bounds, and the 2026 di…
maxisbey 5e09c77
Cover the x-mcp-header and modern HTTP entry families: 19 tests
maxisbey 2845766
Backlog hardening: complete the push-API divergence matrix and sharpe…
maxisbey 70e3543
Cover the caching and discover-versioning families: 17 tests
maxisbey b855cc9
Cover the auth families: the RFC 9207 iss table, step-up bounds, DCR …
maxisbey 2ce02f8
Pin the pre-registered-credentials divergence and the DCR application…
maxisbey f3ac09d
Track the full deferred surface: 64 entries registered ahead of their…
maxisbey bee0c48
Complete the planned 2026-07-28 coverage: the final 27 tests
maxisbey e999c40
Link the last two pinned divergences to their tracking entries
maxisbey 48aa5a2
Re-ground the MRTR origin notes after the MCPServer pass-through landed
maxisbey 459f69f
Trim comments and docstrings to the essentials
maxisbey d8e335e
Re-pin the negative-ttl and Mcp-Param mismatch tests to the landed be…
maxisbey 3fd0aa9
Re-ground deferral premises and stale notes against the current main
maxisbey aaa7ac4
Rewrite the unrecognized-resultType pin onto the extension seam; simp…
maxisbey 9f88fa9
Reconcile with the hardened dual-era stream loop
maxisbey fd0602f
Reconcile the interaction suite with main's httpx2 rename and re-driv…
maxisbey 946c056
Adopt the serverInfo _meta stamp fixture across the interaction suite
maxisbey 7e0a172
Re-ground every stale interaction-manifest premise against the curren…
maxisbey be9b05b
Reconcile the interaction suite manifest with main
maxisbey e3f1e4c
Close the register-echo divergence and reconcile the cancellation sui…
maxisbey 0042ad8
Close the four log-delivery divergences the per-request log-level gat…
maxisbey File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🟡 Two doc sentences are stale against the two-membered SPEC_VERSIONS at this PR's head: the README paragraph just below the rewritten TRANSPORT_SPEC_VERSIONS bullet still says "today's test IDs are byte-identical to before the era axis existed" (they are now all [transport-version]-suffixed), and the SpecVersion docstring in tests/interaction/_requirements.py:44-45 still says only one value is on the active axis "until the 2026-07-28 implementation lands" — resolved by this very PR. Both sentences predate the branch (main added the second axis entry first), so this is non-blocking; two one-line rewords fix it.
Extended reasoning...
What is stale. This PR rewrites the
TRANSPORT_SPEC_VERSIONSbullet in the README's "What admits or excludes a cell" section (lines 175-179) to reflect the current two-era matrix, but the paragraph eight lines below it (lines 187-189) still asserts: "Node IDs stay[transport]whilelen(SPEC_VERSIONS) == 1, so today's test IDs are byte-identical to before the era axis existed. They become[transport-version]the moment a second version is appended toSPEC_VERSIONS." At the PR head that "today" is false — the second version was appended long ago.\n\nWhy it is false now.tests/interaction/_requirements.py:47hasSPEC_VERSIONS = ("2025-11-25", "2026-07-28")— two members.cell_id()therefore takes its else branch and returnsf"{transport}-{version}"for every cell, and the suite's own coverage gate pins the suffixed names:test_coverage.pyasserts cells namedin-memory-2025-11-25…streamable-http-2026-07-28. Every one of the PR's 1060 collected cells carries a version suffix; none are byte-identical to the pre-era-axis ids.\n\nSecond site, same root cause. TheSpecVersiondocstring attests/interaction/_requirements.py:44-45reads: "Both values are typed even though only one is on the active axis (SPEC_VERSIONS) until the 2026-07-28 implementation lands." That sits two lines above the tuple that puts both values on the active axis — and this PR is precisely "the 2026-07-28 implementation" landing, so the docstring's "until" condition is resolved by the PR carrying it.\n\nStep-by-step proof. (1) Opentests/interaction/_requirements.pyat the PR head: line 47 isSPEC_VERSIONS: tuple[SpecVersion, ...] = ("2025-11-25", "2026-07-28"). (2)cell_id()(around line 7697) checkslen(SPEC_VERSIONS): with two members it emits{transport}-{version}. (3) Run any interaction test — the collected node id is e.g.test_foo[in-memory-2026-07-28], nottest_foo[in-memory]. (4) Read README lines 187-189: the text says today's ids are bare[transport]. A maintainer reading the exact section this PR just edited is told current node ids are unsuffixed, then runs the suite and sees[in-memory-2026-07-28].\n\nWhy nothing prevents or catches it. These are prose-only claims: no gate, test, or runtime behaviour depends on either sentence, so the suite stays green and merging breaks nothing. But the PR's own trailing reconciliation commit ("Re-ground every stale interaction-manifest premise against the current main") exists to eliminate exactly this class of staleness, and it stopped one paragraph short in the README section it touched and left the docstring in a file it rewrote wholesale.\n\nAttribution and fix. Both stale sentences predate the branch — main put 2026-07-28 on the axis before this branch's final rebase, and the PR diff never touchesSPEC_VERSIONSor the byte-identical paragraph — so this does not block merge. Fix with two one-line rewords: condition the README claim (e.g. "with two versions on the axis, ids are[transport-version]; they would collapse back to bare[transport]if the axis ever shrank to one") and update theSpecVersiondocstring to say both revisions are now on the active axis.