wai: the developer's path (hello, create, dev, verify), the floor with no system library, nine examples, and the quickstart archive #504
Merged
dcharlot
merged 6 commits from 2026-10-27 04:14:23 -04:00
wai/dx-a-examples-2 into main 2026-10-26
wai/quickstart/test/clean-machine.sh: a failed step reads FAILED, with no unit
All checks were successful
WAI examples / WAI examples · portable · linux (pull_request) Successful in 8m20s
WAI conformance / codec wrappers · fuzz smoke, text decode limits, C entry points, provenance, the semantic path (pull_request) Successful in 1m7s
WAI neural sink gates / model-free refusals of the neural sink (pull_request) Successful in 3m8s
WAI conformance / each feature of the independent verifiers' steps compiles alone (pull_request) Successful in 11m20s
WAI HTTP delivery / HTTP corpus · verified both ways, and the differential (pull_request) Successful in 2m45s
joule-moq-web browser client / joule-moq-web · browser end-to-end (macos) (pull_request) Successful in 16m36s
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 10m7s
WAI HTTP delivery / cache rules · controls and labelled caches (pull_request) Successful in 1m54s
wai-ops-gpu integer operators on GPUs / builds · no adapter is not a pass (linux) (pull_request) Successful in 3m36s
WAI energy receipts / energy receipts · linux (pull_request) Successful in 12m25s
wai-pack / wai-pack · the floor through a media prober (pull_request) Successful in 38s
wai-pack / wai-pack · linux-arm64 (pull_request) Successful in 1m47s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 17m25s
wai-pack / wai-pack · linux (pull_request) Successful in 1m40s
wai-pack / wai-pack · dependency licences (pull_request) Successful in 1m25s
WAI energy receipts / energy receipts · macos (pull_request) Successful in 6m32s
wai-quantum studio and desktop / studio · browser (pull_request) Successful in 5m44s
wai-sink-android native sink library / the JNI layer and the platform-free half on the host JVM · linux-arm64 (pull_request) Successful in 2m31s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 18m45s
wai-ledger service / service · macos (pull_request) Successful in 50s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 19m27s
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Successful in 5m4s
wai-quantum studio and desktop / desktop app · macos (pull_request) Successful in 3m8s
wai-pack / wai-pack · independent verifier (Python) (pull_request) Successful in 7m11s
WAI examples / WAI examples · the archive, the readiness check, the browser and Apple · macos (pull_request) Successful in 12m17s
wai-pack / wai-pack · macos (pull_request) Successful in 3m13s
wai-ops-gpu integer operators on GPUs / Metal GPU and browser WebGPU (macos) (pull_request) Successful in 10m1s
wai-sink-android native sink library / every ABI, the AAR, and the instrumented tests in a headless emulator · macos (pull_request) Successful in 7m1s
wai-sink-swift native sink package / libwai slices, desktop tests, simulator tests · macos (pull_request) Successful in 14m59s
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Successful in 56m20s
Co-Authored-By: Claude Opus 5.5 <[email protected]>
wai/quickstart/build.sh: each build its own target directory, a failed build stops it, and the archive's wai holds this checkout's examples
wai also builds as a cdylib, so its rlib's file name carries no hash: under a CARGO_TARGET_DIR every workspace shares, the room service's build of wai (its own feature set) overwrote the quickstart's, and a later build of the wai binary linked the wrong one and failed. The failure was masked inside a command substitution, and the archive took a binary from an earlier build. Each build now has its own directory under a shared one, a failed build stops the script naming it, and before packaging the script creates every template with the packaged wai and compares it with wai/examples/ byte for byte. Co-Authored-By: Claude Opus 5.5 <[email protected]>
wai: the README's quickstart, the changelog, the examples' index, and a clean-machine run of the quickstart
wai/quickstart/test/clean-machine.sh runs the quickstart from the archive alone in a fresh HOME and directory, with the system's PATH: the archive checked against its SHA-256 and unpacked, wai hello, wai verify, wai create, wai dev --check, and, with --browser, the room joined in two pages. It times each step and fails naming the step that failed. The encoder-ingest example takes clippy's is_multiple_of. Co-Authored-By: Claude Opus 5.5 <[email protected]>
CI: the examples run on every leg that hosts them, and the release builds the archive
.github/workflows/wai-examples.yml runs each example through wai create and wai dev: the portable ones on linux, the archive as the release builds it, the quickstart's readiness check (wai dev --check from the unpacked archive), the browser examples and apple-app on macos, android-app on linux-arm64. wai-conformance.yml runs tests/floor.rs and tests/cli_dx.rs, and fires on wai/examples/ (the templates are compiled into wai). wai-release.yml, on a tag wai-v<version>, builds the room client once and the archive on each runner, attaches them with their SHA-256, and writes the Homebrew formula and the Scoop manifest; wai/quickstart/install.sh installs a release. Two clippy notes of the new code fixed (a type alias for a template's files; hex only where hello and verify are built). Co-Authored-By: Claude Opus 5.5 <[email protected]>
wai/examples: encoder-ingest subscribes once the gateway publishes; tests take CARGO_TARGET_DIR
The relay refuses a subscription to a track nobody publishes yet (DOES_NOT_EXIST): the example now calls first, or waits for the encoder, and asks again until the gateway's tracks are there. The Rust examples' tests find their binaries under CARGO_TARGET_DIR when it is set. Co-Authored-By: Claude Opus 5.5 <[email protected]>
wai: the developer's path, hello, create, dev and verify, a floor build with no system library, and nine examples
wai-rs gains the feature floor (the mandatory floor of SPEC 5: PNG, FLAC and zstd, decoded with no system codec library) and quickstart (the floor, and the receipt checks hello and verify run). The wai command line gains four verbs, one module each, named in one table (dx::VERBS): - hello: name, dispatch, rebuild and receipt on a picture made here, the receipt laid out as http-delivery 8 lays receipts beside an object; - create: a new project from one of the examples, whose files the binary holds; tests/cli_dx.rs holds them to wai/examples/ byte for byte; - dev: the relay, the room service and the room page on one loopback origin, as a production front serves them; --check checks each piece through it; - verify: the receipt indexes under a directory, checked offline. The project file a template writes, wai.json, is read in one place (dx/project.rs). wai/examples/ holds video-room, watch-together, messaging, encoder-ingest, package-and-deliver, verify-receipts, apple-app, android-app and remote-desktop, each with a README and a test that runs it through wai create and wai dev. wai/quickstart/ builds the room client and the archive that holds wai, the relay, the room service, the remote host and the packager. Co-Authored-By: Claude Opus 5.5 <[email protected]>