wai: every wai.quantum string is registered, listed with what it names, or a schema's name #644

Closed
dcharlot wants to merge 2 commits from wai/quantum-namespace into main
Owner

Every wai.quantum.* string in the repository is now accounted for, and a check fails on one that is not.

How a string is accounted for

wai/wai-rs/src/codecs/registry.rs stays the one source. A string is one of:

  1. A registered capability. circuit, circuit2, calibration and job, unchanged.
  2. A listed label, with what it names. The unregistered labels list now has, grouped by kind so a new label goes beside its group:
    • the six receipt kinds, unchanged and in the same order;
    • the module labels (sv, stabilizer, mps, ldpc, the calibration routines, …);
    • member names;
    • fabric kernels and corpora;
    • contract revisions (quantum-sim §2.1);
    • documents that have no schema file;
    • digest domains;
    • the strings tests and corpora use on purpose to see a refusal.
  3. The name of a quantum schema file. A wai.quantum.<doc>/<N> string is accounted for when a quantum crate has schemas/<doc>.v<N>.json whose title is that name, the naming rule wai-quantum/VERSIONING.md states. A name a schema gives as a member's const counts the same way. A new document adds only its schema file.

wai registry export regenerates wai/registry/capabilities.json and the table in wai/REGISTRY.md. REGISTRY.md's text says what the labels name and states the schema rule.

The check

scripts/check-wai-quantum-names.py reads the export, the schema files and every text file git tracks. It fails, naming the file and line, on:

  • a string nothing above accounts for;
  • a prefix.* pattern that matches nothing;
  • a schema file whose title is not its file's name;
  • a quantum label nothing outside the registry's own files uses;
  • a string the registry holds twice.

It skips binary files and the changelog, which keeps names as they were. Its self-test, scripts/check-wai-quantum-names-selftest.sh, runs ten cases in a scratch repository. repo-checks.yml runs the self-test, then the check.

Verified

  • The check passes on the tree.
  • An unlisted wai.quantum.sv/run-planted added to a source fails it with that file and line, and so does a misspelt wai.quantum.circiut2 added to quantum-sim.md. Both pass again once restored.
  • On a Linux build host:
    • wai registry export --check is up to date;
    • the registry tests pass, 14 without features and 15 with quantum_ops, including the test that holds the receipt-kind labels to wai-quantum's constants.
  • The repository checks pass: tests in CI, the conformance lists, section and spec references, the changelog entry, and the public-text checks.
  • This branch merges with each open pull request, and the check passes on each merged tree.

🤖 Generated with Claude Code


Closed: Landed as direct commits on main: 62f4d28d4 and a216476e7, under the working model of 2026-11-06. Every check on this head passed; the one red, independent verifiers, was job 92538, whose log ends 'every step ran and passed: 80 of 80' and 'Job succeeded': the runner could not report it while the forge was overloaded. The second commit lists strings that reached main after this branch was cut, which the new check would otherwise have failed on.

