modelcontextprotocol / modelcontextprotocol/conformance

tasks-lifecycle accepts completed status from its cancellable fixture

Open
#485 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
127
Forks
101
Avg merge
6d 1h
Merged PRs (30d)
7

Description

The tasks-lifecycle scenario requires its slow_compute fixture to settle to
cancelled when tasks/cancel arrives while it is running. The implementation
waits for a terminal status but records that status only in details. A server
that settles to completed therefore passes the cancellation check.

Minimal reproduction:

tasks/cancel -> {"resultType":"complete"}
tasks/get    -> {"resultType":"complete","taskId":"lifecycle-cancel","status":"completed","result":{"content":[{"type":"text","text":"done"}]}}
npm test -- --run src/scenarios/server/tasks/lifecycle.test.ts

A regression test expecting
sep-2663-tasks-get-status-cancelled currently fails because the scenario never
emits that declared check:

AssertionError: expected undefined to match object
Test Files  1 failed (1)
Tests       1 failed | 1 passed (2)

The smallest fix is to emit the existing check after waitForTerminal and fail
it unless this deterministic fixture settles to cancelled. The cancellation
acknowledgement remains a separate check.

References:

I have a small fix and regression test locally. I will wait for assignment,
help wanted, or explicit maintainer approval before opening a pull request.

AI assistance disclosure: GitHub Copilot CLI was used to inspect the public
specification and repository history, identify the missing conformance check,
prepare the reproducer, and draft this issue. I reviewed the evidence and can
explain the failure and proposed fix.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with src/scenarios/server/tasks/lifecycle.test.ts and the tasks-lifecycle fixture contract in src/scenarios/server/tasks/lifecycle.ts, then run the focused npm test command. Verify that the declared sep-2663-tasks-get-status-cancelled check is emitted after terminal-state handling and that the deterministic fixture reports cancelled while the cancellation acknowledgement remains separate.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
testing-qa
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.