Skip to content

events client: poll loop and a conformance driver - #1493

Open
panyam wants to merge 3 commits into
mainfrom
feat/events-client-poll-loop
Open

panyam wants to merge 3 commits into
mainfrom
feat/events-client-poll-loop

Conversation

@panyam

@panyam panyam commented Oct 7, 2026

Copy link
Copy Markdown
Owner

Three commits from 2026-10-02 to 10-05 that were only local:

The branch already sits on current main. go vet and go test ./... pass in experimental/ext/events/clients/go.

panyam added 3 commits October 2, 2026 22:53
A thin driver the conformance runner launches with --command for
modelcontextprotocol/conformance#540. It checks the capability, lists,
and subscribes in the mode each descriptor names using only what this
SDK offers, so a red check is a finding about the SDK.

Lives in the events client module rather than cmd/testclient so the
root module does not depend on experimental/.
Poll runs an events/poll loop for one subscription, as the spec's SDK
guidance asks ("the caller does not implement or manage the polling
loop"). It drains at once while hasMore is true, otherwise waits
nextPollMs but never less than a configurable floor (default 1s),
adopts the fresh cursor that comes with truncated: true, and treats a
null or absent cursor as nothing to persist rather than inventing one.
A list_changed notification on a poll response reaches OnListChanged;
re-listing is left to the caller, since the SDK holds no registry.

The conformance driver now uses it. events-client-poll from
modelcontextprotocol/conformance#540 goes from 0/7 (all untestable) to
7/7 on both the 2025-11-25 and 2026-07-28 lifecycles.
Events README lists the Go client's Poll and Stream alongside Subscribe
and points at the conformance driver. CLAUDE.md records the client-side
conformance suite (conformance PR 541) and corrects the server suite's
upstream PR from 504, which was closed, to 521.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant