Programs, requests, results and receipts are kept content-addressed by
BLAKE3 digest in a store behind a trait (files written whole, fsynced and
renamed, under a lock; or memory), each job's record written at every change
of status before it is answered. On start the service reloads them: finished
jobs as they were, their receipts verifying; a running one interrupted with
the reason; queued ones queued again. Retention stays configurable, a day by
default. A client is kept as a keyed hash, never its address.
A set or sweep runs as one job with a result and receipt per item and one
receipt over their Merkle root. dry_run returns the plan, estimated time and
energy with their basis, the bounds and whether it would be taken. Status
comes as server-sent events or a held poll; every answer carries the
RateLimit-Policy and RateLimit fields. The receipt key set is published at
/.well-known/wai-quantum-receipt-keys, and rotate-key retires a key with a
transition both keys sign. Optional API keys, off by default, for private
deployments. On Linux each job is metered from the processor packages'
counters where they read. A test kills the service mid-job and restarts it.
Co-Authored-By: Claude Opus 5.5 <[email protected]>