wai: one operation catalogue (noun.verb) for every door, wai ops, the agent rules on every command, and the wai-* service binaries #506

Merged
dcharlot merged 26 commits from wai/ops-catalogue into main 2026-10-28 11:17:27 -04:00

2026-10-28

Transaction Science
wai-app e2e: read wai app check's envelope as envelope/1 lays it out
All checks were successful
wai-ledger service / service · macos (pull_request) Successful in 58s
WAI Studio / Studio in WebKit · linux (pull_request) Successful in 9m51s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 18m30s
WAI examples / WAI examples · the archive, the readiness check, the browser and Apple · macos (pull_request) Successful in 13m52s
wai-pack / wai-pack · macos (pull_request) Successful in 2m49s
wai-ops-gpu integer operators on GPUs / Metal GPU and browser WebGPU (macos) (pull_request) Successful in 10m16s
WAI HTTP delivery / HTTP corpus · falsify patches 0/3 (pull_request) Successful in 6m24s
wai-quantum studio and desktop / desktop app · macos (pull_request) Successful in 4m9s
wai-sink-android native sink library / every ABI, the AAR, and the instrumented tests in a headless emulator · macos (pull_request) Successful in 7m39s
WAI HTTP delivery / HTTP corpus · falsify mutations 0/3 (pull_request) Successful in 33m27s
joule-moq-remote host agent / joule-moq-remote, every target (macos) (pull_request) Successful in 55s
WAI HTTP delivery / HTTP corpus · falsify patches 1/3 (pull_request) Successful in 6m39s
WAI HTTP delivery / HTTP corpus · every patch and mutation in exactly one shard (pull_request) Successful in 5s
WAI HTTP delivery / HTTP corpus · falsify mutations 1/3 (pull_request) Successful in 32m48s
WAI HTTP delivery / cache rules · controls and labelled caches (pull_request) Successful in 1m50s
WAI HTTP delivery / HTTP corpus · falsify mutations 2/3 (pull_request) Successful in 32m47s
WAI HTTP delivery / HTTP corpus · verified both ways, and the differential (pull_request) Successful in 2m20s
wai-pack / wai-pack · the floor through a media prober (pull_request) Successful in 21s
WAI Studio / Studio in Chromium and Firefox · macos (pull_request) Successful in 9m33s
wai-pack / wai-pack · linux-arm64 (pull_request) Successful in 2m2s
wai-pack / wai-pack · dependency licences (pull_request) Successful in 1m39s
joule-moq-remote host agent / joule-moq-remote, every target (linux-arm64) (pull_request) Successful in 1m32s
WAI HTTP delivery / HTTP corpus · falsify patches 2/3 (pull_request) Successful in 6m58s
wai-sink-android native sink library / the JNI layer and the platform-free half on the host JVM · linux-arm64 (pull_request) Successful in 3m4s
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Successful in 59m15s
wai-sink-swift native sink package / libwai slices, desktop tests, simulator tests · macos (pull_request) Successful in 16m40s
wai-pack / wai-pack · independent verifier (Python) (pull_request) Successful in 7m34s
joule-moq-room room service / joule-moq-room, every target (pull_request) Successful in 4m6s
wai-app and Create / wai-app · Create, browser end-to-end (macos) (pull_request) Successful in 7m30s
joule-moq-web browser client / joule-moq-web · browser end-to-end (macos) (pull_request) Successful in 15m49s
The catalogue's agent rules carry an operation's answer under `data`
(envelope/1); the Create e2e still read the older `result`, so each refusal
case found no failures and failed. The passing case only read `ok`.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 09:42:21 -04:00
Transaction Science
WAI Studio reads the catalogue; dev.start declares --show, --audience and Studio's route
Some checks failed
joule-code conformance gate / joule-moq-relay, its own energy on a counter (macos) (pull_request) Successful in 39s
joule-moq-remote host agent / joule-moq-remote, every target (macos) (pull_request) Successful in 56s
WAI HTTP delivery / HTTP corpus · verified both ways, and the differential (pull_request) Successful in 2m14s
WAI HTTP delivery / cache rules · controls and labelled caches (pull_request) Successful in 1m23s
wai-pack / wai-pack · linux-arm64 (pull_request) Successful in 1m32s
WAI HTTP delivery / HTTP corpus · falsify mutations 0/3 (pull_request) Successful in 31m45s
wai-pack / wai-pack · the floor through a media prober (pull_request) Successful in 24s
wai-pack / wai-pack · dependency licences (pull_request) Successful in 1m18s
WAI HTTP delivery / HTTP corpus · falsify mutations 1/3 (pull_request) Successful in 31m16s
WAI HTTP delivery / HTTP corpus · falsify mutations 2/3 (pull_request) Successful in 31m25s
wai-sink-android native sink library / the JNI layer and the platform-free half on the host JVM · linux-arm64 (pull_request) Successful in 2m16s
wai-pack / wai-pack · independent verifier (Python) (pull_request) Successful in 6m32s
standards workspaces build + test / macOS energy backends (pull_request) Successful in 8m42s
joule-moq-web browser client / joule-moq-web · browser end-to-end (macos) (pull_request) Successful in 14m40s
wai-audit collector and player integration / collector, player integration and the browser end to end · macos (pull_request) Successful in 1m22s
wai-app and Create / wai-app · Create, browser end-to-end (macos) (pull_request) Failing after 6m51s
WAI conformance / cross-arch byte-equality · macos (pull_request) Successful in 27s
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Successful in 57m7s
WAI conformance / codec wrappers · fuzz smoke, text decode limits, C entry points, provenance, the semantic path (pull_request) Successful in 1m8s
WAI energy receipts / energy receipts · macos (pull_request) Successful in 7m22s
wai-fleet service / service · macos (pull_request) Successful in 42s
wai-ledger service / service · macos (pull_request) Successful in 48s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 20m3s
wai-ops-gpu integer operators on GPUs / Metal GPU and browser WebGPU (macos) (pull_request) Successful in 9m41s
WAI examples / WAI examples · the archive, the readiness check, the browser and Apple · macos (pull_request) Successful in 11m56s
wai-pack / wai-pack · macos (pull_request) Successful in 2m41s
wai-quantum studio and desktop / desktop app · macos (pull_request) Successful in 3m20s
wai-sink-android native sink library / every ABI, the AAR, and the instrumented tests in a headless emulator · macos (pull_request) Successful in 6m30s
WAI Studio / Studio in Chromium and Firefox · macos (pull_request) Successful in 8m57s
wai-sink-swift native sink package / libwai slices, desktop tests, simulator tests · macos (pull_request) Successful in 14m53s
With the catalogue on this branch, Studio's pending copy of it goes:
wai/wai-studio/ops.pending.json is removed, and src/actions.generated.js is
generated from wai/catalogue/ops.json (96 operations). The fleet's four
operations, placed on the client, are bound as run from the command line,
as the drift check requires. dev.start's usage, help and inputs now name
--show and --audience, which `wai dev` already took, and say that Studio is
served at /_wai/ when its files are found.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 08:04:00 -04:00
Transaction Science
Merge remote-tracking branch 'origin/main' into wai/ops-catalogue
# Conflicts:
#	wai/CHANGELOG.md
#	wai/wai-rs/src/bin/wai_cli/dx/dev.rs
2026-10-28 08:03:14 -04:00
Transaction Science
CHANGELOG: the breaks this branch makes on purpose, each by the id wai breaking gives it
Some checks failed
wai-fleet service / service · macos (pull_request) Successful in 43s
wai-ledger service / service · macos (pull_request) Successful in 52s
wai-web reach builds / wai-web reach builds · the package of record, every output as recorded (pull_request) Successful in 3m21s
wai-web reach builds / wai-web reach builds · this tree's wai-web, every rung on its engine line (pull_request) Successful in 4m40s
WAI HTTP delivery / HTTP corpus · falsify patches 1/3 (pull_request) Successful in 6m45s
WAI HTTP delivery / HTTP corpus · falsify mutations 0/3 (pull_request) Successful in 33m25s
WAI HTTP delivery / HTTP corpus · every patch and mutation in exactly one shard (pull_request) Successful in 6s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 19m3s
WAI examples / WAI examples · the archive, the readiness check, the browser and Apple · macos (pull_request) Successful in 14m4s
WAI HTTP delivery / HTTP corpus · verified both ways, and the differential (pull_request) Successful in 2m14s
wai-pack / wai-pack · macos (pull_request) Successful in 2m47s
WAI HTTP delivery / HTTP corpus · falsify mutations 1/3 (pull_request) Successful in 32m20s
WAI HTTP delivery / cache rules · controls and labelled caches (pull_request) Successful in 1m25s
wai-ops-gpu integer operators on GPUs / Metal GPU and browser WebGPU (macos) (pull_request) Successful in 10m1s
WAI HTTP delivery / HTTP corpus · falsify mutations 2/3 (pull_request) Successful in 32m31s
wai-pack / wai-pack · the floor through a media prober (pull_request) Successful in 18s
wai-pack / wai-pack · linux-arm64 (pull_request) Successful in 1m41s
WAI HTTP delivery / HTTP corpus · falsify patches 2/3 (pull_request) Successful in 6m8s
wai-quantum studio and desktop / desktop app · macos (pull_request) Successful in 3m32s
wai-pack / wai-pack · dependency licences (pull_request) Successful in 1m19s
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 conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Successful in 1h0m5s
wai-pack / wai-pack · independent verifier (Python) (pull_request) Successful in 7m14s
wai-sink-android native sink library / every ABI, the AAR, and the instrumented tests in a headless emulator · macos (pull_request) Successful in 7m10s
wai-sink-swift native sink package / libwai slices, desktop tests, simulator tests · macos (pull_request) Successful in 17m15s
joule-moq-remote host agent / joule-moq-remote, every target (linux-arm64) (pull_request) Successful in 1m22s
joule-moq-room room service / joule-moq-room, every target (pull_request) Successful in 4m19s
joule-moq-remote host agent / joule-moq-remote, every target (macos) (pull_request) Successful in 59s
wai-app and Create / wai-app · Create, browser end-to-end (macos) (pull_request) Failing after 8m0s
joule-moq-web browser client / joule-moq-web · browser end-to-end (macos) (pull_request) Successful in 15m39s
wai::ops gives way to wai::catalogue, and the room service's three challenges take the
operationIds the naming rule gives them; wai breaking --against main names these eight and
nothing else.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 05:35:58 -04:00
Transaction Science
The fleet's operations in the catalogue, and one confirmation flag, --yes
enrolment.create, enrolment.list, report.create and report.export join the catalogue as the
other operations are: placed on the client against a fleet service, with their effect, toolset,
input and output schemas, receipt and the features they need (fleet for the two that sign or
verify). wai enrolment|report run through the door, and the fleet's command module keeps the
agent rules of dx/envelope.rs instead of its own copy of them: the envelope with --json, every
file through out.rs and every request to the service named in a dry run's plan and not sent
(out::would_send), and --yes before the service is changed or a file replaced, exit 4 off a
terminal with the proposal and the confirming command.