Every `wai.quantum.*` string in the repository is now accounted for, and a check fails on one that is not. ## How a string is accounted for `wai/wai-rs/src/codecs/registry.rs` stays the one source. A string is one of: 1. **A registered capability.** `circuit`, `circuit2`, `calibration` and `job`, unchanged. 2. **A listed label, with what it names.** The unregistered labels list now has, grouped by kind so a new label goes beside its group: - the six receipt kinds, unchanged and in the same order; - the module labels (`sv`, `stabilizer`, `mps`, `ldpc`, the calibration routines, …); - member names; - fabric kernels and corpora; - contract revisions (quantum-sim §2.1); - documents that have no schema file; - digest domains; - the strings tests and corpora use on purpose to see a refusal. 3. **The name of a quantum schema file.** A `wai.quantum.<doc>/<N>` string is accounted for when a quantum crate has `schemas/<doc>.v<N>.json` whose `title` is that name, the naming rule `wai-quantum/VERSIONING.md` states. A name a schema gives as a member's `const` counts the same way. A new document adds only its schema file. `wai registry export` regenerates `wai/registry/capabilities.json` and the table in `wai/REGISTRY.md`. REGISTRY.md's text says what the labels name and states the schema rule. ## The check `scripts/check-wai-quantum-names.py` reads the export, the schema files and every text file git tracks. It fails, naming the file and line, on: - a string nothing above accounts for; - a `prefix.*` pattern that matches nothing; - a schema file whose title is not its file's name; - a quantum label nothing outside the registry's own files uses; - a string the registry holds twice. It skips binary files and the changelog, which keeps names as they were. Its self-test, `scripts/check-wai-quantum-names-selftest.sh`, runs ten cases in a scratch repository. `repo-checks.yml` runs the self-test, then the check. ## Verified - The check passes on the tree. - An unlisted `wai.quantum.sv/run-planted` added to a source fails it with that file and line, and so does a misspelt `wai.quantum.circiut2` added to `quantum-sim.md`. Both pass again once restored. - On a Linux build host: - `wai registry export --check` is up to date; - the registry tests pass, 14 without features and 15 with `quantum_ops`, including the test that holds the receipt-kind labels to wai-quantum's constants. - The repository checks pass: tests in CI, the conformance lists, section and spec references, the changelog entry, and the public-text checks. - This branch merges with each open pull request, and the check passes on each merged tree. 🤖 Generated with [Claude Code](https://claude.com/claude-code) --- **Closed:** Landed as direct commits on main: 62f4d28d4 and a216476e7, under the working model of 2026-11-06. Every check on this head passed; the one red, independent verifiers, was job 92538, whose log ends 'every step ran and passed: 80 of 80' and 'Job succeeded': the runner could not report it while the forge was overloaded. The second commit lists strings that reached main after this branch was cut, which the new check would otherwise have failed on.
wai: every wai.quantum string is registered, listed with what it names, or a schema's name
Some checks failed
wai-fleet service / service · macos (pull_request) Successful in 58s
wai-ledger service / service · macos (pull_request) Successful in 1m11s
wai-app and Create / wai-app · Create, browser end-to-end (macos) (pull_request) Successful in 8m27s
joule-moq-web browser client / joule-moq-web · browser end-to-end (macos) (pull_request) Successful in 18m13s
wai-pack / wai-pack · macos (pull_request) Successful in 3m25s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 16m29s
wai-sink-android native sink library / every ABI, the AAR, and the instrumented tests in a headless emulator · macos (pull_request) Successful in 7m3s
WAI examples / WAI examples · the archive, the readiness check, the browser and Apple · macos (pull_request) Successful in 18m13s
repository checks / lockfiles, advisories, tests in CI, workflow hygiene, spec and section references, public text (pull_request) Successful in 2m42s
WAI Studio / Studio in Chromium and Firefox · macos (pull_request) Successful in 10m42s
wai-quantum studio and desktop / desktop app · macos (pull_request) Successful in 18m58s
WAI energy receipts / energy receipts · macos (pull_request) Successful in 24m5s
wai-sink-swift native sink package / libwai slices, desktop tests, simulator tests · macos (pull_request) Successful in 17m33s
joule-moq-remote host agent / joule-moq-remote, every target (linux-arm64) (pull_request) Successful in 1m21s
WAI conformance / v2 vocabulary · manifests validate as stated (pull_request) Successful in 19s
joule-moq-room room service / joule-moq-room, every target (pull_request) Successful in 3m39s
WAI conformance / each feature of the independent verifiers' steps compiles alone (pull_request) Successful in 11m56s
WAI conformance / delivery telemetry · CMCD and CMSD against an independent library (pull_request) Successful in 35s
standards workspaces build + test / joule-code-rs (joule-code/joule-code-rs, joule-code-rs, linux-arm64, true) (pull_request) Successful in 16m9s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 16m19s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 47s
wai-pack / wai-pack · linux-arm64 (pull_request) Failing after 7h34m11s
WAI examples / WAI examples · android-app · linux-arm64 (pull_request) Failing after 7h34m29s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Failing after 7h34m55s
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Failing after 7h49m22s
wai-pack / wai-pack · dependency licences (pull_request) Successful in 36s
wai-pack / wai-pack · the floor through a media prober (pull_request) Successful in 47s
wai-sink-android native sink library / the JNI layer and the platform-free half on the host JVM · linux-arm64 (pull_request) Successful in 2m34s
wai-pack / wai-pack · independent verifier (Python) (pull_request) Has been cancelled
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Has been cancelled
09484ade64
The registry's unregistered labels now hold every wai.quantum string the tree uses
that no revision registers, each saying what it names, grouped: the receipt kinds,
the modules of wai-quantum, the names a record's members carry, the fabric's kernels
and corpora, the circuit contracts' revisions, the documents with no schema file, the
digest domains, and the strings the tests and the provider corpus give a reader to see
it refuse them. A document's name, wai.quantum.<document>/<major>, is accounted for by
its schema file (schemas/<document>.v<major>.json, its title the name) and needs no row.

