Skip to content

Add client conformance for SEP-2663 task results - #405

Open
brixton-guns wants to merge 1 commit into
modelcontextprotocol:mainfrom
brixton-guns:codex/issue-374-client-tasks
Open

Add client conformance for SEP-2663 task results#405
brixton-guns wants to merge 1 commit into
modelcontextprotocol:mainfrom
brixton-guns:codex/issue-374-client-tasks

Conversation

@brixton-guns

@brixton-guns brixton-guns commented Jul 19, 2026

Copy link
Copy Markdown

Summary

  • add tasks-client-create-handling, where the harness returns a server-directed CreateTaskResult from tools/call and requires the client to retrieve it with tasks/get
  • register the scenario in the extensions suite by deriving membership from source.extensionId, and allow extension scenarios to declare the core protocol version they layer on
  • update the TypeScript everything-client fixture to negotiate the Tasks extension and drive the polling flow
  • add positive and deliberately broken no-poll coverage
  • integrate the Tasks extension flow with the suite's per-version wire-schema validation

Why

The server suite already covers SEP-2663, but the client suite could not observe the client requirement to handle either a standard result or CreateTaskResult. This implements the first client scenario proposed in #374.

The scenario is black-box: it proves that the client recognizes the task envelope and follows the returned handle with tasks/get. It does not claim to observe application-level use of the completed result.

Alignment with current main

Rebased onto 49103de, incorporating the 11 upstream commits added since the original PR base.

  • layer the Tasks extension on DRAFT_PROTOCOL_VERSION (2026-07-28)
  • use the final MISSING_REQUIRED_CLIENT_CAPABILITY code, -32021
  • record requests and responses from the custom Tasks mock in the new wire validator
  • validate extension-defined CreateTaskResult as a base draft Result envelope, since Tasks v2 types intentionally live outside the core draft schema
  • keep wire-schema-valid green for both the conformant and deliberately broken client paths

Validation

  • npm run check
  • npm run build
  • npm test — 488 tests passed
  • targeted Tasks, runner, and wire-schema tests — 31 tests passed
  • end-to-end conformant client run on Node 22.23.1 — 2/2 checks passed, including wire-schema-valid
  • end-to-end no-poll client run — fails only sep-2663-client-handles-polymorphic-result with the expected diagnostic; wire-schema-valid passes

Addresses #374.

@brixton-guns
brixton-guns marked this pull request as ready for review July 20, 2026 07:50
@brixton-guns
brixton-guns force-pushed the codex/issue-374-client-tasks branch from fbec97c to 5036744 Compare July 29, 2026 08:27
Add client conformance coverage for CreateTaskResult polling, a positive fixture, and a deliberately broken no-poll client. Layer the Tasks extension on the 2026-07-28 base revision and integrate extension results with wire-schema validation.
@brixton-guns
brixton-guns force-pushed the codex/issue-374-client-tasks branch from 5036744 to b074c7f Compare July 29, 2026 09:38
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