wai-quantum 0.6.15 and wai-quantum-cli 0.1.3: generators, the workbench, and a program's history, attributed #478
Merged
dcharlot
merged 6 commits from 2026-10-26 02:04:34 -04:00
wai/quantum-0.6.15-history into main 2026-10-26
wai-quantum 0.6.15 and wai-quantum-cli 0.1.3: generators, the workbench, and a program's history
All checks were successful
WAI neural sink gates / model-free refusals of the neural sink (pull_request) Successful in 1m22s
wai-pack / wai-pack · linux (pull_request) Successful in 1m44s
wai-ops-gpu integer operators on GPUs / builds · no adapter is not a pass (linux) (pull_request) Successful in 2m22s
wai-quantum CUDA member / member · CUDA absent (linux) (pull_request) Successful in 27s
wai-quantum command line / command line · linux (pull_request) Successful in 1m15s
wai-quantum dataflow member / member · dataflow device, simulated (pci 1e52:b140) (pull_request) Successful in 3m37s
wai-quantum dataflow member / member · dataflow device, simulated (pci 1e52:401e) (pull_request) Successful in 4m1s
wai-quantum FPGA member / member · FPGA simulation absent (linux) (pull_request) Successful in 21s
wai-quantum Metal member / member · Metal absent (linux) (pull_request) Successful in 26s
wai-quantum neural-processor member / member · neural processor absent (linux) (pull_request) Successful in 21s
wai-quantum OpenCL member / member · OpenCL absent (linux) (pull_request) Successful in 24s
wai-quantum-qpu / clients against their contracts (linux) (pull_request) Successful in 23s
wai-quantum service / service · linux (pull_request) Successful in 1m11s
wai-quantum matrix-extension member / member · matrix extension, emulated (aarch64 Linux) (pull_request) Successful in 19s
wai-quantum studio and desktop / studio · browser (pull_request) Successful in 2m28s
wai-quantum signal processor / processor and member · signal processor, emulated (pull_request) Successful in 14m21s
wai-quantum portable tensor program / tensor program · CPU, mutants, GPU builds (pull_request) Successful in 31s
wai-quantum CPU vector units / member · vector unit, rvv 1024-bit (riscv64, emulated) (pull_request) Successful in 19s
wai-quantum tensor-engine member / member · tensor engine, the kernel toolchain's simulator (linux) (pull_request) Successful in 8m4s
wai-quantum CPU vector units / member · vector unit, sve 128-bit (aarch64, emulated) (pull_request) Successful in 26s
wai-quantum CPU vector units / member · vector unit, rvv 128-bit (riscv64, emulated) (pull_request) Successful in 31s
wai-quantum CPU vector units / member · vector unit, sve 2048-bit (aarch64, emulated) (pull_request) Successful in 16s
wai-quantum CPU vector units / member · vector unit, avx2 (x86_64 silicon) (pull_request) Successful in 16s
wai-quantum CPU vector units / member · vector unit, sve 512-bit (aarch64, emulated) (pull_request) Successful in 19s
wai-quantum WebGPU member / shader checks · browser build · wasip2 inertness · MSRV (pull_request) Successful in 3m9s
WAI mbt2018_mean integer decode (regenerated vectors) / regenerate mbt2018_mean integer vectors → Rust decode, required (pull_request) Successful in 5m24s
wai-quantum WebGPU member / member · software Vulkan (linux) (pull_request) Successful in 2m15s
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Successful in 4m23s
wai-web reach builds / wai-web reach builds · the package of record, every output as recorded (pull_request) Successful in 2m37s
wai-web reach builds / wai-web reach builds · this tree's wai-web, every rung on its engine line (pull_request) Successful in 4m53s
This carries OpenQASM 3 generators, the specification-and-evaluator workbench, the Studio's Workbench pane and a program's attributed history to the package registry. - wai-quantum 0.6.15: qasm::parse_with, qasm::inputs and qasm::instantiate; engine::discover, with equiv::same_state for the prepares task; engine::energy, moved from the job service; job::lint_with and critique::critique_with, which read a generator at its inputs; and engine::versions. - wai-quantum-cli 0.1.3 requires it: --input on every command, instance, discover new | search | eval | submit | show | verify, history start | commit | changes | propose | merge | log | blame | verify, --history on run, submit and verify, and the MCP's discover and history tools. - The desktop app requires 0.6.15 too, for discover, instantiate and the history. - Every lockfile that holds wai-quantum or wai-quantum-cli moves with them, so a --locked build still reads its own. Co-Authored-By: Claude Opus 5.5 <[email protected]>
wai-quantum: a program's history, attributed, and the Studio's Versions
Feature 6 of the co-design report: every version of a program, who made
each change and how, and whose hand each line and gate is in, sealed
into the run's receipt.
- engine::versions:
- versions in a chain, each naming its parents (none, one, or two for
a merge), who made it (the person, the assistant, an outside agent,
the engine, or where the program came from) and how (an edit, a
proposal reviewed change by change, a merge);
- a version's digest covers its parents' digests, and the recording
host's key seals it; verify checks every digest, seal and review;
- changes and apply: a line diff (Myers), so a proposal is taken
change by change, and the version keeps the whole proposal;
- blame, authorship and gate_hands: a line keeps its author until
changed; a model's or an agent's line the person edits is in both
hands; an undo keeps the earlier authors; a merge keeps each side's;
gates follow their lines, at a generator's inputs;
- attest and check_job: a job's request carries the account, the
receipt binds it, and it is recomputed from the history;
- call: the history by name with JSON arguments, for the page and the
desktop app.
- The command line: history start | commit | changes | propose | merge |
log | blame | verify; run and submit --history; verify --history.
- MCP: history_commit, history_changes, history_blame and history_log.
An agent's edit is recorded as an outside agent's, under the name its
client gave in initialize, whatever it says of itself.
- The Studio's Versions pane:
- what the reader types is theirs, recorded when they pause;
- every proposal (the assistant's program, an alternative, a generator
from the Workbench) is offered change by change while the editor
waits; a fix is the engine's;
- lines of work in lanes: an older version opened and edited starts
its own, and "Bring in" merges one change by change;
- "Who wrote it" marks lines in the gutter and gates on the diagram;
- the run's receipt binds the account, which the result recomputes;
- kept in the browser, downloaded for the command line;
- window.quantumStudio.propose for an embedding page.
- Fixes found by the Studio's test: a run shows it is running before
the account is made, and the draft is kept as the page goes.
- CI: wai-web's native engine tests count 8, the history's included.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
wai-web wasm32: the engine's native tests count the workbench's
All checks were successful
WAI conformance / cross-arch byte-equality · linux (pull_request) Successful in 26s
WAI energy receipts / energy receipts · linux (pull_request) Successful in 10m23s
wai-quantum command line / command line · linux (pull_request) Successful in 1m10s
wai-quantum CUDA member / member · CUDA absent (linux) (pull_request) Successful in 22s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 19m13s
wai-quantum dataflow member / member · dataflow device, simulated (pci 1e52:b140) (pull_request) Successful in 3m36s
wai-quantum dataflow member / member · dataflow device, simulated (pci 1e52:401e) (pull_request) Successful in 4m33s
wai-quantum FPGA member / member · FPGA simulation absent (linux) (pull_request) Successful in 19s
wai-quantum Metal member / member · Metal absent (linux) (pull_request) Successful in 22s
wai-quantum neural-processor member / member · neural processor absent (linux) (pull_request) Successful in 17s
wai-quantum OpenCL member / member · OpenCL absent (linux) (pull_request) Successful in 22s
wai-quantum-qpu / clients against their contracts (linux) (pull_request) Successful in 19s
wai-quantum service / service · linux (pull_request) Successful in 40s
wai-quantum matrix-extension member / member · matrix extension, emulated (aarch64 Linux) (pull_request) Successful in 19s
wai-quantum tensor-engine member / member · tensor engine, the kernel toolchain's simulator (linux) (pull_request) Successful in 7m34s
wai-quantum signal processor / processor and member · signal processor, emulated (pull_request) Successful in 11m45s
wai-quantum portable tensor program / tensor program · CPU, mutants, GPU builds (pull_request) Successful in 32s
wai-quantum CPU vector units / member · vector unit, rvv 1024-bit (riscv64, emulated) (pull_request) Successful in 19s
wai-quantum CPU vector units / member · vector unit, sve 128-bit (aarch64, emulated) (pull_request) Successful in 27s
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, avx2 (x86_64 silicon) (pull_request) Successful in 14s
wai-quantum studio and desktop / studio · browser (pull_request) Successful in 2m27s
wai-quantum CPU vector units / member · vector unit, sve 512-bit (aarch64, emulated) (pull_request) Successful in 12s
wai-quantum WebGPU member / member · software Vulkan (linux) (pull_request) Successful in 2m11s
wai-quantum WebGPU member / shader checks · browser build · wasip2 inertness · MSRV (pull_request) Successful in 3m14s
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Successful in 4m20s
WAI mbt2018_mean integer decode (regenerated vectors) / regenerate mbt2018_mean integer vectors → Rust decode, required (pull_request) Successful in 5m22s
wai-web reach builds / wai-web reach builds · the package of record, every output as recorded (pull_request) Successful in 2m41s
wai-web reach builds / wai-web reach builds · this tree's wai-web, every rung on its engine line (pull_request) Successful in 4m31s
The step pins the count of quantum_engine:: tests so a test that stops being compiled fails it. The workbench test in the page makes it 7. Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25
Quantum Studio: the Workbench, and generators in the editor
Some checks failed
wai-web reach builds / wai-web reach builds · this tree's wai-web, every rung on its engine line (pull_request) Successful in 5m1s
WAI conformance / quantum core and corpus under wasm32-wasip2 (wasmtime) (pull_request) Successful in 2m7s
WAI conformance / cross-arch byte-equality · linux (pull_request) Successful in 32s
WAI energy receipts / energy receipts · linux (pull_request) Successful in 10m12s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 19m7s
wai-quantum command line / command line · linux (pull_request) Successful in 1m16s
wai-quantum CUDA member / member · CUDA absent (linux) (pull_request) Successful in 26s
wai-quantum dataflow member / member · dataflow device, simulated (pci 1e52:b140) (pull_request) Successful in 3m35s
wai-quantum dataflow member / member · dataflow device, simulated (pci 1e52:401e) (pull_request) Successful in 4m22s
wai-quantum FPGA member / member · FPGA simulation absent (linux) (pull_request) Successful in 20s
wai-quantum Metal member / member · Metal absent (linux) (pull_request) Successful in 25s
wai-quantum neural-processor member / member · neural processor absent (linux) (pull_request) Successful in 20s
wai-quantum OpenCL member / member · OpenCL absent (linux) (pull_request) Successful in 23s
wai-quantum-qpu / clients against their contracts (linux) (pull_request) Successful in 21s
wai-quantum service / service · linux (pull_request) Successful in 42s
wai-quantum matrix-extension member / member · matrix extension, emulated (aarch64 Linux) (pull_request) Successful in 16s
wai-quantum studio and desktop / studio · browser (pull_request) Successful in 2m28s
wai-quantum signal processor / processor and member · signal processor, emulated (pull_request) Successful in 12m13s
wai-quantum portable tensor program / tensor program · CPU, mutants, GPU builds (pull_request) Successful in 26s
wai-quantum CPU vector units / member · vector unit, rvv 1024-bit (riscv64, emulated) (pull_request) Successful in 10s
wai-quantum CPU vector units / member · vector unit, sve 128-bit (aarch64, emulated) (pull_request) Successful in 18s
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 12s
wai-quantum CPU vector units / member · vector unit, avx2 (x86_64 silicon) (pull_request) Successful in 5s
wai-quantum CPU vector units / member · vector unit, sve 512-bit (aarch64, emulated) (pull_request) Successful in 14s
wai-quantum tensor-engine member / member · tensor engine, the kernel toolchain's simulator (linux) (pull_request) Successful in 7m37s
wai-quantum WebGPU member / member · software Vulkan (linux) (pull_request) Successful in 2m11s
wai-quantum WebGPU member / shader checks · browser build · wasip2 inertness · MSRV (pull_request) Successful in 3m15s
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Failing after 3m42s
WAI mbt2018_mean integer decode (regenerated vectors) / regenerate mbt2018_mean integer vectors → Rust decode, required (pull_request) Successful in 5m27s
The workbench from the last change, in the Studio: a family of circuits
searched for its cheapest members, every proposal judged by the engine.
And the editor reads a generator at its inputs' values, which the
Workbench needs and everything else gains from.
- Generators in the editor (generators.js):
- a field for each declared input under the editor, kept by name;
- the lint and the critique read the generator at those values and
keep its own lines (job::lint_with, critique::critique_with; a smell
in a generator offers no Fix);
- the diagram, the plan, a run here or on the service, the lens and the
alternatives take the circuit it writes out (qasm::instantiate, in the
page and in the desktop app). A new value re-lints through the
linter's needsRefresh.
- The Workbench pane (workbench.js):
- a form for the specification, the archive's elites on the two axes
with the cheapest marked, and an entry's cost, check, seal and lineage,
with "Open in editor";
- three proposers, each named on what it found: the reader, the blind
search (in steps of 25, so its progress shows) and the model;
- the archive kept in the browser, back with the page, and downloaded
beside its specification as `wai-quantum discover verify` reads them.
- The model as a proposer (Assistant.propose): it is told the
specification and shown the cheapest found, with the costs the engine
measured. The assistant's brief now says while, inv and pow are refused,
not loops.
- Bindings: discover_start, discover_submit, discover_search,
discover_evaluate and instantiate in wai-web and the desktop app, which
also counts a search's seconds and joules.
- Tests:
- the engine: a generator critiqued at its inputs, with its own lines
and no Fix;
- wai-web: the workbench run and sealed in the page;
- the Studio, in a browser: a generator linted, drawn and run at its
value; the Workbench started from it, a hundred blind edits judged,
the reader's log-depth tree kept as the cheapest, opened, downloaded
and back after a reload; a scripted model's generators judged at every
size, one kept, a wrong one and a forbidden gate left out with their
reasons.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
wai-quantum-service: the energy test module is macOS-only, so Linux builds it with no unused import
All checks were successful
wai-quantum service / service · macos (pull_request) Successful in 45s
wai-quantum matrix-extension member / member · matrix extension absent (macos) (pull_request) Successful in 12s
wai-quantum signal processor / processor and member · signal processor, emulated (pull_request) Successful in 15m35s
wai-quantum portable tensor program / tensor program · CPU, mutants, GPU builds (pull_request) Successful in 39s
wai-quantum studio and desktop / desktop app · macos (pull_request) Successful in 2m21s
wai-quantum tensor-engine member / member · tensor engine, the kernel toolchain's simulator (linux) (pull_request) Successful in 9m10s
wai-quantum CPU vector units / member · vector unit, rvv 1024-bit (riscv64, emulated) (pull_request) Successful in 22s
wai-quantum portable tensor program / tensor program · Metal and the arm64 CPU (macos) (pull_request) Successful in 17s
wai-quantum CPU vector units / member · vector unit absent (macos) (pull_request) Successful in 14s
wai-quantum CPU vector units / member · vector unit, sve 128-bit (aarch64, emulated) (pull_request) Successful in 34s
wai-quantum CPU vector units / member · vector unit, rvv 128-bit (riscv64, emulated) (pull_request) Successful in 35s
wai-quantum CPU vector units / member · vector unit, sve 2048-bit (aarch64, emulated) (pull_request) Successful in 17s
wai-quantum CPU vector units / member · vector unit, avx2 (x86_64 silicon) (pull_request) Successful in 18s
wai-quantum CPU vector units / member · vector unit, sve 512-bit (aarch64, emulated) (pull_request) Successful in 20s
wai-quantum WebGPU member / member · Metal (macos) (pull_request) Successful in 2m37s
wai-quantum WebGPU member / member · software Vulkan (linux) (pull_request) Successful in 2m27s
wai-quantum WebGPU member / member · browser WebGPU (macos) (pull_request) Successful in 1m47s
wai-quantum WebGPU member / shader checks · browser build · wasip2 inertness · MSRV (pull_request) Successful in 3m52s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 15m21s
WAI conformance / delivery telemetry · CMCD and CMSD against an independent library (pull_request) Successful in 11s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 31s
wai-web reach builds / wai-web reach builds · the package of record, every output as recorded (pull_request) Successful in 3m0s
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Successful in 4m40s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 1m29s
wai-web reach builds / wai-web reach builds · this tree's wai-web, every rung on its engine line (pull_request) Successful in 5m33s
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 7m53s
wai-quantum HIP member / member · HIP absent (linux-arm64) (pull_request) Successful in 28s
wai-quantum npu-cores member / member · npu-cores absent (linux-arm64) (pull_request) Successful in 27s
wai-quantum tensor-engine member / member · tensor engine absent (linux-arm64) (pull_request) Successful in 20s
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Successful in 46m5s
Co-Authored-By: Claude Opus 5.5 <[email protected]>
wai-quantum: the specification-and-evaluator workbench
All checks were successful
wai-quantum tensor-engine member / member · tensor engine, the kernel toolchain's simulator (linux) (pull_request) Successful in 7m28s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 13m20s
WAI conformance / cross-arch byte-equality · macos (pull_request) Successful in 19s
wai-quantum WebGPU member / member · software Vulkan (linux) (pull_request) Successful in 2m9s
WAI conformance / codec wrappers · fuzz smoke, text decode limits, C entry points, provenance, the semantic path (pull_request) Successful in 47s
wai-quantum WebGPU member / shader checks · browser build · wasip2 inertness · MSRV (pull_request) Successful in 3m33s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 14m25s
WAI conformance / delivery telemetry · CMCD and CMSD against an independent library (pull_request) Successful in 26s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 34s
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Successful in 3m58s
WAI energy receipts / energy receipts · macos (pull_request) Successful in 4m41s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 1m37s
wai-quantum command line / command line · macos (pull_request) Successful in 32s
wai-quantum dataflow member / member · dataflow device absent (macos) (pull_request) Successful in 15s
wai-quantum FPGA member / member · FPGA datapath, simulated (macos) (pull_request) Successful in 1m10s
wai-quantum Metal member / member · Metal (macos) (pull_request) Successful in 27s
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 6m50s
wai-quantum HIP member / member · HIP absent (linux-arm64) (pull_request) Successful in 22s
wai-quantum npu-cores member / member · npu-cores absent (linux-arm64) (pull_request) Successful in 22s
wai-quantum tensor-engine member / member · tensor engine absent (linux-arm64) (pull_request) Successful in 19s
wai-quantum neural-processor member / member · neural processor (macos) (pull_request) Successful in 5m45s
wai-quantum OpenCL member / member · OpenCL GPU (macos) (pull_request) Successful in 20s
wai-quantum service / service · macos (pull_request) Successful in 40s
wai-quantum matrix-extension member / member · matrix extension absent (macos) (pull_request) Successful in 11s
wai-quantum studio and desktop / desktop app · macos (pull_request) Successful in 2m11s
wai-quantum portable tensor program / tensor program · Metal and the arm64 CPU (macos) (pull_request) Successful in 15s
wai-quantum CPU vector units / member · vector unit absent (macos) (pull_request) Successful in 13s
wai-quantum WebGPU member / member · Metal (macos) (pull_request) Successful in 2m27s
wai-quantum WebGPU member / member · browser WebGPU (macos) (pull_request) Successful in 1m43s
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Successful in 41m4s
A person writes what a family of circuits must do and what it costs;
proposers write generators; the engine checks each one at every size and
an archive keeps the cheapest verified generator of every kind. The
largest unbuilt feature of the co-design research: the evaluator is the
engine, never a model's judgement.
- engine::discover:
- Spec: the task (equivalent, or prepares: the same state from
|0…0⟩, the new equiv::same_state), the reference generator, the
sizes, the gates and connectivity allowed, the cost (weights on the
critique's measures, summed over the sizes), two axes and a budget.
- Evaluator: verified only when it reads, keeps the rules and passes
the check at every size, stopping at the first failure; the weakest
check is named.
- Archive: MAP-Elites over the two axes, with lineage, proposer and
note; bound to the specification's digest (budget left out); each
kept entry sealed with the searcher's key, and Archive::verify checks
every seal binds its entry.
- mutate and search: the built-in, seeded, blind baseline. The clock
and the energy reading are passed in, so the module builds wherever
the engine does.
- engine::energy: the job service's reader moved into the engine, with
`own()` for a running process. The service keeps only waitid(WNOWAIT);
the FFI is declared directly, so wai-quantum gains no dependency and
no lockfile changes.
- critique::measures is public.
- CLI: `wai-quantum discover new|search|eval|submit|show|verify`, with
specifications that may name their reference as @file.qasm, and two
shipped specifications (discover/ghz-line.json, discover/ghz-all.json).
- MCP: discover_evaluate, discover_submit, discover_archive; and every
tool that takes a program takes a generator with `inputs`. The program
description no longer says loops are refused.
Measured on the build host, ghz-all.json: 1,500 blind edits in 4.6 s and
24 J. 139 were verified and 29 kept, none cheaper than the reference;
the doubling tree costs 25 against its 49. All 29 seals held.
Co-Authored-By: Claude Opus 5.5 <[email protected]>