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 wai/quantum-0.6.15-history into main 2026-10-26 02:04:34 -04:00

2026-10-26

Transaction Science
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]>
2026-10-26 02:03:20 -04:00
Transaction Science
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]>
2026-10-26 02:02:58 -04:00
Transaction Science
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-26 02:00:38 -04:00

2026-10-25

Transaction Science
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]>
2026-10-25 21:46:19 -04:00
Transaction Science
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]>
2026-10-25 21:15:28 -04:00
Transaction Science
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]>
2026-10-25 14:52:25 -04:00