A catalogue entry now says when it waits for confirmation (Op::confirms: never, a file the
command line did not name, any file, the target or a file, always), and the rules refuse a
change to a target that does not wait and a read that does. The export carries it and the
agent flags (AGENT_FLAGS), from which wai --help is written: --yes is the one confirmation
flag, and --confirm, which wai conform, wai setup-agent and the fleet took, is its deprecated
spelling, still accepted, so named in help, in every confirming operation's help and in the
export. wai conform confirms through the same module. wai verify's entry names the
conformance results and fleet bundles it reads.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 05:32:21 -04:00
Transaction Science
Merge origin/main into wai/ops-catalogue: #507, #518 and #521 as they landed
Main's final #507 replaces the copy this branch carried: wai breaking's base holds every
standard its crate reaches by path (rust_api.rs), and the conform adapter is main's. The
agent rules stay in one module, dx/envelope.rs, as this branch extended it; the command line
stays the catalogue's (door.rs, dx::VERBS by operation id). wai verify reads fleet bundles as
main has it, its errors the envelope's. The quickstart build carries fleet; cli_ops and
cli_fleet are both test targets; lib.rs gates strict_json on fleet too. The changelog keeps
this branch's entry above #507's and the fleet's. The fleet's command module is declared and
is routed through the catalogue in the next commit.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 05:20:01 -04:00