scripts/check-wai-quantum-names.py reads the registry export and the schema files and
every text file but the changelog, and names the file and line of any string neither
accounts for; it also fails on a pattern that matches nothing, a schema file whose
title is not its file's name, a quantum label nothing outside the registry uses, and a
string held twice. The repository checks run it and its self-test. The wai-quantum
constants test compares the receipt kinds alone, and the registry test refuses a label
listed twice.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
wai dev's test: the stand-in room service listens without a reverse lookup
Some checks failed
WAI operation catalogue / the catalogue and every door · linux (pull_request) Successful in 16m18s
wai-web reach builds / wai-web reach builds · this tree's wai-web, every rung on its engine line (pull_request) Successful in 8m47s
WAI Studio / Studio in Chromium and Firefox · macos (pull_request) Successful in 9m57s
WAI energy receipts / energy receipts · linux (pull_request) Successful in 17m54s
WAI Studio / Studio in WebKit · linux (pull_request) Successful in 13m33s
wai-sink-android native sink library / every ABI, the AAR, and the instrumented tests in a headless emulator · macos (pull_request) Successful in 15m23s
WAI examples / WAI examples · the archive, the readiness check, the browser and Apple · macos (pull_request) Successful in 16m35s
wai-sink-swift native sink package / libwai slices, desktop tests, simulator tests · macos (pull_request) Successful in 19m21s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 28m41s
WAI breaking changes and the conformance runner / WAI breaking · wire, record and API against main · linux (pull_request) Successful in 1m47s
WAI breaking changes and the conformance runner / WAI breaking and conform · their tests, and the independent verifiers through wai conform · linux (pull_request) Successful in 4m9s
WAI examples / WAI examples · portable · linux (pull_request) Successful in 42m55s
wai-quantum studio and desktop / desktop app · windows (pull_request) Successful in 9m5s
joule-moq-remote host agent / joule-moq-remote, every target (linux-arm64) (pull_request) Successful in 3m58s
joule-moq-room room service / joule-moq-room, every target (pull_request) Successful in 6m10s
WAI conformance / v2 vocabulary · manifests validate as stated (pull_request) Successful in 12m28s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 30m3s
WAI conformance / delivery telemetry · CMCD and CMSD against an independent library (pull_request) Successful in 1m21s
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 31m5s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 1m33s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 3m26s
wai-pack / wai-pack · linux-arm64 (pull_request) Successful in 3m34s
wai-pack / wai-pack · the floor through a media prober (pull_request) Successful in 34s
wai-pack / wai-pack · dependency licences (pull_request) Successful in 1m51s
standards workspaces build + test / joule-code-rs (joule-code/joule-code-rs, joule-code-rs, linux-arm64, true) (pull_request) Successful in 37m18s
wai-sink-android native sink library / the JNI layer and the platform-free half on the host JVM · linux-arm64 (pull_request) Successful in 3m58s
wai-pack / wai-pack · independent verifier (Python) (pull_request) Successful in 9m41s
WAI conformance / each feature of the independent verifiers' steps compiles alone (pull_request) Successful in 28m1s
WAI examples / WAI examples · android-app · linux-arm64 (pull_request) Successful in 8m30s
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Failing after 2h0m52s
bc709924e5
tests/cli_studio.rs failed on every run on one macOS runner and passed on
every other runner, 3 of 3 against 19 of 19 on 5 November, with "the room
service's clock on the relay: not within 30 s".

