wai-quantum 0.7.0, the rest: a durable job service, error correction and mitigation, views in agent hosts, and the docs and course #524

Merged
dcharlot merged 41 commits from wai/quantum-wave5b into main 2026-10-28 12:19:52 -04:00

2026-10-28

Transaction Science
wai-quantum-dataflow.yml: the instruction table's line matched anywhere in a line
All checks were successful
wai-quantum verdicts and repairs / the intent set and the verdict under wasm32-wasip2 (wasmtime) (pull_request) Successful in 1m11s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 23m50s
wai-quantum views in agent hosts / views · the page and its engine (pull_request) Successful in 2m47s
wai-quantum WebGPU member / member · discrete GPU, Vulkan (jetson-hub) (pull_request) Successful in 22m55s
wai-quantum views in agent hosts / views · a scripted host (pull_request) Successful in 3m21s
wai-quantum WebGPU member / member · software Vulkan (linux) (pull_request) Successful in 1m57s
wai-quantum signal processor / processor and member · signal processor, emulated (pull_request) Successful in 13m58s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 23m27s
WAI Studio / the catalogue's actions, the unit tests and the core · linux (pull_request) Successful in 58s
wai-quantum WebGPU member / shader checks · browser build · wasip2 inertness · MSRV (pull_request) Successful in 3m38s
WAI examples / WAI examples · the archive, the readiness check, the browser and Apple · macos (pull_request) Successful in 17m55s
wai-quantum OpenCL member / member · OpenCL GPU (macos) (pull_request) Successful in 34s
wai-quantum for Python / python · macos (pull_request) Successful in 2m19s
WAI mbt2018_mean integer decode (regenerated vectors) / regenerate mbt2018_mean integer vectors → Rust decode, required (pull_request) Successful in 5m40s
wai-quantum-qpu / credentials in the keychain (macos) (pull_request) Successful in 48s
wai-quantum docs, course and locales / every command and snippet in the docs · linux (pull_request) Successful in 21m56s
wai-quantum matrix-extension member / member · matrix extension absent (macos) (pull_request) Successful in 17s
wai-quantum service / service · macos (pull_request) Successful in 1m23s
wai-quantum portable tensor program / tensor program · Metal and the arm64 CPU (macos) (pull_request) Successful in 21s
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Successful in 6m25s
wai-quantum CPU vector units / member · vector unit absent (macos) (pull_request) Successful in 21s
wai-quantum neural-processor member / member · neural processor (macos) (pull_request) Successful in 9m11s
wai-quantum WebGPU member / member · browser WebGPU (macos) (pull_request) Successful in 3m9s
wai-quantum WebGPU member / member · Metal (macos) (pull_request) Successful in 4m20s
wai-quantum studio and desktop / desktop app · macos (pull_request) Successful in 5m20s
WAI Studio / Studio in WebKit · linux (pull_request) Successful in 11m30s
wai-sink-android native sink library / every ABI, the AAR, and the instrumented tests in a headless emulator · macos (pull_request) Successful in 9m6s
WAI Studio / Studio in Chromium and Firefox · macos (pull_request) Successful in 13m19s
wai-sink-swift native sink package / libwai slices, desktop tests, simulator tests · macos (pull_request) Successful in 19m40s
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Successful in 1h5m43s
The tests run in parallel with --nocapture, so "tensix layouts: N
instructions match the table" can follow another test's "... ok" on the
same line, and the anchored grep then missed a check that had run.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 10:58:27 -04:00
Transaction Science
quantum-studio: a diagram whose gates are buttons is a group, not an image
Editing by drawing makes each gate a focusable button. An image's
children are presentational, so a focusable gate inside an svg with
role img is a nested interactive control (axe: nested-interactive,
serious), which WAI Studio's WebKit run reports. When the gates become
buttons, the diagram takes role group and keeps its name.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 10:58:27 -04:00
Transaction Science
wai-quantum views: the manifest records critique-view.js as main left it
Some checks failed
wai-quantum CPU vector units / member · vector unit, rvv 1024-bit (riscv64, emulated) (pull_request) Successful in 34s
wai-quantum CPU vector units / member · vector unit, sve 128-bit (aarch64, emulated) (pull_request) Successful in 25s
wai-quantum CPU vector units / member · vector unit, rvv 128-bit (riscv64, emulated) (pull_request) Successful in 14s
wai-quantum CPU vector units / member · vector unit, sve 2048-bit (aarch64, emulated) (pull_request) Successful in 10s
wai-quantum CPU vector units / member · vector unit, sve 512-bit (aarch64, emulated) (pull_request) Successful in 9s
wai-quantum CPU vector units / member · vector unit, avx2 (x86_64 silicon) (pull_request) Successful in 18s
wai-quantum WebGPU member / member · Metal (macos) (pull_request) Successful in 2m48s
wai-quantum studio and desktop / desktop app · macos (pull_request) Successful in 4m17s
wai-quantum studio and desktop / studio · browser (pull_request) Successful in 3m46s
wai-quantum WebGPU member / member · browser WebGPU (macos) (pull_request) Successful in 2m6s
wai-quantum views in agent hosts / views · the page and its engine (pull_request) Successful in 2m40s
wai-quantum signal processor / processor and member · signal processor, emulated (pull_request) Successful in 13m54s
wai-quantum views in agent hosts / views · a scripted host (pull_request) Successful in 2m57s
wai-quantum tensor-engine member / member · tensor engine, the kernel toolchain's simulator (linux) (pull_request) Successful in 4m41s
wai-quantum neural-processor member / member · neural processor (macos) (pull_request) Successful in 9m53s
wai-quantum verdicts and repairs / the intent set and the verdict under wasm32-wasip2 (wasmtime) (pull_request) Successful in 1m10s
WAI Studio / the catalogue's actions, the unit tests and the core · linux (pull_request) Successful in 58s
wai-quantum verdicts and repairs / verdicts, repairs and the intent set · linux (pull_request) Successful in 1m47s
wai-quantum WebGPU member / member · software Vulkan (linux) (pull_request) Successful in 2m2s
wai-quantum WebGPU member / shader checks · browser build · wasip2 inertness · MSRV (pull_request) Successful in 3m33s
wai-quantum docs, course and locales / every command and snippet in the docs · linux (pull_request) Successful in 15m29s
wai-web reach builds / wai-web reach builds · the package of record, every output as recorded (pull_request) Successful in 2m27s
wai-sink-android native sink library / every ABI, the AAR, and the instrumented tests in a headless emulator · macos (pull_request) Successful in 8m10s
WAI mbt2018_mean integer decode (regenerated vectors) / regenerate mbt2018_mean integer vectors → Rust decode, required (pull_request) Successful in 5m38s
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Successful in 6m4s
wai-web reach builds / wai-web reach builds · this tree's wai-web, every rung on its engine line (pull_request) Successful in 5m32s
WAI Studio / Studio in Chromium and Firefox · macos (pull_request) Successful in 10m31s
WAI Studio / Studio in WebKit · linux (pull_request) Failing after 11m48s
wai-sink-swift native sink package / libwai slices, desktop tests, simulator tests · macos (pull_request) Successful in 17m10s
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Successful in 1h0m8s
#522 gave the critique panel a group role. The views page does not carry
the panel, so its bytes and digest are unchanged; only the source's
digest in the manifest moves, rebuilt with wai-quantum-views/build.sh.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 09:44:03 -04:00
Transaction Science
wai/CHANGELOG.md: the 0.7.0 release acknowledges its fourteen breaking changes
Some checks failed
WAI mbt2018_mean integer decode (regenerated vectors) / regenerate mbt2018_mean integer vectors → Rust decode, required (pull_request) Successful in 5m34s
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Successful in 5m57s
WAI Studio / Studio in WebKit · linux (pull_request) Successful in 10m15s
wai-audit collector and player integration / collector, player integration and the browser end to end · macos (pull_request) Successful in 1m30s
WAI conformance / codec wrappers · fuzz smoke, text decode limits, C entry points, provenance, the semantic path (pull_request) Has been cancelled
WAI energy receipts / energy receipts · macos (pull_request) Has been cancelled
WAI examples / WAI examples · the archive, the readiness check, the browser and Apple · macos (pull_request) Has been cancelled
wai-quantum command line / command line · macos (pull_request) Has been cancelled
wai-quantum dataflow member / member · dataflow device absent (macos) (pull_request) Has been cancelled
wai-quantum editors / editors · macos (pull_request) Has been cancelled
standards workspaces build + test / macOS energy backends (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · macos (pull_request) Has been cancelled
wai-quantum FPGA member / member · FPGA datapath, simulated (macos) (pull_request) Has been cancelled
wai-quantum Metal member / member · Metal (macos) (pull_request) Has been cancelled
WAI conformance / cross-arch byte-equality · macos (pull_request) Has been cancelled
wai-quantum neural-processor member / member · neural processor (macos) (pull_request) Has been cancelled
wai-quantum OpenCL member / member · OpenCL GPU (macos) (pull_request) Has been cancelled
wai-quantum for Python / python · macos (pull_request) Has been cancelled
wai-quantum-qpu / credentials in the keychain (macos) (pull_request) Has been cancelled
wai-quantum service / service · macos (pull_request) Has been cancelled
wai-quantum matrix-extension member / member · matrix extension absent (macos) (pull_request) Has been cancelled
wai-quantum studio and desktop / desktop app · macos (pull_request) Has been cancelled
wai-quantum portable tensor program / tensor program · Metal and the arm64 CPU (macos) (pull_request) Has been cancelled
wai-quantum CPU vector units / member · vector unit absent (macos) (pull_request) Has been cancelled
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Has been cancelled
wai-quantum WebGPU member / member · Metal (macos) (pull_request) Has been cancelled
wai-quantum WebGPU member / member · browser WebGPU (macos) (pull_request) Has been cancelled
wai-sink-android native sink library / every ABI, the AAR, and the instrumented tests in a headless emulator · macos (pull_request) Has been cancelled
wai-sink-swift native sink package / libwai slices, desktop tests, simulator tests · macos (pull_request) Has been cancelled
WAI Studio / Studio in Chromium and Firefox · macos (pull_request) Has been cancelled
`wai breaking --against origin/main` names fourteen API changes in
wai-quantum 0.7.0: new request and compile-option fields, new refusal
outcomes, the grown schema list, new circuit and error-model fields, and
the Observe operation. Each is intended; each line says what a caller
adds (a `None` or empty field, a match arm, or iterating over FILES).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 08:43:06 -04:00
Transaction Science
wai-quantum 0.7.0 integrated: the generated material on the final tree, the pins it moves, and what replaying every job found
Generated on the final tree: the views page, rebuilt (802 495 bytes, under
1 MiB) from its sources; the notebooks' stored outputs; the agent docs. The
pins that move: wai-web's course check names its engine now, so its digest
moves (374b400e... to 969b2c1c..., and with every release from here), and the
page's wasm32 count is 18 (native 26, as pinned). wai-quantum-qpu's library
count is 34, as the cherry-picked pin says.

What replaying each workflow's jobs found, each fixed here:
- the views page's one line carried the estimate pane's English note, "no
  other beats on both", which the comparative-prose check reads across the
  line; the note says "none of the others beats on both";
- the docs runner's broken.qasm is broken on purpose, so the editors check
  requires it to fail to parse, as the intent set's broken programs;
- the command line's parse test named the service's submit and task in a
  build without the service; those checks are a test of their own, built
  with it;
- the set-only Merkle helpers warned in a build without receipts;
- a one-element loop in the service's strict test;
- the energy job looked for the live counter's line at the start of a line,
  where --nocapture puts it after the test's name;
- the Python test comparing a run on the service with one here now leaves out
  the provenance the service adds, and checks it is there.

The release heading's caller list is the final API check's: the frame text's
new fields and variant, and the request's compile passes and mitigation.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 08:43:06 -04:00
Transaction Science
wai-quantum contract over the course and the docs: the course's schemas in schemas/, its checks named, every page run, the translations in step, and the views in English
The course's documents join the version contract. The course as kept and as
served (wai.quantum.course/1) and each exercise (wai.quantum.exercise/1) move
from course/schema/ to the crate's schemas/, named and versioned as the rest;
a check, a lesson as served and a hint are wai.quantum.course-check/1, and a
check now names its engine beside its schema; the command line's progress
file is wai.quantum.learn-progress/1. The engine's test holds the course,
every exercise, every lesson in each locale and a check and hint of some to
them; the learn test holds the progress file; the contract workflow requires
both, and the eval and lease tests, by name, and runs when the answer and
eval sets its tests read change.

The docs runner reads every page the branches added: the error-correction
page, the version policy, the deprecations page, the service's self-hosting,
scheduler and provenance pages, and the views' README. Each block the other
branches wrote either runs or says why it cannot (a sweep fixture added), and
the job service it starts keeps its store in its scratch. The crate's README
names wai-quantum 0.7. The Chinese READMEs hold the English pages' code again:
the sections for error correction, sets and sweeps, the service's dry runs,
the scheduler, scoring a model, the answer layer, views and versions are
translated, and the compile pages name the gate set basis. The command
line's Chinese words cover task, qec, eval and version, and submit as it
reads now. The documentation index links the policy, the deprecations, the
error-correction page and the service's pages in both languages.

The policy lists every schema file and says the answer layer is a draft
outside its promise. The 0.7.0 heading names what the four branches bring.

The views page bundles the Studio components that now read their words
through the locale module; build-views.mjs gives it the English words alone,
so no other language's words reach a host. The result parts the Studio and
the views share read their words through it too, so the Studio's result pane
stays translated, its English unchanged.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 08:43:06 -04:00
Transaction Science
wai-quantum: the main READMEs and the documentation index in Simplified Chinese
The command line's, the crate's, the Studio's and the Python package's READMEs, and the documentation index, each a machine-assisted translation marked so on its first line, to be reviewed by a fluent reader before it is advertised. Each holds its English page's code, which check_docs.py holds it to.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 08:43:06 -04:00
Transaction Science
wai-quantum: documentation that runs in CI, its drift fixed, an index of every page, and a changelog entry
wai/tools/quantum-docs/check_docs.py runs every block marked runnable on the
pages docs.json names (the engine, the command line, the service, Python,
the Studio, the desktop app, the editors, the providers, the compiler,
estimates, verdicts, the feature matrix, the course and the agent skill) in
a scratch directory of fixtures, holds each shown output to the real one,
verifies every receipt a block writes, builds and runs the Rust blocks, and
checks every block that cannot run for the commands and flags it names,
every wai-quantum command in the prose, every relative link and every
dependency shown; a translation must hold its English page's code. ci.sh
builds the command line, the service and the wheel and starts a service, as
wai-quantum-docs.yml runs it, beside the course's and the locales' tests.

Drift fixed: the crate pinned "0.4", named an unrelated crate for the command
line, ran its research tools outside lab, claimed the whole suite under
wasip2, and split its feature table from its header; the command line's
README said the reader refuses while, inv and pow, used placeholders and
optional flags that do not run, and merged versions that do not exist; the
estimate page's output lacked its receipts line; build steps now match CI.
An observable may lead with its coefficient ("0.5 X2"), as documented.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 08:43:06 -04:00
Transaction Science
quantum-studio: the course in the Studio and the desktop app, and the interface in Simplified Chinese
The Course pane lists the 21 lessons, shows a lesson's text and exercise,
loads its starter, and checks the program in the editor with the engine
(engine_course_check in the page, the same commands in the desktop app):
each case's verdict, each rule, What went wrong? from the diagnostics, the
verdict and the critique, the hints one at a time with the engine's pointer,
and a hint from the assistant when a model is connected, any program in its
answer held back. Progress is kept only in this browser and says so.

The interface's words are data, locales/<locale>/<area>.json for every part,
English the source and Simplified Chinese marked machine-assisted; the Studio
follows the browser's language until the reader picks one with the switch.
test/locales.test.mjs holds every locale to every key and placeholder. The
e2e checks the course in English and in Chinese. wai-web's engine tests pin
23 native and 16 wasm32, a course check the same bytes in both.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 08:43:06 -04:00
Transaction Science
wai-quantum: the circuits course as data, each exercise checked by the engine, and wai-quantum learn in English and Chinese
engine::course reads the course from wai-quantum/course/: 21 lessons from a
first circuit through superposition, entanglement, interference, the standard
algorithms, noise and mitigation, error correction and fault tolerance to
resource estimates, each a Markdown text in English and Simplified Chinese and
an exercise.json with a schema. A check runs each case of an exercise (a
generator's inputs) with its intent and the verdict, measures its constraints
(the gates allowed, counts, the T count, the critique's smells, the resource
estimate's counts), and says what went wrong from the diagnostics, the verdict
and the critique, never from the solution. The tests hold every solution to
pass by proof, every known wrong answer to fail for its stated reason, and
every locale to every text and message.

wai-quantum learn shows, starts, checks, hints and explains a lesson, keeps
progress only on this machine, and speaks the language --lang or LANG names;
the command summaries and docs topics have Chinese translations held to the
English they came from. The verdict gains of_diagnostic for a generator's
refusal. llms.txt names the course.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 08:42:54 -04:00
Transaction Science
wai-quantum contract over views, the answer layer, correctness records and the harness: their schemas, the view's tool, the basis in the views, and the stored seal for 0.7.0
The apps branch's documents join the version contract. The answer layer's
documents (wai.quantum.answer/1: an answer read, carried out, a seal's
request and result, a stored answer checked), described as a draft whose form
may change before the extension settles; a correctness record and its corpus
(wai.quantum.telemetry/1); the views page's manifest
(wai.quantum.views-bundle/1); and the command line's harness report, corpus
and token counts (wai.quantum.eval-report/1, eval-answers/1, token-cost/1).
The engine's test holds every answer of the layer's conformance set (read,
carried out, half arrived, and stored and verified), records, the corpus and
the committed manifest to them; the eval tests hold a scripted run's report,
a model server's, the corpus and the committed token counts; check_schemas.py
holds the committed documents too. The tool and diagnostic schemas take the
answer layer's outcomes, dropped and defaulted.

The result view's own tool, poll_quantum_job, listed only to a host that
draws views, answers to the job's schema, and the strict test holds it.

The basis rename reaches the views: a compile's words and its view name the
gate set by its basis (both read the certificate's old target), and a test in
each holds it.

The service's job summary now lives in engine::views (the apps branch moved
it there); it carries the durable branch's set summary and the processor
packages' energy wording with it.

The answer set's stored seal was made at 0.6.16; the values it seals name
their engine, so it is written again at 0.7.0 (WAI_ANSWER_BUNDLE_WRITE=1).
The views crate's lock moves to wai-quantum 0.7.0.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 08:42:54 -04:00
Transaction Science
wai-quantum: the answer layer's measured cost and a model's results in its spec, the docs in step, and the changelog
The answer view layer's specification records the measured comparison in
§9. In three open-weight vocabularies, the layer takes 29 to 32 percent
more tokens than a job's JSON for the same request. The cost is per
statement, and noise that two calls share is named once. The spec does
not claim the layer is cheaper.

§9.1 records how reliably one local model wrote the layer. It wrote the
layer far less reliably than a program alone: 4 of 14 answers were valid
against 12, and 7 against 13 after one repair round. It also lists the
errors and the prompt revision, which left the score where it was. §3
says there are no named arguments, and that a value several calls take
is declared once.

The engine's, the service's and the views crate's READMEs describe the
views, the layer and the correctness record. The service's smoke checks
open a views session. The changelog entry covers the views in agent
hosts, the layer, the records, the harness and the measurement-order fix.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 08:42:54 -04:00
Transaction Science
wai-quantum: a model scored by the engine on a task set, and each answer counted in tokens four ways
`wai-quantum eval run` asks a model each task of a set, once and at
temperature 0. The model is asked either for the program alone or for an
answer in the answer view layer. The engine then scores what it writes:
whether the answer reads, the verdict's level against the task's intent,
whether the task is solved, and the joules per solved task where the model
server's process energy can be read.

Repair rounds send the engine's codes back for a corrected answer, and the
report keeps the first try's counts. A model server that is neither on
this machine nor on a private network is refused unless allowed. The
report ranks nothing, and no report is committed.

The task set (wai/quantum-conformance/eval/tasks.json) is fourteen tasks
from the intent conformance set and the worked examples. Each has a
reference program that a test holds to its intent by proof.

`eval corpus` writes each task's answer four ways: the program alone, the
layer whole, the layer with the request alone, and a job's JSON. Noise
that two calls share is named once. token_cost.py counts each form with
a model's own vocabulary. Its report on three open-weight vocabularies is
committed beside the corpus.

The smoke checks run a scripted model through the harness, and CI names
each harness test.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 08:42:54 -04:00
Transaction Science
wai-quantum: the answer layer's prompt gives each argument's kind, and a named argument is told it goes by position
The first measurement of a local model writing the answer view layer found
most of its errors in three places: a view given an engine call where it
takes a program, a name the root lists that nothing declares, and
arguments written as name=value, which the layer does not have.

The prompt now writes each signature with each argument's kind, states
that every name the answer uses must be declared and that a statement's
name is never a program's, says that noise two calls share can be
declared once and passed by name, and shows a Circuit statement in its
example. The reader answers `seed=7` in a call by saying that arguments go
by position, instead of asking for a comma.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 08:42:54 -04:00
Transaction Science
wai-quantum: answers drawn as they arrive in the Studio, and a correctness record kept only when asked
The Studio has an answer pane. It reads an answer in the view layer as it
streams from the assistant, draws each statement when it arrives, runs the
engine call each one is bound to, and seals the answer with a receipt that
is checked again by re-running. A stored answer carries its receipt and is
verified when it is read back.

The correctness record is off by default. When it is turned on, it keeps
one record per answer in the browser: the codes, the verdict level, the
repairs, whether the answer was accepted, and the receipt id. Nothing is
sent anywhere, and the records leave only when exported. The failures
export as an eval corpus in the conformance format. A test shows that
nothing is recorded while it is off.

The engine adds a noise argument to @Sample and @Check, keeps root-listed
names that have not arrived in the snapshot order, and gives a model the
layer's rules with a worked example. The desktop app answers the same
calls. macOS can read a running process's energy, for the model harness.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 08:42:54 -04:00
Transaction Science
wai-quantum: the order of a program's final measurements is no difference
The equivalence ladder, the prepares intent and the rewrite proofs
compared the programs' measurements as an ordered list, so a program that
measured q[3] into c[3] down to q[0] into c[0] was "different by shape"
from one that wrote c = measure q: a verdict of fails, by proof, for a
program that prepares the state asked for. A local model's answer in the
model harness found it. Measurements at the end act on separate qubits, so
what matters is which qubit each bit holds once the program has run
(qasm::readout, a bit written twice holding the last); the checks compare
that. A test holds a reversed order equal and crossed bits different.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 08:42:54 -04:00
Transaction Science
wai-quantum: the answer view layer, its codes and conformance set, and correctness records
engine::answer reads wai.quantum.answer/1: view statements over an
OpenQASM 3 program (Histogram, Verdict, Equivalence, Bloch, Estimate,
Receipt and the rest, fourteen in all), each view's numbers bound to an
engine call written with @ (@Sample, @Check, @Seal, eleven in all), so a
model's answer shows numbers the engine computed. One statement a line,
the program in a named qasm fence, root first, forward references, and a
later declaration standing as the edit. The reader streams: a snapshot
says what is ready, pending or dropped, and the finished answer is the
whole text's at every split (tested at every split point). Every problem
has a stable code: a program's keep the reader's Q codes, a statement's
are the new J100 to J112, each dropped, defaulted or warned, and only the
dropped ones are errors a model is sent back. eval carries the calls out
on the engine (a run's time left out), seals what @Seal names in a job's
form, and checks a stored answer's receipt marker by running it again.

The conformance set (quantum-conformance/answers/, 20 cases, every code)
passes natively, under wasm32-wasip2 and in the browser, where the stored
case written natively verifies to the same bytes. wai-web gains
AnswerStream and the answer and telemetry calls (pins 24 native, 16 wasm32).

engine::telemetry defines the correctness record (codes, verdict level,
repairs, the person's accept or reject, the receipt) and turns the failures
among records into an eval corpus in the conformance format.

The specification (extensions/quantum-answers.md) is a draft whose token
comparison is still to come.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 08:42:54 -04:00
Transaction Science
wai-quantum: the engine's answers as views inside agent hosts, the receipt checked in the view
Both MCP servers serve six ui:// views (a circuit, a result with its
verdict, a receipt, a critique, an estimate's frontier, a device target's
map) through the protocol's extension for interactive views, version
2026-01-26, to a host that says it draws them: each tool names its view in
_meta.ui.resourceUri, the view's data (the engine's layout and the circuit
in words, a target's map) rides in the result's _meta, and the service's
poll_quantum_job, which a view calls while a job runs, is kept from the
model. The service keeps no session, so the client's word travels in the
session id it is given at initialize. Every host gets each such answer in
plain words.

The views are one self-contained page (736 KB, held under 1 MiB) built from
the Studio's components, carrying the engine (wai-quantum-views) as
WebAssembly and translated to JavaScript. Under the extension's default
content-security policy the browser refuses WebAssembly, so the JavaScript
form checks the receipt there; a scripted host in a headless browser draws
every view from both servers under both policies and holds the check, a
changed result, the size and no outside request. The page rebuilds to the
same bytes in the CI image.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 08:42:54 -04:00
Transaction Science
wai-quantum contract over error correction and mitigation: their answers' schemas, distinct refusal codes, the basis in the new passes, and the smoke within one window
Error correction and mitigation join the version contract. An error-correction
answer (wai.quantum.qec/1: a code, a decode or a threshold), a code's distance
certificate (wai.quantum.distance/1) and a job's mitigation
(wai.quantum.mitigation/1) are engine schemas; every answer engine::qec::call
gives names the engine and its schema, inside what a host seals. The job
request names mitigate, and a compile's options and certificate twirl and dd.
qec_code, qec_decode and qec_threshold answer to output schemas on both
servers; the strict tests call each, a mitigated run and a compile with both
passes, the engine's test holds every decoder's answer and each mitigation
method to its schema, the contract workflow requires it by name, and
check_schemas.py holds the command line's answers too.

Refusal codes: the set branch and this one had each taken J007. A set that
does not read keeps J007; mitigation's refusals are J008 and error
correction's J009, in the table, its page, the tests, the docs and the
changelog.

The basis rename reaches the new passes: compile::Options carries twirl and
dd beside basis, and the command line's compile, both servers' compile
options and their tests name the gate set basis.

The service smoke test made 32 submissions with both branches' checks, past
the 30 a client may make in a window (it is also run against production after
a deploy). It now makes 28 (29 on a host with a GPU, whose single-precision
run is held to the exact values instead of a second run): the code-capacity
decode against its error, the changed estimate, the counts document and the
classical shortcuts are left to the MCP servers' tests, which hold each.

The agent docs are regenerated.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 08:42:54 -04:00
Transaction Science
ci: error correction and mitigation, each new test required by name
wai-quantum-qec.yml runs the codes, decoders, texts, mitigation and the
error-correction call in release on linux, requires each new test by name,
holds the texts to their conformance vectors, and checks every feature set
the hosts build without warnings; the catalog no longer warns when built
without mitigation.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 08:42:54 -04:00
Transaction Science
wai-quantum: the error-correction page, the READMEs and the changelog
docs/qec.md gives each code, the distance certificate and what it settles,
each decoder's guarantee, the window's latency budget, the circuit and model
texts, and each mitigation method's bias and variance; the compiler page adds
the twirl and decoupling passes. The crate's README points its research
commands at `lab qec`, which the new `qec` verbs sit beside.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 08:42:54 -04:00
Transaction Science
wai-quantum-py: error correction and mitigation from Python
qec_code, qec_decode and qec_threshold call the engine's error correction
in-process, each answer sealed in a job's form, and run() takes mitigate=.
The tests decode every error of weight up to two on the distance-5 colour
code to a trivial residual, check a certificate and a forged one, and hold
each answer to the command line's.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 08:42:54 -04:00
Transaction Science
quantum-studio, wai-web, wai-quantum-desktop: an error-correction pane, and mitigation in a run
The Studio's Error correction pane, closed until opened: a code drawn on its
lattice (a colour code's faces in their colours), qubits flipped by clicking,
their syndrome lit, the decoder's correction marked and the residual judged,
the certificate's distance and its witness, and logical failure rates plotted
one line per distance; every answer sealed and its seal checked in the page.
A run can be mitigated under its noise, the result showing raw and mitigated
values with their errors and the method's assumptions. The page engine's qec
call (wasm32) and the desktop app's command seal with the page's or the user's
key; the service engine posts to /v1/qec. Engine-in-a-page test pins: 23
native, 16 wasm32.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 08:42:54 -04:00
Transaction Science
wai-quantum-cli, wai-quantum-service: error correction and mitigation on the command line and both MCP servers
wai-quantum qec code, decode and threshold beside lab (lab qec unchanged),
each answer signed with the user's key; run --mitigate; compile --twirl and
--dd. Both MCP servers serve qec_code, qec_decode and qec_threshold in one
wording from the engine, and a job's mitigate and a compile's twirl and dd in
their schemas. The service answers POST /v1/qec/code, /decode and /threshold
sealed with its key, within bounds that send a long certification or a large
threshold to the command line (J031), and lists them in its OpenAPI document.
The agent docs regenerated; both smoke scripts check the new calls.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 08:42:54 -04:00
Transaction Science
wai-quantum: error correction for every surface: a code shown with its certified distance, a syndrome or a circuit's detectors decoded, a threshold measured
engine::qec reads a code by name (surface, toric, steane, color, the
bivariate-bicycle presets and gross) with a layout to draw it, its distance
certified (and a given certificate checked: its witnesses and the search run
again); decodes at code capacity with each decoder the code admits (union-find,
exact matching, Relay-BP, the colour decoder, an exact search) and at circuit
level from the memory experiment, a circuit or a model, by exact, correlated or
union-find matching, BP-OSD or a sliding window; and measures failure rates
over distances and rates, with the code model fitted at circuit level. Each
answer is sealed by the host as a job is. Refusals carry J008. Relay-BP is
now callable on a syndrome given.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 08:42:53 -04:00
Transaction Science
wai-quantum: Pauli twirling and dynamical decoupling as checked compile passes
"twirl" frames each two-qubit Clifford gate with a seeded Pauli and its image
through the gate; "dd" places an xx or xy4 sequence in each window where a
qubit idles long enough. Each is checked to be the program without noise by
the equivalence ladder, on every distinct framed gate or sequence (a tableau
each) and on the whole circuit where the ladder decides, and every frame
through cx, cz and swap is held to dense matrices.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 08:42:53 -04:00
Transaction Science
wai-quantum: mitigation in jobs: zero-noise extrapolation, error amplification and cancellation from a learned noise model, Clifford data regression, virtual distillation and readout inversion
A job's "mitigate" runs its program under its own noise, Pauli-twirled, each
circuit's density matrix exact and then sampled with its shots. zne folds the
whole program (checked equal without noise) and extrapolates; pea learns each
gate's noise as a sparse Pauli-Lindblad model by simulated cycle benchmarking
and amplifies the learned rates; pec inverts the learned channels as
quasi-probabilities and samples them, beside the value it converges to; cdr
fits near-Clifford training circuits; vd takes two copies; readout inverts
the counts' flips. Each result names its method, gives raw and mitigated
values with standard errors, states its bias and variance assumptions and
counts its circuits and shots, sealed with the job. The density matrix runs
a list of gates and Kraus channels, negative weights allowed. Refusals carry
J007; J008 is reserved for error-correction requests.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 08:42:53 -04:00
Transaction Science
wai-quantum: sliding-window decoding as the syndrome arrives, with a stated budget per round
A stream pushed one round at a time: windows of commit plus buffer rounds,
each matched exactly on the mechanisms that touch no committed round (cut at
the window's top), the edges that start in the commit region applied and the
rest decided again by the next window. Each window's graph is built once. The
buffer must cover the longest mechanism; a stream states its time per round,
and measure times every window on this machine against it, the prediction the
same bits everywhere. A window over everything is the batch decoder, shot for
shot; with a buffer of (d+1)/2 rounds every edge set below half the distance
is corrected (each pair at d = 5), while a one-round buffer misses 286 of
166,176; on the same shots, 65 failures against the batch's 64.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 08:42:53 -04:00
Transaction Science
wai-quantum: correlated matching through a model's decomposed faults, and the matching ground truth at circuit level
Exact matching now gives the edges its paths take. Correlated matching
matches once, lowers the other parts of every decomposed fault the first
matching used, matches again, and keeps the second answer only when the
model's own mechanisms cover it more cheaply. Ground truth for both, with
every edge at one probability: the graph's distance found by search is d, and
every set of edges below half of it is corrected (every pair at d = 5). Fault
sets are counted as well: of the 95,703 sets of one or two faults at d = 5,
exact matching misses 103 pairs and correlated matching 73; on 20,000 shots
at p = 0.006, 469 against 431 failures at d = 3 and 440 against 338 at d = 5.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 08:42:53 -04:00
Transaction Science
wai-quantum: the error-correction circuit and model text read as written and written back, with tags, Pauli-target observables and decompositions
A reader and writer for the circuit text and the detector error model text
that keep every instruction's tag, its arguments as written and every kind of
target (records, Pauli targets, inverted results, sweep bits, products),
blocks as blocks. The frame simulator now reads through it: tags reach the
mechanisms their noise makes, observables take Pauli targets in sampling and
in the model, detectors keep their coordinates. A model is written with its
coordinates, tags and each decomposed mechanism's parts, and read back to the
same model, blocks unrolled and detector shifts applied. A conformance set of
circuits and models the crate writes and of hand-written ones, each held to
its counts, its model and a byte-for-byte round trip, with the refusals.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 08:42:53 -04:00
Transaction Science
wai-quantum: triangular colour codes decoded by restriction to matching, and distance certificates by exhaustive search
The 6.6.6 colour code of odd distance d, built on a triangular lattice with
its three boundaries; its faces matched on the three restricted lattices and
lifted at each colour, both logical classes kept, the lightest taken, and
completed below half the distance by an exact search: every error of weight
up to (d-1)/2 is corrected for d = 3, 5, 7 (and 9 in a release build), and
matching alone is measured beside it. Distance certificates for any CSS code:
connected supports grown check by check, symmetries checked before use, a
witness of the distance and the bound below it, re-checkable to the node.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 08:42:53 -04:00
Transaction Science
wai-quantum contract over the durable service: sets, provenance, dry runs, the receipt key set and the lease, each with its schema
The durable service's documents join the version contract. A set's result
(wai.quantum.set/1) and a result's provenance (wai.quantum.provenance/1) are
engine schemas; the service's receipt key set (wai.quantum.receipt-keys/1,
with its signed transitions) and the command line's scheduler lease
(wai.quantum.lease/1) are their hosts'. The job request names programs, sweep
and dry_run, a job's result may be a set's, an energy figure may be the
processor packages', and a job names its store digests.

A set's head now names the engine and its schema, inside what its receipt
seals, as every other result does. A result's provenance names the gate set
its compile wrote as basis (it read the compile summary's old target field,
which the rename left empty).

run_quantum_set and dry_run_quantum_job answer to output schemas, each with
its verdict whether refused or not, and run_quantum_circuit asked as a dry
run answers as one. The strict tests call both and hold every answer, the
job's set form and the key set after a rotation to their schemas; the
contract workflow requires the new tests by name, and check_schemas.py reads
the new files and holds a set's run to its schema.

The service's store stays at ~/.local/share/wai-quantum-service/store by
default; the Python check and its tests start the service with a store in
their own scratch, as the service workflow's legs already do.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 08:42:53 -04:00
Transaction Science
wai-quantum-service: the smoke test's new checks fit one client's window on a GPU host, and an estimate under a microjoule is not given
The smoke's set, sweep and dry-run checks now make four submissions, so the
whole script stays within 30 in a window on a host that also checks its GPU.
A dry run's energy estimate that rounds to no microjoule says so instead of
giving zero.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 08:42:53 -04:00
Transaction Science
wai-quantum-service: an OCI image, a self-host guide, the provenance mapping and the scheduler interface
deploy/Containerfile builds the service in two stages, each base pinned by
digest, from the locked dependencies with paths remapped and the timestamp
fixed, and runs it as an unprivileged user with its store and keys on one
volume; deploy/check-image.sh builds it, runs it, holds it to the smoke
checks, restarts it to see it keep its jobs, and removes everything, pushing
nothing. docs/self-host.md covers running it, its configuration, the store,
the receipt keys and their rotation, API keys, energy and a reverse proxy;
docs/provenance.md maps every field to the categories provenance surveys
use; docs/scheduler.md describes the task interface by function. CI runs the
engine's set, provenance and package-energy tests by name, and on the
hardware runner the live package counter and a fully metered smoke. The
READMEs and the changelog say what changed.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 08:42:53 -04:00
Transaction Science
wai-quantum-cli: submit runs sets and sweeps, asks for dry runs and follows status; task serves a scheduler
submit takes --program (more programs, one set) and --sweep NAME=V1,V2
(every combination of an input's values), as run and plan do here; --dry-run
asks the service for its plan and whether it would take the job, running
nothing (and is never sent to a service older than dry runs); and a job's
status is followed to its end from the service's event stream, or by held
polls. task is the service as a resource a batch scheduler hands its jobs:
target, acquire and release a lease, start, status, wait, result (its
receipt checked first) and stop. verify checks a set whole. The agent docs
list the service's new tools.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 08:42:53 -04:00
Transaction Science
wai-quantum: a result's provenance under the survey categories, its compile's passes named
engine::run::run_with_provenance adds provenance beside a result: the
circuit (the program's BLAKE3 digest, qubits, gates), the computer (method,
accuracy class, a device target's hash), the compilation (each pass the
compile ran with its check's verdict, the certificate's digest, the gate
set, the budget and the distance), the execution (shots, seed, plan) and the
software (engine and host). run is unchanged, so every pinned result gives
the bytes it gave. The service's worker seals it into each new result and
each set item.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 08:42:53 -04:00
Transaction Science
wai-quantum-service: the smoke test checks sets, sweeps, dry runs, events, the key set and the rate-limit fields
CI's instances keep their job store in the runner's scratch directory.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 08:42:53 -04:00
Transaction Science
wai-quantum-service: a durable job store, sets, dry runs, status events, rate-limit fields and rotating receipt keys
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]>
2026-10-28 08:42:53 -04:00
Transaction Science
wai-quantum: sets and sweeps, each item sealed and one receipt over their Merkle root
engine::sets expands a request with a list of programs, or one program over
a grid of its integer and real-valued inputs, into plain jobs; plans,
runs and seals them, each item with its own receipt and the set's receipt
over a head that holds the root of every item's leaf under the crate's
Merkle domains, with each item's path. The reader binds float and angle
inputs (qasm::bind); the one-job reader refuses a set (J007); J033 is the
code for a host that takes only its API keys; the planner states nominal
rates for time estimates.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 08:42:53 -04:00
Transaction Science
wai-quantum: the processor packages' energy counters on Linux, read live and labelled
engine::energy reads the power-capping interface's package zones: every
package or none, each wrap corrected, opened only when the count is live
(each package advancing in 80% of fifteen 20 ms intervals). A figure from
them is the packages' energy over the job's window with no attribution to
the job, the jobs beside it named, and its uncertainty covers the two
whole-microjoule reads and the update edges measured here. A counter that
does not read says why (no interface, or no privilege), never zero.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 08:42:53 -04:00