wai: one registry table, candidate capabilities, public-text checks #131
Merged
dcharlot
merged 5 commits from 2026-10-01 14:50:01 -04:00
wai/land-12-registry-and-text into main 2026-10-01
wai/glossary: the codec glossary declares its schema version
Some checks failed
WAI conformance / cross-arch byte-equality · linux (pull_request) Successful in 22s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 45s
WAI energy receipts / energy receipts · linux (pull_request) Successful in 41s
wai formal verification (integer core) / kani (pull_request) Successful in 4m3s
WAI JPEG-AI whole decode (pinned inputs, required) / fetch pinned JPEG-AI inputs → whole decode + pixel hash, required (pull_request) Successful in 1m51s
WAI neural decoders end-to-end / synthetic fixtures → Rust decode → reference (±4) (pull_request) Successful in 4m46s
WAI neural sink gates / model-free refusals of the neural sink (pull_request) Successful in 24s
standards workspaces build + test / jouleclaw-rs (pull_request) Successful in 14m12s
WAI mbt2018_mean integer decode (regenerated vectors) / regenerate mbt2018_mean integer vectors → Rust decode, required (pull_request) Successful in 4m29s
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Successful in 1m13s
standards workspaces build + test / joule-code-rs (pull_request) Failing after 14s
standards workspaces build + test / joulecontract-rs (pull_request) Successful in 33s
standards workspaces build + test / map-rs (pull_request) Successful in 43s
standards workspaces build + test / mesh-rs (pull_request) Successful in 30s
standards workspaces build + test / openpay (pull_request) Successful in 1m49s
wai cross-architecture byte-equality / linux-aarch64 (pull_request) Successful in 48s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 2m40s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 31s
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 1m13s
standards workspaces build + test / aac-rs (pull_request) Failing after 16m30s
standards workspaces build + test / arl-rs (pull_request) Successful in 1h3m25s
standards workspaces build + test / joule-ui-rs (pull_request) Successful in 1h7m51s
WAI energy receipts / energy receipts · macos (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · macos (pull_request) Has been cancelled
WAI conformance / cross-arch byte-equality · macos (pull_request) Has been cancelled
wai cross-architecture byte-equality / macos-arm64 (reference) (pull_request) Has been cancelled
standards workspaces build + test / jouledesk-rs (pull_request) Successful in 1h23m51s
standards workspaces build + test / joulehook-rs (pull_request) Successful in 2h19m5s
standards workspaces build + test / sense-rs (pull_request) Successful in 1h31m23s
standards workspaces build + test / macOS energy backend (jcp-energy) (pull_request) Successful in 1h14m39s
The retrofit renamed each entry's `org` field to `body`, and the file carried no version, so a reader of the earlier form found no `org` and no way to tell the two forms apart. codecs.json now carries `"schema_version": 2`. SCHEMA.md describes the field: version 2 is the form it documents, a file without the field is the earlier `org` form, and a change that renames or removes a field, or changes what one means, raises the version. glossary_links_agree_with_the_registry requires the value, and glossary_check_names_each_broken_rule has two cases for a missing and a wrong version. The CHANGELOG's glossary bullet records the break. Co-Authored-By: Claude Opus 5.5 <[email protected]>
ci: give the WAI name list only to the push-to-main run
The wai-public-names job set WAI_NAME_DENYLIST at job level, so on a pull request from a branch of this repository the list reached a script taken from the pull request's own tree, whose log is public. The secret is now set on the one step that runs the check, and that step runs only on a push to main; a pull request shows a failed (continue-on-error) step saying the check did not run. On a push to main an empty list still fails the job. wai/CONTRIBUTING.md and the CHANGELOG entry say so. A correction to the record: the message of the commit that added these checks says CI declares the feature-gated test targets with required-features. wai/wai-rs/Cargo.toml declares them with their required-features, and the conformance workflow names them with their features. Co-Authored-By: Claude Opus 5.5 <[email protected]>
wai: restate the ranking phrases the retrofit left in research and extensions
The retrofit's commit says the research notes, extensions and source comments make no comparisons. These lines still ranked or promoted: - research/cargo-roadmap.md: the sequencing rationale and the phase reasons now say what each phase reuses or carries, and the status note points to content-taxonomy.md for each class's status. - research/content-taxonomy.md: the "white space" table is now the cargo-roadmap phase table, with each phase marked shipped and its capability named, so it no longer contradicts the taxonomy rows above it; the closing clause of the spatial-audio row and "That's the whole map" are removed. - extensions/spatial-audio.md and research/spatial-audio-draft.md: the appendix says why spatial audio was first without ranking it. - SPEC.md §5, extensions/ternary-tt.md and the CAP_TERNARY_TT comment: wai.ternary.tt is stated by its own measured operating point (13.3 dB SNR at 3.8x with six residual layers, the extension's table) and its Lossy tier. - research/2030-transport-landscape.md: three lines restated as what WAI specifies; the CHANGELOG entry now says comparative framing in dated records is restated in place, as names are redacted. - wai-rs/src/lib.rs: the quantum_qec comment ends at the metric it carries. scripts/check-comparative-prose.sh gains five phrases (commercial wedge, unclaimed, fast win, differentiator, rate-competitive), each with a case in scripts/test-public-text-checks.sh. REGISTRY.md and vocab/README.md say that the v2 SHACL shape checks the capability and fallback against this revision's registry and only the form of media, and that a violation for an unregistered string means it is not registered in this revision, not that the envelope fails to conform or cannot be dispatched (SPEC §4, §8). The CHANGELOG's candidate-capability bullet states the MINOR rule as a full sentence. Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-09-30
wai: hold research/content-taxonomy.md to both public-text checks
The content-taxonomy note has been rewritten on main, so the exclusion both checks carried for it is removed, as their comments said to do once that change landed. The note now passes both checks: lever 1 names a registered codec, and the gain, wedge and endgame phrasing is restated as what each lever applies to. Co-Authored-By: Claude Opus 5.5 <[email protected]>
wai: one registry table, candidate capabilities, public-text checks
Every registered string now lives in one table (codecs/registry.rs) with its kind, status, media class, registering SPEC section, edition and registration date. `wai registry export` writes registry/capabilities.json, its JSON Schema, the generated table in REGISTRY.md and vocab v2; --check fails on drift. vocab v1 stays stable. A candidate capability (a registered string whose payload format no revision has pinned) must not be emitted. The C packers, the browser writers and `wai wrap` refuse one, and `codecs::is_dispatchable` is the single dispatch and selection predicate (SPEC §4): candidates, companion-only capabilities, records and derivations are not dispatchable, and an unregistered string is decoded only where the sink advertises it. The codec glossary is linked to the registry through a reviewed table and held to its schema by a library test; `org` becomes `body`, from a closed allowlist. The SPEC gains §5 sections on kinds and candidates, a §8 edition rule, corrected citations and rewritten appendices. The quantum-ops vectors are regenerated with neutral device ids. CI declares the feature-gated test targets with required-features, checks the registry export, builds wai-web for wasm32, and runs two public-text checks (comparative prose, and private name patterns) with a self-test. The specification, extensions, research notes, READMEs, glossary and source comments are rewritten to name no company or product and to make no comparisons. Co-Authored-By: Claude Opus 5.5 <[email protected]>