wai-quantum-service: the runs are MCP tasks, each task its job #615

Merged
dcharlot merged 1 commit from wai/quantum-service-tasks into main 2026-11-04 13:06:25 -05:00

2026-11-04

Transaction Science
wai-quantum-service: the runs are MCP tasks, each task its job
All checks were successful
wai-quantum views in agent hosts / does this change touch it (pull_request) Successful in 8s
wai-quantum studio and desktop / does this change touch it (pull_request) Successful in 14s
WAI breaking changes and the conformance runner / WAI breaking · wire, record and API against main · linux (pull_request) Successful in 39s
wai-quantum service / service energy · linux packages (pull_request) Successful in 1m45s
wai-quantum docs, course and locales / the Studio's words in every locale · linux (pull_request) Successful in 9s
wai-quantum command line / command line · macos (pull_request) Successful in 2m25s
wai-quantum command line / command line · linux (pull_request) Successful in 2m58s
wai-quantum contract / the policy is linked, and the deprecations page reads (pull_request) Successful in 4s
standards workspaces build + test / macOS energy backends (pull_request) Successful in 5m32s
wai-quantum editors / editors · macos (pull_request) Successful in 2m22s
wai-quantum docs, course and locales / the course and the command line's languages · linux (pull_request) Successful in 2m39s
wai-quantum editors / editors · linux (pull_request) Successful in 2m13s
WAI breaking changes and the conformance runner / WAI breaking and conform · their tests, and the independent verifiers through wai conform · linux (pull_request) Successful in 6m32s
wai-quantum contract / API compatibility · linux (pull_request) Successful in 5m19s
WAI energy receipts / energy receipts · macos (pull_request) Successful in 8m56s
wai-quantum service / service · linux (pull_request) Successful in 4m51s
wai-quantum views in agent hosts / views · a scripted host (pull_request) Successful in 3m6s
wai-quantum views in agent hosts / views · the page and its engine (pull_request) Successful in 4m3s
wai-quantum service / service · macos (pull_request) Successful in 4m34s
wai-quantum for Python / python · linux (pull_request) Successful in 5m11s
wai-quantum for Python / python · macos (pull_request) Successful in 4m41s
wai-quantum studio and desktop / desktop app · windows (pull_request) Successful in 9m57s
standards workspaces build + test / joule-code-rs (joule-code/joule-code-rs, joule-code-rs, linux-arm64, true) (pull_request) Successful in 11m50s
WAI energy receipts / energy receipts · linux (pull_request) Successful in 13m17s
wai-quantum studio and desktop / desktop app · linux (pull_request) Successful in 6m20s
wai-quantum studio and desktop / desktop app · macos (pull_request) Successful in 6m41s
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 15m8s
wai-quantum studio and desktop / studio · browser (pull_request) Successful in 8m34s
wai-quantum contract / schemas and the committed tool lists · linux (pull_request) Successful in 13m25s
wai-quantum docs, course and locales / every command and snippet in the docs · linux (pull_request) Successful in 43m58s
A client that speaks MCP 2025-11-25 may call run_quantum_circuit,
run_quantum_set and run_on_target as tasks. initialize declares `tasks`
(cancel, requests.tools.call) from that version on, and the three declare
execution.taskSupport "optional". The task is the job: tools/call with
`task` admits it as the call does and answers at once, its taskId the
job's id; a program that does not read makes no task, the refusal in the
error's data. tasks/get gives the job as a task (working, completed,
cancelled, failed for a job that failed or was interrupted), its ttl the
service's retention. tasks/result gives get_quantum_job's answer for the
ended job, naming the task in _meta; asked early by a client that takes
text/event-stream it is a stream kept open until the job ends, since the
proxies end a reply held silent, and any other client is held 50 s and
told to poll. tasks/cancel cancels the job and refuses one that has ended.

There is no tasks/list: the public service binds a task to no one, its
id (128 random bits) being what reads it; where the service takes API
keys a task is its key's alone. tools/call's answer moves into
tool_answer, shared with tasks/result, and the run admission into
admit_run and run_refusal, shared with the task.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-04 12:11:24 -05:00