Sixth review of #676:
- The bound on a result is a true upper bound, part by part
(catalog::Bound: counts, verdict, notes, requests, rest). A sampled
intent's fit names at most 64 of the outcomes it rules out and says how
many (impossible_outcomes), and its reason says them once; the bound
counts each intent's lists and the statement's reasons. A trajectories
run's counts are bounded by its trajectories. A verdict counts the
reader's notes and the repair again. Every number is counted at the
length RFC 8785 writes it (receipt::canonical_len), so a set's items'
requests and the provenance's shots and seed are counted as served.
- Where the method knows better, the bound is close: at most 2^b outcomes
for the b bits measured, and on the noiseless stabilizer method 2^d, d
its measured qubits and its branching gates (a GHZ state's two). A
verdict's critique is bounded by the smells its program's gates can draw
(critique::smells_bound, the critique's own walk), not 512 bytes a gate:
100 GHZ24 at 30,000 shots, and a 124,700-gate loop with its verdict, are
taken. A refusal names the largest part and what makes it smaller.
- A dry run applies the run's checks: over MCP it plans the job as the run
tools run it, with its verdict, and its reading is held to what the
submission's would take back (refused as accepted: false).
- A set's worker writes each item's result as text as it ends, so the
README's 100 points of 30,000 shots run to the end within their memory.
- A turn lent to a client goes back once one of its own requests has
waited 7 s, as once another client's waits, so two long checks never
hold its quick calls past their wait. A client's eleventh request at
once is refused, of readings as of checks, and no turn is lent while
one of its own is free or held by a request waiting for the pool.
- Every MCP answer echoes the JSON-RPC id as the text it was sent as.
- A long poll past its client's holds is answered 429 (503 past
everyone's) with Retry-After and the job's status; the command line's
follow waits and polls again.
- Every job queued or running counts against the service-wide unread cap
at its bound, checked again under the queue's lock.
- README, OpenAPI, the tool schema and the changelog say what holds; the
MCP tool snapshot and the command line's docs are regenerated.
Co-Authored-By: Claude Opus 5.5 <[email protected]>