The stand-in room service starts an HTTPServer, whose server_bind calls
socket.getfqdn before the server listens. On that host, under the runner's
Python 3.15.2, getfqdn("127.0.0.1") takes 35 s, past the 30 s wai dev waits, and
a stack dump of the stalled stand-in shows it there. The stand-in relay opens a
plain socket and answers in 0.1 s. Nothing here reads the name, so the fixture
no longer asks for it.

On that host and Python the room stand-in took 35.5 s and now takes 0.12 s. A
socket.getfqdn planted to stall for 40 s fails the test without this change,
with the same message, and passes with it.

Changelog: none

Co-Authored-By: Claude Opus 5.5 <[email protected]>
dcharlot closed this pull request 2026-11-06 17:11:58 -05:00
Some checks failed
joule-moq-room room service / joule-moq-room · does this change touch it (pull_request) Successful in 7s
joule-moq-remote host agent / joule-moq-remote · does this change touch it (pull_request) Successful in 8s
wai-app and Create / wai-app · does this change touch it (pull_request) Successful in 9s
WAI operation catalogue / does this change touch it (pull_request) Successful in 7s
wai-audit collector and player integration / does this change touch it (pull_request) Successful in 12s
joule-moq-web browser client / joule-moq-web · does this change touch it (pull_request) Successful in 13s
standards workspaces build + test / which workspaces this change touches (pull_request) Successful in 14s
wai-fleet service / does this change touch it (pull_request) Successful in 10s
WAI energy receipts / does this change touch it (pull_request) Successful in 10s
wai-pack / wai-pack · does this change touch it (pull_request) Successful in 9s
WAI examples / WAI examples · does this change touch them (pull_request) Successful in 10s
wai-ledger service / does this change touch it (pull_request) Successful in 10s
WAI conformance / does this change touch it (pull_request) Successful in 13s
wai-quantum studio and desktop / does this change touch it (pull_request) Successful in 7s
wai-sink-android native sink library / does this change touch it (pull_request) Successful in 6s
wai-quantum for JavaScript / does this change touch it (pull_request) Successful in 10s
WAI Studio / does this change touch it (pull_request) Successful in 7s
wai-sink-swift native sink package / does this change touch it (pull_request) Successful in 9s
wai-web reach builds / wai-web reach · does this change touch it (pull_request) Successful in 8s
wai-web wasm32 / does this change touch it (pull_request) Successful in 7s
WAI breaking changes and the conformance runner / WAI breaking · does this change touch WAI (pull_request) Successful in 2m30s
WAI conformance / fast integer kernels, every x86_64 kernel set (AVX-512 silicon) (pull_request) Successful in 2m47s
repository checks / lockfiles, advisories, tests in CI, workflow hygiene, spec and section references, public text (pull_request) Successful in 4m16s
joule-moq-remote host agent / joule-moq-remote, every target (macos) (pull_request) Successful in 1m41s
wai-fleet service / service · macos (pull_request) Successful in 40s
wai-audit collector and player integration / collector, player integration and the browser end to end · macos (pull_request) Successful in 1m54s
wai-ledger service / service · macos (pull_request) Successful in 1m48s
wai-audit collector and player integration / collector · linux (pull_request) Successful in 1m33s
wai-app and Create / wai-app · tests, clippy, the line language's verifier (linux) (pull_request) Successful in 3m10s
wai-ledger service / service · linux (pull_request) Successful in 2m2s
WAI energy receipts / energy receipts · macos (pull_request) Successful in 7m40s
joule-moq-web browser client / joule-moq-web · browser end-to-end (macos) (pull_request) Successful in 15m26s
WAI conformance / cross-arch byte-equality · macos (pull_request) Successful in 26s
WAI conformance / cross-arch byte-equality · linux (pull_request) Successful in 40s
wai-app and Create / wai-app · Create, browser end-to-end (macos) (pull_request) Successful in 17m3s
WAI conformance / codec wrappers · fuzz smoke, text decode limits, C entry points, provenance, the semantic path (pull_request) Successful in 1m6s
wai-fleet service / service · linux (pull_request) Successful in 5m22s
WAI conformance / faces from keypoints under wasm32-wasip2 (wasmtime) (pull_request) Successful in 2m16s
standards workspaces build + test / macOS energy backends (pull_request) Successful in 13m10s
wai-pack / wai-pack · linux (pull_request) Successful in 2m40s
WAI Studio / the catalogue's actions, the unit tests and the core · linux (pull_request) Successful in 2m5s
wai-quantum for JavaScript / javascript · linux (pull_request) Successful in 3m9s
wai-pack / wai-pack · macos (pull_request) Successful in 4m26s
wai-quantum studio and desktop / desktop app · macos (pull_request) Successful in 4m26s
wai-web reach builds / wai-web reach builds · the package of record, every output as recorded (pull_request) Successful in 3m35s
wai-quantum studio and desktop / desktop app · linux (pull_request) Successful in 7m19s
wai-quantum studio and desktop / studio · browser (pull_request) Successful in 7m38s
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Successful in 5m26s
WAI conformance / quantum core and corpus under wasm32-wasip2 (wasmtime) (pull_request) Successful in 11m6s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 16m56s
WAI operation catalogue / the catalogue and every door · linux (pull_request) Successful in 16m18s
wai-web reach builds / wai-web reach builds · this tree's wai-web, every rung on its engine line (pull_request) Successful in 8m47s
WAI Studio / Studio in Chromium and Firefox · macos (pull_request) Successful in 9m57s
WAI energy receipts / energy receipts · linux (pull_request) Successful in 17m54s
WAI Studio / Studio in WebKit · linux (pull_request) Successful in 13m33s
wai-sink-android native sink library / every ABI, the AAR, and the instrumented tests in a headless emulator · macos (pull_request) Successful in 15m23s
WAI examples / WAI examples · the archive, the readiness check, the browser and Apple · macos (pull_request) Successful in 16m35s
wai-sink-swift native sink package / libwai slices, desktop tests, simulator tests · macos (pull_request) Successful in 19m21s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 28m41s
WAI breaking changes and the conformance runner / WAI breaking · wire, record and API against main · linux (pull_request) Successful in 1m47s
WAI breaking changes and the conformance runner / WAI breaking and conform · their tests, and the independent verifiers through wai conform · linux (pull_request) Successful in 4m9s
WAI examples / WAI examples · portable · linux (pull_request) Successful in 42m55s
wai-quantum studio and desktop / desktop app · windows (pull_request) Successful in 9m5s
joule-moq-remote host agent / joule-moq-remote, every target (linux-arm64) (pull_request) Successful in 3m58s
joule-moq-room room service / joule-moq-room, every target (pull_request) Successful in 6m10s
WAI conformance / v2 vocabulary · manifests validate as stated (pull_request) Successful in 12m28s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 30m3s
WAI conformance / delivery telemetry · CMCD and CMSD against an independent library (pull_request) Successful in 1m21s
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 31m5s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 1m33s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 3m26s
wai-pack / wai-pack · linux-arm64 (pull_request) Successful in 3m34s
wai-pack / wai-pack · the floor through a media prober (pull_request) Successful in 34s
wai-pack / wai-pack · dependency licences (pull_request) Successful in 1m51s
standards workspaces build + test / joule-code-rs (joule-code/joule-code-rs, joule-code-rs, linux-arm64, true) (pull_request) Successful in 37m18s
wai-sink-android native sink library / the JNI layer and the platform-free half on the host JVM · linux-arm64 (pull_request) Successful in 3m58s
wai-pack / wai-pack · independent verifier (Python) (pull_request) Successful in 9m41s
WAI conformance / each feature of the independent verifiers' steps compiles alone (pull_request) Successful in 28m1s
WAI examples / WAI examples · android-app · linux-arm64 (pull_request) Successful in 8m30s
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Failing after 2h0m52s

Pull request closed

Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
Transaction-Science/open-standards!644
No description provided.