Repository navigation
fix(events-client): skip the listen rows when the client never listens - #24
Draft
preston-footprint wants to merge 1 commit into
Conversation
subscriptions/listen is optional in SEP-3415, so a client that never opens it has nothing for sep-3415-client-listen-opt-in or sep-3415-client-relist-on-list-changed to grade. Both rows now report SKIPPED instead of WARNING in that case, so a client that passes every graded row gets a green run. The neverListens client moves from the red table to a test that asserts both rows skip. A new broken client, listensWithoutOptIn, opens listen without eventsListChanged and still turns both rows red. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
preston-footprint
force-pushed
the
fix/events-listen-optional-skip
branch
from
October 20, 2026 23:55
f78d733 to
a18944c
Compare
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
What and why
subscriptions/listenis optional in SEP-3415, but today a client on the 2026-07-28 lifecycle that never opens it gets WARNINGs onsep-3415-client-listen-opt-inandsep-3415-client-relist-on-list-changed. That marks the run failed even when every graded row passes.This makes both rows report SKIPPED when the client never opens a listen stream. Per AGENTS.md, SKIPPED is for checks that are legitimately not applicable, like an optional capability that was never declared; a client not using the optional listen stream is the client-side analogue. Everything else is unchanged:
eventsListChangedstill turns both rows red.Raised in modelcontextprotocol#521 (comment) (item 6), and invited in modelcontextprotocol#521 (comment).
Prove it passes and fails
neverListensmoves out of the red table into its own test, which asserts both rows are SKIPPED and nothing is red. Against the current branch it fails (WARNINGwhereSKIPPEDis expected).listensWithoutOptIn, openssubscriptions/listenwith an empty filter. Its red-table row asserts that exactly the two listen rows turn red, so the skip can't swallow a client that listens but doesn't opt in.events-client-pollon both lifecycles.How Has This Been Tested?
npm run typecheck,npm run lintandnpm run buildpass.npm test: 55 files, 866 tests passed (the pre-push hook ran it as well).npx vitest run src/scenarios/client/events: 26 passed.Runs against a real SDK
A Rust client built on rmcp, which doesn't use
subscriptions/listen:node dist/index.js client --command "<rmcp events_client>" --scenario events-client-poll --spec-version 2026-07-28 --forceBefore (this branch's base, 095a156):
After:
AI disclosure
This PR and its tests were written primarily by Claude Code, under my direction and review.
🤖 Generated with Claude Code