2026-10-27

Transaction Science
cli_breaking: the measurement test reads the envelope's data
Some checks failed
wai-audit collector and player integration / collector, player integration and the browser end to end · macos (pull_request) Successful in 1m42s
WAI conformance / cargo-class corpora · macos (pull_request) Failing after 2m10s
WAI conformance / cross-arch byte-equality · macos (pull_request) Successful in 27s
standards workspaces build + test / macOS energy backends (pull_request) Successful in 10m2s
WAI conformance / codec wrappers · fuzz smoke, text decode limits, C entry points, provenance, the semantic path (pull_request) Successful in 1m22s
WAI HTTP delivery / HTTP corpus · falsify mutations 0/3 (pull_request) Successful in 35m20s
WAI HTTP delivery / HTTP corpus · falsify mutations 1/3 (pull_request) Successful in 34m51s
WAI HTTP delivery / HTTP corpus · falsify patches 0/3 (pull_request) Successful in 6m22s
WAI HTTP delivery / HTTP corpus · every patch and mutation in exactly one shard (pull_request) Successful in 7s
WAI HTTP delivery / HTTP corpus · falsify mutations 2/3 (pull_request) Successful in 34m48s
WAI HTTP delivery / HTTP corpus · verified both ways, and the differential (pull_request) Successful in 2m23s
WAI HTTP delivery / cache rules · controls and labelled caches (pull_request) Successful in 1m29s
wai-pack / wai-pack · linux-arm64 (pull_request) Successful in 1m42s
WAI energy receipts / energy receipts · macos (pull_request) Successful in 6m21s
wai-pack / wai-pack · the floor through a media prober (pull_request) Successful in 26s
wai-ledger service / service · macos (pull_request) Successful in 56s
WAI HTTP delivery / HTTP corpus · falsify patches 1/3 (pull_request) Successful in 7m3s
WAI HTTP delivery / HTTP corpus · falsify patches 2/3 (pull_request) Successful in 6m30s
wai-pack / wai-pack · dependency licences (pull_request) Successful in 1m32s
wai-sink-android native sink library / the JNI layer and the platform-free half on the host JVM · linux-arm64 (pull_request) Successful in 2m50s
wai-pack / wai-pack · macos (pull_request) Successful in 3m10s
wai-pack / wai-pack · independent verifier (Python) (pull_request) Successful in 7m27s
wai-quantum studio and desktop / desktop app · macos (pull_request) Successful in 2m54s
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Successful in 1h3m30s
WAI examples / WAI examples · the archive, the readiness check, the browser and Apple · macos (pull_request) Successful in 15m39s
wai-quantum WebGPU member / member · Metal (macos) (pull_request) Successful in 3m1s
wai-quantum WebGPU member / member · browser WebGPU (macos) (pull_request) Successful in 2m4s
wai-ops-gpu integer operators on GPUs / Metal GPU and browser WebGPU (macos) (pull_request) Successful in 11m6s
wai-sink-android native sink library / every ABI, the AAR, and the instrumented tests in a headless emulator · macos (pull_request) Successful in 8m4s
wai-sink-swift native sink package / libwai slices, desktop tests, simulator tests · macos (pull_request) Successful in 18m1s
wai breaking's report is the data of the agent rules' envelope; the test added with the
measurement list read its findings and notes at the top level.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 06:05:08 -04:00
Transaction Science
2026-10-27 06:00:31 -04:00
Transaction Science
Bring wai mcp, wai setup-agent, Create and the room service's API into the catalogue, renamed to N3
Some checks failed
wai-pack / wai-pack · does this change touch it (pull_request) Has been cancelled
wai-pack / wai-pack · linux (pull_request) Has been cancelled
wai-pack / wai-pack · linux-arm64 (pull_request) Has been cancelled
wai-pack / wai-pack · macos (pull_request) Has been cancelled
wai-pack / wai-pack · independent verifier (Python) (pull_request) Has been cancelled
wai-pack / wai-pack · the floor through a media prober (pull_request) Has been cancelled
wai-pack / wai-pack · dependency licences (pull_request) Has been cancelled
wai-quantum studio and desktop / does this change touch it (pull_request) Has been cancelled
wai-quantum studio and desktop / studio · browser (pull_request) Has been cancelled
wai-quantum studio and desktop / desktop app · macos (pull_request) Has been cancelled
wai-quantum WebGPU member / does this change touch it (pull_request) Has been cancelled
wai-quantum WebGPU member / shader checks · browser build · wasip2 inertness · MSRV (pull_request) Has been cancelled
wai-quantum WebGPU member / member · software Vulkan (linux) (pull_request) Has been cancelled
wai-quantum WebGPU member / member · Metal (macos) (pull_request) Has been cancelled
wai-quantum WebGPU member / member · discrete GPU, Vulkan (jetson-hub) (pull_request) Has been cancelled
wai-quantum WebGPU member / member · integrated GPU, Vulkan (framework-128gb) (pull_request) Has been cancelled
wai-quantum WebGPU member / member · browser WebGPU (macos) (pull_request) Has been cancelled
wai-sink-android native sink library / does this change touch it (pull_request) Has been cancelled
wai-sink-android native sink library / the JNI layer and the platform-free half on the host JVM · linux-arm64 (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 / does this change touch it (pull_request) Has been cancelled
wai-sink-swift native sink package / libwai slices, desktop tests, simulator tests · macos (pull_request) Has been cancelled
WAI mbt2018_mean integer decode (regenerated vectors) / does this change touch it (pull_request) Has been cancelled
WAI mbt2018_mean integer decode (regenerated vectors) / regenerate mbt2018_mean integer vectors → Rust decode, required (pull_request) Has been cancelled
wai-web reach builds / wai-web reach · does this change touch it (pull_request) Has been cancelled
wai-web reach builds / wai-web reach builds · the package of record, every output as recorded (pull_request) Has been cancelled
wai-web reach builds / wai-web reach builds · this tree's wai-web, every rung on its engine line (pull_request) Has been cancelled
wai-web wasm32 / does this change touch it (pull_request) Has been cancelled
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Has been cancelled
wai-quantum WebGPU member / member · DX12 and Vulkan (cbio-windows) (pull_request) Has been cancelled
Merged #508 (wai/create-2, stacked on #505) before they reach main, as the coordinator
directs: they merge before this branch, which builds the catalogue over them.

- The catalogue holds every operation they add: mcp.start (wai mcp; it was agent.mcp),
  agent.setup, app.guide, app.check, app.export (wai app export, also wai create --from),
  app.stream, registry.show, docs.search, dev.stop, room.join, room.leave, session.show
  (it was room.session), and the room service's 40 operations at their routes.
- Renamed to the verb rule: the MCP tool package_build is envelope_wrap (it does what wai
  wrap does; package.build stays for real packaging); the room service's challenges are
  watch.setup, conversation.setup and call.setup (no compound nouns); in the OpenAPI
  document, its contract test, the MCP table and tests, the docs.
- wai::ops is folded into wai::catalogue: the tool table's tests hold it to the catalogue
  both ways (every tool an operation the catalogue says wai mcp serves, in its toolset,
  and every such operation a tool; a tool of MCP alone takes the catalogue's input), and
  the room service's contract test holds its OpenAPI the same way.
- wai setup-agent and wai app check answer in the one envelope (wai: envelope/1, data),
  JSON with --json; wai mcp and setup-agent take --dry-run through the door; the binaries
  wai-relay and wai-room in the MCP dev room and Create's end-to-end script.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 05:54:20 -04:00
Transaction Science
conform-result-conformance: each summary count wrong alone, its other counts right
Some checks failed
WAI conformance / v2 vocabulary · manifests validate as stated (pull_request) Successful in 21s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Failing after 3m41s
standards workspaces build + test / joule-code-rs (joule-code/joule-code-rs, joule-code-rs, linux-arm64, true) (pull_request) Failing after 4m59s
WAI conformance / delivery telemetry · CMCD and CMSD against an independent library (pull_request) Successful in 19s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 35s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 3m19s
WAI examples / WAI examples · android-app · linux-arm64 (pull_request) Successful in 6m37s
wai-pack / wai-pack · linux-arm64 (pull_request) Successful in 2m25s
joule-moq-remote host agent / joule-moq-remote, every target (macos) (pull_request) Successful in 1m47s
WAI conformance / each feature of the independent verifiers' steps compiles alone (pull_request) Successful in 15m15s
wai-pack / wai-pack · the floor through a media prober (pull_request) Successful in 1m0s
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 12m5s
wai-pack / wai-pack · dependency licences (pull_request) Successful in 1m41s
wai-sink-android native sink library / the JNI layer and the platform-free half on the host JVM · linux-arm64 (pull_request) Successful in 3m22s
wai-pack / wai-pack · independent verifier (Python) (pull_request) Successful in 9m0s
joule-moq-web browser client / joule-moq-web · browser end-to-end (macos) (pull_request) Successful in 17m37s
wai-audit collector and player integration / collector, player integration and the browser end to end · macos (pull_request) Successful in 1m34s
WAI conformance / cargo-class corpora · macos (pull_request) Failing after 2m20s
WAI conformance / cross-arch byte-equality · macos (pull_request) Successful in 29s
WAI conformance / codec wrappers · fuzz smoke, text decode limits, C entry points, provenance, the semantic path (pull_request) Successful in 1m23s
standards workspaces build + test / macOS energy backends (pull_request) Successful in 11m57s
wai-ledger service / service · macos (pull_request) Successful in 1m58s
WAI energy receipts / energy receipts · macos (pull_request) Successful in 7m44s
wai-pack / wai-pack · macos (pull_request) Successful in 3m56s
wai-quantum studio and desktop / desktop app · macos (pull_request) Successful in 3m18s
wai-ops-gpu integer operators on GPUs / Metal GPU and browser WebGPU (macos) (pull_request) Successful in 12m55s
WAI examples / WAI examples · the archive, the readiness check, the browser and Apple · macos (pull_request) Successful in 16m43s
wai-sink-android native sink library / every ABI, the AAR, and the instrumented tests in a headless emulator · macos (pull_request) Successful in 7m28s
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Successful in 1h8m37s
wai-sink-swift native sink package / libwai slices, desktop tests, simulator tests · macos (pull_request) Successful in 19m4s
The falsification of the reference found that leaving out the check of summary.cases
alone left the corpus passing: every summary vector had passed and failed wrong too.
Three vectors now carry each count wrong alone.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 05:45:56 -04:00
Transaction Science
conformance-results: conform-result/1 in the standard, its corpus and a second verifier
extensions/conformance-results.md specifies the record a conformance run signs: its
members (§2) and corpus digest (§2.1), its signing input (the domain
`wai:conform-result` and 0x01, then the record without `sig` in RFC 8785 form) and
Ed25519 signature under SPEC §7's strict rule (§3), what a verifier checks and in what
order (§4: it reads, its version, its members, its signature, its summary, its verdict)
and the codes of each refusal (§5). conform-result/1 is registered as a document kind
(registry export and REGISTRY.md regenerated); SPEC §7 points to it.

wai-rs gains the module conform_result (feature conform_result, in quickstart): sign,
check and verdict, the corpus digest, and the corpus of §7, whose outcomes are stated
from the text and asserted before anything is written. `wai conform` signs with it and
`wai verify` checks with it. conform-result-conformance/ holds accepted records and
refused ones (a case flipped, the corpus digest changed, the summary alone changed, a
bad signature, S past L, a small-order key, a summary or verdict that disagrees though
signed, an unknown version, members missing, added or named twice, a fractional count,
a digest out of form, bytes that are not JSON); wai_conform_result_vectors generates
and verifies it, and conform_result_verify.py, written from the text and sharing no code
with wai-rs, reaches every outcome and fails the corpus with each check of §4 left out.
`wai conform` gains the verifier suite conform-result.

`wai breaking` leaves out an explicit list of corpus files that record a measured run
(the format probes' external decodes, the relay's recorded metering run), each with
its reason, and says so in a note; the vectors built from them stay compared.

A command `wai conform` runs is put in a process group of its own, so a timed-out
command's children are stopped too.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 05:44:00 -04:00
Transaction Science
Merge remote-tracking branch 'origin/wai/create-2' into tc-a-int2
# Conflicts:
#	joule-code/joule-code-rs/crates/joule-moq-room/README.md
#	joule-code/joule-code-rs/crates/joule-moq-room/src/main.rs
#	wai/CHANGELOG.md
#	wai/examples/android-app/README.md
#	wai/examples/apple-app/README.md
#	wai/examples/encoder-ingest/README.md
#	wai/examples/messaging/README.md
#	wai/examples/package-and-deliver/README.md
#	wai/examples/remote-desktop/README.md
#	wai/examples/verify-receipts/README.md
#	wai/examples/video-room/README.md
#	wai/examples/watch-together/README.md
#	wai/wai-rs/src/bin/wai.rs
#	wai/wai-rs/src/bin/wai_cli/dx/create.rs
#	wai/wai-rs/src/bin/wai_cli/dx/dev.rs
#	wai/wai-rs/src/bin/wai_cli/dx/mod.rs
2026-10-27 05:43:10 -04:00
Transaction Science
Merge TC-B's wai/breaking-conform (#507) into the catalogue: one agent-rules module
Some checks failed
WAI examples / WAI examples · portable · linux (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 examples / WAI examples · android-app · linux-arm64 (pull_request) Has been cancelled
WAI HTTP delivery / HTTP corpus · falsify mutations 0/3 (pull_request) Has been cancelled
WAI HTTP delivery / HTTP corpus · falsify mutations 1/3 (pull_request) Has been cancelled
WAI HTTP delivery / HTTP corpus · falsify mutations 2/3 (pull_request) Has been cancelled
WAI HTTP delivery / HTTP corpus · falsify patches 0/3 (pull_request) Has been cancelled
WAI HTTP delivery / HTTP corpus · falsify patches 1/3 (pull_request) Has been cancelled
WAI HTTP delivery / HTTP corpus · falsify patches 2/3 (pull_request) Has been cancelled
WAI HTTP delivery / HTTP corpus · every patch and mutation in exactly one shard (pull_request) Has been cancelled
WAI HTTP delivery / HTTP corpus · verified both ways, and the differential (pull_request) Has been cancelled
WAI HTTP delivery / cache rules · controls and labelled caches (pull_request) Has been cancelled
wai-key-proxy / proxy · linux (pull_request) Has been cancelled
wai-ledger service / service · linux (pull_request) Has been cancelled
wai-ledger service / service · macos (pull_request) Has been cancelled
wai-ops-gpu integer operators on GPUs / builds · no adapter is not a pass (linux) (pull_request) Has been cancelled
wai-ops-gpu integer operators on GPUs / Metal GPU and browser WebGPU (macos) (pull_request) Has been cancelled
wai-pack / wai-pack · linux (pull_request) Has been cancelled
wai-pack / wai-pack · linux-arm64 (pull_request) Has been cancelled
wai-pack / wai-pack · macos (pull_request) Has been cancelled
wai-pack / wai-pack · independent verifier (Python) (pull_request) Has been cancelled
wai-pack / wai-pack · the floor through a media prober (pull_request) Has been cancelled
wai-pack / wai-pack · dependency licences (pull_request) Has been cancelled
wai-quantum studio and desktop / studio · browser (pull_request) Has been cancelled
wai-quantum studio and desktop / desktop app · macos (pull_request) Has been cancelled
wai-sink-android native sink library / the JNI layer and the platform-free half on the host JVM · linux-arm64 (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-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Has been cancelled
joule-moq-web browser client / joule-moq-web · browser end-to-end (macos) (pull_request) Has been cancelled
The coordinator's direction: the catalogue's agent rules build on #507's
wai_cli/dx/envelope.rs, the one place the exit codes and the JSON envelope live.
agent.rs is folded into it (OpError holds the confirmation proposal and a reported
exit); the envelope is {"wai": "envelope/1", "op", "ok", "data" | "error",
"exit"} for every command, wai breaking and wai conform among them, their bodies now
data; JSON with --json (or a parent's), text otherwise. The exit-code table is the
study's in both; 3 (permission) joins the module's constants. compat.check,
conformance.run and conformance.list join the catalogue and dx::VERBS; every id now
ends in an N3 verb (toolchain.test for wai hello, stage.encode for wai stage refine,
playlist.lock for wai http seal-playlist, ops.show for wai ops show, ...), the command
lines unchanged. conform names its record in a dry run's plan.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 05:40:25 -04:00
Transaction Science
tests/cli_conform.rs: the origin picks its own port and says which
Some checks failed
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Has been cancelled
WAI conformance / each feature of the independent verifiers' steps compiles alone (pull_request) Has been cancelled
WAI conformance / delivery telemetry · CMCD and CMSD against an independent library (pull_request) Has been cancelled
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Has been cancelled
WAI conformance / cross-arch byte-equality · macos (pull_request) Has been cancelled
WAI conformance / codec wrappers · fuzz smoke, text decode limits, C entry points, provenance, the semantic path (pull_request) Has been cancelled
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · linux (pull_request) Has been cancelled
WAI energy receipts / energy receipts · linux-arm64 (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 examples / WAI examples · android-app · linux-arm64 (pull_request) Has been cancelled
wai-ledger service / service · macos (pull_request) Has been cancelled
wai-ops-gpu integer operators on GPUs / Metal GPU and browser WebGPU (macos) (pull_request) Has been cancelled
wai-pack / wai-pack · linux-arm64 (pull_request) Has been cancelled
wai-pack / wai-pack · macos (pull_request) Has been cancelled
wai-pack / wai-pack · independent verifier (Python) (pull_request) Has been cancelled
wai-pack / wai-pack · the floor through a media prober (pull_request) Has been cancelled
wai-pack / wai-pack · dependency licences (pull_request) Has been cancelled
wai-quantum studio and desktop / desktop app · macos (pull_request) Has been cancelled
wai-sink-android native sink library / the JNI layer and the platform-free half on the host JVM · linux-arm64 (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
joule-moq-web browser client / joule-moq-web · browser end-to-end (macos) (pull_request) Has been cancelled
WAI energy receipts / energy receipts · linux (pull_request) Has been cancelled
WAI examples / WAI examples · portable · linux (pull_request) Has been cancelled
wai-sink-swift native sink package / libwai slices, desktop tests, simulator tests · macos (pull_request) Has been cancelled
wai-pack / wai-pack · linux (pull_request) Has been cancelled
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Has been cancelled
wai-ops-gpu integer operators on GPUs / builds · no adapter is not a pass (linux) (pull_request) Has been cancelled
wai-quantum studio and desktop / studio · browser (pull_request) Has been cancelled
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 05:21:40 -04:00
Transaction Science
wai ops: the command line carries only the operations it implements; the door check reads a tool table by operation
Some checks failed
standards workspaces build + test / macOS energy backends (pull_request) Successful in 9m22s
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 9m23s
WAI conformance / cross-arch byte-equality · macos (pull_request) Successful in 26s
WAI conformance / codec wrappers · fuzz smoke, text decode limits, C entry points, provenance, the semantic path (pull_request) Successful in 1m1s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 18m50s
joule-moq-web browser client / joule-moq-web · browser end-to-end (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 HTTP delivery / HTTP corpus · falsify patches 1/3 (pull_request) Has been cancelled
WAI HTTP delivery / HTTP corpus · falsify patches 2/3 (pull_request) Has been cancelled
WAI HTTP delivery / HTTP corpus · every patch and mutation in exactly one shard (pull_request) Has been cancelled
WAI HTTP delivery / HTTP corpus · verified both ways, and the differential (pull_request) Has been cancelled
WAI HTTP delivery / cache rules · controls and labelled caches (pull_request) Has been cancelled
WAI energy receipts / energy receipts · macos (pull_request) Has been cancelled
wai-ledger service / service · macos (pull_request) Has been cancelled
wai-ops-gpu integer operators on GPUs / Metal GPU and browser WebGPU (macos) (pull_request) Has been cancelled
wai-pack / wai-pack · linux-arm64 (pull_request) Has been cancelled
wai-pack / wai-pack · macos (pull_request) Has been cancelled
wai-pack / wai-pack · independent verifier (Python) (pull_request) Has been cancelled
wai-pack / wai-pack · the floor through a media prober (pull_request) Has been cancelled
wai-pack / wai-pack · dependency licences (pull_request) Has been cancelled
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Has been cancelled
WAI HTTP delivery / HTTP corpus · falsify patches 0/3 (pull_request) Has been cancelled
wai-quantum studio and desktop / desktop app · macos (pull_request) Has been cancelled
WAI HTTP delivery / HTTP corpus · falsify mutations 0/3 (pull_request) Has been cancelled
wai-sink-android native sink library / the JNI layer and the platform-free half on the host JVM · linux-arm64 (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 conformance / cargo-class corpora · macos (pull_request) Has been cancelled
WAI HTTP delivery / HTTP corpus · falsify mutations 2/3 (pull_request) Has been cancelled
WAI HTTP delivery / HTTP corpus · falsify mutations 1/3 (pull_request) Has been cancelled
An operation served only over HTTP or MCP has no command line: it does not resolve, help does
not list it as a command, and the dry-run test asks no sample of it. check-wai-ops-doors.py
reads an MCP tool named by its operation (op: "noun.verb") as well as one named outright.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 05:12:08 -04:00
Transaction Science
CI: the WAI operation catalogue workflow; the catalogue's README, the changelog
Some checks failed
WAI HTTP delivery / HTTP corpus · falsify patches 2/3 (pull_request) Has been cancelled
WAI HTTP delivery / HTTP corpus · every patch and mutation in exactly one shard (pull_request) Has been cancelled
WAI HTTP delivery / HTTP corpus · verified both ways, and the differential (pull_request) Has been cancelled
WAI HTTP delivery / cache rules · controls and labelled caches (pull_request) Has been cancelled
wai-key-proxy / does this change touch it (pull_request) Has been cancelled
wai-key-proxy / proxy · linux (pull_request) Has been cancelled
wai-ledger service / does this change touch it (pull_request) Has been cancelled
wai-ledger service / service · linux (pull_request) Has been cancelled
wai-ledger service / service · macos (pull_request) Has been cancelled
wai-ops-gpu integer operators on GPUs / does this change touch it (pull_request) Has been cancelled
wai-ops-gpu integer operators on GPUs / builds · no adapter is not a pass (linux) (pull_request) Has been cancelled
wai-ops-gpu integer operators on GPUs / Metal GPU and browser WebGPU (macos) (pull_request) Has been cancelled
wai-pack / wai-pack · does this change touch it (pull_request) Has been cancelled
wai-pack / wai-pack · linux (pull_request) Has been cancelled
wai-pack / wai-pack · linux-arm64 (pull_request) Has been cancelled
wai-pack / wai-pack · macos (pull_request) Has been cancelled
wai-pack / wai-pack · independent verifier (Python) (pull_request) Has been cancelled
wai-pack / wai-pack · the floor through a media prober (pull_request) Has been cancelled
wai-pack / wai-pack · dependency licences (pull_request) Has been cancelled
wai-quantum studio and desktop / does this change touch it (pull_request) Has been cancelled
wai-quantum studio and desktop / studio · browser (pull_request) Has been cancelled
wai-quantum studio and desktop / desktop app · macos (pull_request) Has been cancelled
wai-sink-android native sink library / does this change touch it (pull_request) Has been cancelled
wai-sink-android native sink library / the JNI layer and the platform-free half on the host JVM · linux-arm64 (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 / does this change touch it (pull_request) Has been cancelled
wai-sink-swift native sink package / libwai slices, desktop tests, simulator tests · macos (pull_request) Has been cancelled
wai-web wasm32 / does this change touch it (pull_request) Has been cancelled
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Has been cancelled
wai-web reach builds / wai-web reach builds · this tree's wai-web, every rung on its engine line (pull_request) Has been cancelled
.github/workflows/wai-catalogue.yml fails on drift: the export against the table, every door's
names against the catalogue (with the check's selftest), the catalogue's rules, and the
command line's tests in the archive's build and with every command-line feature that needs no
system library.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 05:04:44 -04:00
Transaction Science
wai: tests/cli_ops.rs holds every command to the catalogue and the agent rules
wai ops list, search, schema and export (the export is the committed file, a drifted copy
exits 1); every operation's help from its entry and its mechanical form; the exit codes 1 to
6 each from a real case; the envelope on success, failure and confirmation; --yes; and
--dry-run on every operation of the build whose effect is not reads, each shown to write
nothing with it and to write without it, with generate, score and stage covered in a build
that has them. A new operation that writes cannot join the catalogue without a sample here.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 05:04:43 -04:00
Transaction Science
wai breaking and wai conform: the compatibility gate, and conformance anyone can run
`wai breaking --against <git-ref>` (operation compat.check) reports what the working
tree breaks against the merge base of a ref, in three cumulative categories: wire (the
registry export, the media and delivery corpora), record (the signing domains, magics
and versions in the WAI crates' sources, the record corpora, the published JSON
Schemas) and API (the Rust public API of wai and wai-quantum from rustdoc's JSON, the
C header, the room service's OpenAPI document). Each finding names its item, category,
what changed and why it breaks; additions are compatible. A break passes only when a
line the change adds to wai/CHANGELOG.md, in an entry that says Breaking, names its id.

`wai conform <kind> --suite <suite> --impl <command or URL>` (operation
conformance.run) runs a corpus against another implementation through a command-line
or an HTTP adapter: verifiers (claim, jwp, signer), a decoder (score), a packager
(policy) and an origin (http). The result is a signed conform-result/1 record that
`wai verify` checks. Both follow the agent rules: the envelope/1 JSON output, the exit
statuses, --dry-run.

.github/workflows/wai-breaking.yml runs the gate on every pull request that touches
WAI, the tests of both commands, and the corpora's independent Python verifiers and
the reference packager through wai conform.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 05:00:48 -04:00
Transaction Science
scripts: check-wai-ops-doors.py holds every door's names to the operation catalogue
MCP tool names (noun_verb), the services' OpenAPI operationIds (the id, placed on a service,
at its route), the C header's functions (wai_noun_verb where the noun is the catalogue's and
the verb an operation verb) and the Swift and Kotlin sinks' public methods (Wai<Noun>.<verb>)
are read and held to wai/catalogue/ops.json; a door with no operation yet says so. The
selftest misnames each door's operation and requires the check to fail and say which.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 04:52:32 -04:00
Transaction Science
The service binaries are wai-relay, wai-room and wai-ingest; the crates keep their names
WAI toolchain decision 11: joule-moq-relay builds wai-relay, joule-moq-room wai-room, and
joule-moq-ingest wai-ingest. wai dev finds them by those names (WAI_RELAY_BIN, WAI_ROOM_BIN),
and the quickstart archive, the release workflow, the examples' workflow, the browser
tests, the interop scripts, the example host script, the Scoop manifest and the crates'
READMEs and example configurations name them so. Wire and record identifiers that carry a
crate's name (joule-moq-relay/session-summary/2, joule-moq-ingest/session/1, the relay's
MOQT implementation string) and the log variables (JOULE_MOQ_*_LOG) are unchanged.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 04:52:31 -04:00
Transaction Science
wai/examples: every template Apache-2.0, its LICENSE carried into the project
Each example holds the license's text as LICENSE (wai/LICENSE, byte for byte) and says so in
its README; wai create writes it with the rest of the template, from one copy in the binary.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 04:52:31 -04:00
Transaction Science
wai: the command line through the catalogue, and the agent rules on every command
Every command line resolves through the catalogue (wai_cli/door.rs): its CLI spelling, an
alias, or its mechanical form wai <noun> <verb>; an implementation is found by operation
id, and help is written from the catalogue's entries. dx::VERBS is the developer path's view
of it. Every command keeps the agent rules (wai_cli/agent.rs): exit codes 0 to 7, --json
(a versioned envelope, envelope/1, carrying a command's own JSON or its text in data),
--dry-run on every operation that is not read-only (every write goes through
wai_cli/out.rs), and --yes where a change waits for confirmation (exit 4 off a terminal).
wai ops list, search, schema and export. The tests and the quickstart's packaging check read
the JSON forms from the envelope's data.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 04:52:20 -04:00
Transaction Science
wai: the operation catalogue, every operation once as noun.verb (wai::catalogue)
One Rust table in the wai crate holds every operation the toolchain offers: its id
(noun.verb), summary, CLI spelling and aliases, placement, input and output JSON Schemas,
stream, effect, route, toolset, stability, since/deprecated, whether it writes a receipt,
and the build features it needs. It lists only operations that work today. Its tests hold
the naming rules (noun.verb, no near-synonym verb, singular nouns, one command line per
operation, a route exactly when it runs on a service) and break each rule to show it is
refused. wai/catalogue/ops.json is its export (wai.ops/1).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 04:52:19 -04:00