Skip to content

e2e live-daemon test for the MCP task lifecycle (augment -> get -> result) on HTTP #2240

Description

@jamie8johnson

Context

The 3b transport lane (part of #2216) ships the MCP Tasks surface: tools/call task augmentation → tasks/gettasks/result, across stdio and HTTP, riding the daemon wire verbs (eval-task / task-get / task-result) into #2237's TaskStore.

Every layer is unit-tested (transport shapes, wire dispatch, permit/budget behavior, store admission/terminal contracts), but there is no end-to-end test that drives the full lifecycle through a live daemon socket on the HTTP surface: augment a real tools/call → poll tasks/get → block on tasks/result → assert the verbatim CallToolResult round-trips.

The unit tests can't see socket-round-trip wiring defects (envelope framing across the three verbs, _meta survival through the real dispatch path, the blocking budget interacting with a real daemon's response latency).

Shape of the fix

An integration test using the empty-fixture short-circuit (the eval completes in milliseconds and never touches the embedder/GPU), so the harness needs no GPU coordination:

  1. Boot a daemon on a temp socket with a minimal index.
  2. Start the HTTP listener against it.
  3. tools/call cqs_eval with a task field + empty fixture → assert nested CreateTaskResult.
  4. tasks/get until terminal → assert flat shape + pollInterval + related-task _meta.
  5. tasks/result → assert the verbatim CallToolResult (and the error shape for a failing eval).

Deferred from the lane rather than blocking it on a daemon harness. Part of #2216.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions