wai merge train C: SYN-3, DRED exact, telemetry aggregation, gain maps, soft bindings, splat exact, hybrid post-quantum signatures (#425 #434 #429 #430 #433 #431 #435) #461
Merged
dcharlot
merged 73 commits from 2026-10-25 23:50:23 -04:00
train/wai-c into main 2026-10-25
Merge origin/main into train/wai-c (the relay's chain-order input count, wai-quantum-service)
All checks were successful
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 14m24s
wai-pack / wai-pack · linux (pull_request) Successful in 1m39s
WAI conformance / cross-arch byte-equality · macos (pull_request) Successful in 21s
wai-ops-gpu integer operators on GPUs / builds · no adapter is not a pass (linux) (pull_request) Successful in 3m5s
WAI conformance / codec wrappers · fuzz smoke, text decode limits, C entry points, provenance, the semantic path (pull_request) Successful in 55s
wai-quantum studio and desktop / studio · browser (pull_request) Successful in 2m53s
wai-quantum WebGPU member / shader checks · browser build · wasip2 inertness · MSRV (pull_request) Successful in 3m18s
wai-quantum WebGPU member / member · software Vulkan (linux) (pull_request) Successful in 2m10s
WAI energy receipts / energy receipts · macos (pull_request) Successful in 5m17s
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Successful in 4m34s
WAI mbt2018_mean integer decode (regenerated vectors) / regenerate mbt2018_mean integer vectors → Rust decode, required (pull_request) Successful in 6m0s
wai-ops-gpu integer operators on GPUs / Metal GPU and browser WebGPU (macos) (pull_request) Successful in 8m34s
wai-pack / wai-pack · macos (pull_request) Successful in 1m15s
wai-quantum studio and desktop / desktop app · macos (pull_request) Successful in 2m13s
wai-quantum WebGPU member / member · Metal (macos) (pull_request) Successful in 2m33s
wai-quantum WebGPU member / member · browser WebGPU (macos) (pull_request) Successful in 2m0s
WAI HTTP delivery / HTTP corpus · falsify mutations 0/3 (pull_request) Successful in 48m59s
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Successful in 1h3m57s
WAI HTTP delivery / HTTP corpus · falsify mutations 1/3 (pull_request) Successful in 47m58s
WAI HTTP delivery / HTTP corpus · falsify patches 0/3 (pull_request) Successful in 6m20s
WAI HTTP delivery / HTTP corpus · falsify patches 1/3 (pull_request) Successful in 6m53s
WAI HTTP delivery / HTTP corpus · every patch and mutation in exactly one shard (pull_request) Successful in 6s
WAI HTTP delivery / HTTP corpus · verified both ways, and the differential (pull_request) Successful in 2m42s
WAI HTTP delivery / cache rules · controls and labelled caches (pull_request) Successful in 1m14s
WAI HTTP delivery / HTTP corpus · falsify patches 2/3 (pull_request) Successful in 5m53s
wai-pack / wai-pack · linux-arm64 (pull_request) Successful in 1m20s
wai-pack / wai-pack · the floor through a media prober (pull_request) Successful in 36s
wai-pack / wai-pack · dependency licences (pull_request) Successful in 1m18s
wai-pack / wai-pack · independent verifier (Python) (pull_request) Successful in 4m5s
WAI HTTP delivery / HTTP corpus · falsify mutations 2/3 (pull_request) Successful in 49m0s
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Merge origin/main into train/wai-c (Train D landed: co-watch beside DRED, telemetry, splat, soft bindings and PQ)
All checks were successful
wai-quantum WebGPU member / member · discrete GPU, Vulkan (jetson-hub) (pull_request) Successful in 28m46s
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 7m42s
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Successful in 4m29s
WAI mbt2018_mean integer decode (regenerated vectors) / regenerate mbt2018_mean integer vectors → Rust decode, required (pull_request) Successful in 5m41s
joule-moq-web browser client / joule-moq-web · browser end-to-end (macos) (pull_request) Successful in 10m45s
standards workspaces build + test / macOS energy backends (pull_request) Successful in 9m1s
wai cross-architecture byte-equality / macos-arm64 (reference) (pull_request) Successful in 22s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 14m22s
WAI conformance / cross-arch byte-equality · macos (pull_request) Successful in 22s
WAI conformance / codec wrappers · fuzz smoke, text decode limits, C entry points, provenance, the semantic path (pull_request) Successful in 49s
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Successful in 1h2m44s
WAI HTTP delivery / HTTP corpus · falsify mutations 1/3 (pull_request) Successful in 47m52s
WAI energy receipts / energy receipts · macos (pull_request) Successful in 6m18s
WAI HTTP delivery / HTTP corpus · falsify mutations 0/3 (pull_request) Successful in 48m48s
WAI HTTP delivery / HTTP corpus · falsify patches 0/3 (pull_request) Successful in 6m2s
WAI HTTP delivery / HTTP corpus · falsify patches 1/3 (pull_request) Successful in 6m41s
WAI HTTP delivery / HTTP corpus · every patch and mutation in exactly one shard (pull_request) Successful in 5s
wai-ops-gpu integer operators on GPUs / Metal GPU and browser WebGPU (macos) (pull_request) Successful in 9m10s
WAI HTTP delivery / HTTP corpus · verified both ways, and the differential (pull_request) Successful in 2m47s
wai-pack / wai-pack · macos (pull_request) Successful in 1m16s
WAI HTTP delivery / cache rules · controls and labelled caches (pull_request) Successful in 1m15s
wai-pack / wai-pack · linux-arm64 (pull_request) Successful in 1m22s
WAI HTTP delivery / HTTP corpus · falsify patches 2/3 (pull_request) Successful in 6m30s
wai-pack / wai-pack · the floor through a media prober (pull_request) Successful in 21s
wai-quantum studio and desktop / desktop app · macos (pull_request) Successful in 2m32s
wai-pack / wai-pack · dependency licences (pull_request) Successful in 1m16s
wai-pack / wai-pack · independent verifier (Python) (pull_request) Successful in 4m13s
wai-quantum WebGPU member / member · Metal (macos) (pull_request) Successful in 4m22s
wai-quantum WebGPU member / member · browser WebGPU (macos) (pull_request) Successful in 1m53s
WAI HTTP delivery / HTTP corpus · falsify mutations 2/3 (pull_request) Successful in 48m43s
Co-Authored-By: Claude Opus 5.5 <[email protected]>
http-conformance falsify: two patches regenerated against step6 as the train left it
#433 extended the comment above step6's binding-recovery arm, and the train moved its lines, so decision-unchecked and recovery-record-unchecked no longer applied (HTTP corpus falsify shards 0/3 and 2/3 failed). Each patch makes the same edit as before, against the new context. Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24
Merge remote-tracking branch 'origin/main' into train/wai-c
Some checks failed
wai-quantum WebGPU member / member · software Vulkan (linux) (pull_request) Successful in 2m13s
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 8m5s
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Successful in 4m37s
WAI mbt2018_mean integer decode (regenerated vectors) / regenerate mbt2018_mean integer vectors → Rust decode, required (pull_request) Successful in 5m48s
joule-moq-web browser client / joule-moq-web · browser end-to-end (macos) (pull_request) Successful in 10m14s
standards workspaces build + test / macOS energy backends (pull_request) Successful in 8m43s
wai cross-architecture byte-equality / macos-arm64 (reference) (pull_request) Successful in 21s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 13m59s
WAI conformance / cross-arch byte-equality · macos (pull_request) Successful in 21s
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Successful in 1h4m54s
WAI conformance / codec wrappers · fuzz smoke, text decode limits, C entry points, provenance, the semantic path (pull_request) Successful in 50s
WAI HTTP delivery / HTTP corpus · falsify mutations 0/3 (pull_request) Successful in 47m43s
WAI energy receipts / energy receipts · macos (pull_request) Successful in 4m55s
WAI HTTP delivery / HTTP corpus · falsify mutations 1/3 (pull_request) Successful in 46m0s
WAI HTTP delivery / HTTP corpus · falsify patches 0/3 (pull_request) Failing after 6m14s
WAI HTTP delivery / HTTP corpus · falsify patches 1/3 (pull_request) Successful in 6m44s
WAI HTTP delivery / HTTP corpus · every patch and mutation in exactly one shard (pull_request) Successful in 4s
wai-ops-gpu integer operators on GPUs / Metal GPU and browser WebGPU (macos) (pull_request) Successful in 8m6s
wai-pack / wai-pack · macos (pull_request) Successful in 1m14s
WAI HTTP delivery / HTTP corpus · falsify patches 2/3 (pull_request) Failing after 6m22s
WAI HTTP delivery / HTTP corpus · verified both ways, and the differential (pull_request) Successful in 2m45s
WAI HTTP delivery / cache rules · controls and labelled caches (pull_request) Successful in 1m13s
wai-pack / wai-pack · linux-arm64 (pull_request) Successful in 1m16s
wai-pack / wai-pack · the floor through a media prober (pull_request) Successful in 16s
wai-quantum studio and desktop / desktop app · macos (pull_request) Successful in 2m26s
wai-pack / wai-pack · dependency licences (pull_request) Successful in 1m11s
wai-quantum WebGPU member / member · Metal (macos) (pull_request) Successful in 2m39s
wai-pack / wai-pack · independent verifier (Python) (pull_request) Successful in 4m7s
wai-quantum WebGPU member / member · browser WebGPU (macos) (pull_request) Successful in 1m52s
WAI HTTP delivery / HTTP corpus · falsify mutations 2/3 (pull_request) Successful in 46m23s
wai-rs Cargo.lock: ctutils 0.4.4, past RUSTSEC-2026-0385
PQ1 (#435) brought ctutils in through ml-dsa at 0.4.3, which RUSTSEC-2026-0385 names (non-constant-time mask generation and u128 comparisons; patched in 0.4.4). Main's lock for wai-rs holds no ctutils, so the advisory is the train's to clear: cargo update -p ctutils --precise 0.4.4, nothing else re-resolved. crypto-bigint 0.5.5 (RUSTSEC-2026-0387) is in main's lock as well and is left to main's advisory fix. Co-Authored-By: Claude Opus 5.5 <[email protected]>
robustness corpus: a type for the measurement sets
clippy's type_complexity note on the tuple type of the tent64 measurement
sets (src/robustness/corpus.rs, from #433) was the one warning the train
has that the base 793bd478 lacks; a local type alias names it. No
behaviour changes.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Merge origin/main (
b16816671) into train/wai-c
Main moved past 41c5bafba: the advisory sweep (#443: dependency bumps
across every workspace's lockfile, a cargo-audit gate) and joule-moq-room's
lockfile following wai-quantum 0.6.14 (#447). Merged without conflict;
wai-rs/Cargo.lock takes main's bumps beside PQ1's additions.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-22
Merge origin/main (
41c5bafba) into train/wai-c
#428's train landed on main asaa61ab3b(its head9f63561b, merged here before), beside wai-quantum 0.6.14 (#427), the sandbox's TDX checks (#415, #436), sandbox-conformance (#422), jouleclaw (#414, #418) and jcp-x402 (#442). Merged without conflict. Co-Authored-By: Claude Opus 5.5 <[email protected]>
int_kernels_vectors: the live-conformance reason names dred/ beside splat/
Interaction of #434 (DRED) with the sentence #429 and #431 extended: the exclusion reason for live-conformance said nothing there decodes against a parameter set but splat/'s objects; #434's dred/ decodes its payloads and streams under the draft's weights file and states the SHA-256 of their integers and feature rows. The reason now says so. The test reads the list, not the text. Co-Authored-By: Claude Opus 5.5 <[email protected]>
pq-conformance: a provenance line, and its reason under the sha256 rule
#435 added wai/pq-conformance/ without the two entries every corpus directory needs on main: a `**Provenance.**` line in its README (tests/corpus_provenance.rs) and, having no sha256.json sidecar, a reason in the exclusion list of int_kernels_vectors' every_decoded_output_states_a_sha256. Both tests enumerate every *-conformance directory, so #435 fails them on its own; the train found it. The provenance line names the generator and its seeds, the ACVP vectors' derivation and notice, and the composite draft's vector; the reason says the corpus is signed content with no decoded output. Co-Authored-By: Claude Opus 5.5 <[email protected]>
Merge #428's head
9f63561b (the age, direction and takedown steps' own bodies) into train/wai-c
#428's train moved one commit past 793bd478: wai-conformance.yml's age
assurance, direction and takedown steps get back the bodies their PRs
gave them. Merged without conflict.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
registry export: regenerated after PQ1 #435
capabilities.json was taken from the PR's side; the export now holds the whole train's registrations with PQ1's suite. Co-Authored-By: Claude Opus 5.5 <[email protected]>
bearer receipts corpus: its key log revisions are classical (hybrid: None)
Interaction of #435 (hybrid signatures) with the base's bearer receipts slice: #435 adds the hybrid field to key_log::Revision and fills it in every literal it knew; the bearer corpus's revision() builds one it did not (E0063, with or without pq_signatures). The corpus's revisions stay classical, so its bytes are unchanged. Co-Authored-By: Claude Opus 5.5 <[email protected]>
Merge PQ1 #435 (hybrid Ed25519 + ML-DSA-65 signatures) into train/wai-c
Merged head 7eaf392745.
By meaning:
- jwp-receipts §3.1 step 3 gains PQ1's hybrid sentence; step 4 keeps the
base's class range (§2.4.5 to §2.4.15, the bearer classes included).
- claim_receipt.rs: the bearer classes' reasons and labels and PQ1's
Pq(..) reason, each kept.
- Cargo.lock: the train's lock with PQ1's dependency resolved into it
(cargo metadata, resolve only): its packages are exactly the union of
both sides' (11 added beside TEL's keccak 0.1.6, aes-gcm, hkdf; none
removed or re-versioned, every checksum as either side has it).
- Cargo.toml: TEL's and PQ1's optional dependencies, both tests.
- wai-conformance.yml: paths unioned; PQ1's step and its corpus in the
regeneration loop merged without conflict.
- Shared lists kept both sides: CHANGELOG (PQ1's entry on top), SPEC §5
(PQ1's paragraph after SPLAT's), REGISTRY rows in order, registry
constants and wire identifiers. capabilities.json taken from the PR and
regenerated next.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Merge SPLAT #431 (wai.splat.exact) into train/wai-c
Merged head 3ec983a533.
By meaning:
- codecs/registry.rs: WireKind gains both new kinds, frame-metadata
(browser sink, in the base) and gltf-extension (SPLAT); all() holds
sixteen; the schema's enum lists both labels.
- synthesis §2's origin-claim table: the base's subject row (with the
samples subject of exact-upscale) and SPLAT's media row (volumetric).
- int_kernels_vectors.rs: the live-conformance exclusion reason names
both the vendored VDAF vectors (TEL) and splat/'s decoded attribute
tensors (SPLAT).
- wai-ops-gpu.yml: paths unioned; the build step builds the ops_gpu,
exact-upscale and splat GPU test targets (SPLAT's name, "test
targets"), DRED's build stays its own step; on Metal, exact-upscale's,
DRED's and the splat step, each whole.
- wai-conformance.yml: paths unioned; the step that conflicted is rebuilt
as two whole steps, QoE aggregation's then exact splats'.
- REGISTRY's prose names exploration, browser-sink, robustness-evidence
and splat-exact, and every wire kind.
- Shared lists kept both sides: CHANGELOG (SPLAT's entry on top),
registry constants, rows, records and wire identifiers, Cargo
features, bins and tests, the live-conformance index (splat/ row, its
provenance sentence, its verifier line). The export is regenerated next.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
robustness: no transform for the tiled battery's side crops and screen captures
Interaction of #425 (wai-mark:tent64s) and #433 (robustness evidence): #425 added two attacks to synthesis_mark's battery for §7.9.6, Attack::CropSide and Attack::Screen; #433's Transform::of_attack maps every attack of the battery to a registered transform and became non-exhaustive (E0004). robustness-evidence §4 registers synthesis §7.5.7's battery with its parameters free and leaves further transforms to a later revision, so of_attack now gives None for the two attacks §4 does not register (§7.9.6's crop-25% and rotate-5 are crop and rotate). The tent64 corpus calls it on §7.5.7's lists only and expects a transform; the unit test also holds §7.9.6's registered additions to the battery's bytes and requires the unregistered ones to be exactly the side crops and the screen captures. Co-Authored-By: Claude Opus 5.5 <[email protected]>
registry export: regenerated after SOFT #433
capabilities.json and v2.ttl were taken from the PR's side; the export now holds the train's records with SOFT's. Co-Authored-By: Claude Opus 5.5 <[email protected]>
Merge SOFT #433 (soft-binding spans and robustness evidence) into train/wai-c
Merged head 01579796be.
By meaning:
- jwp-receipts §7's authority table names every claim class: SOFT's
soft-binding-span beside the bearer classes transmission and
reconciliation the base added.
- claim_verify.py: the bearer classes (BEARERS) and SOFT's span rules,
span membership and receipt-context reader, each kept.
- lib.rs: exact_upscale's module and SOFT's robustness module.
- REGISTRY's prose names exploration, browser-sink and
robustness-evidence; its rows kept from both sides, in order.
- wai-conformance.yml: paths unioned; the step that conflicted is rebuilt
as two whole steps, exact upscale's then robustness evidence's.
- SPEC §5: TEL's paragraph, then SOFT's.
- Shared lists kept both sides: CHANGELOG (SOFT's entry on top), registry
constants, rows, records and wire identifiers, Cargo features, bins and
tests, the live-conformance index (robustness/ row, its provenance
sentence, its verifier line). capabilities.json and v2.ttl taken from
the PR and regenerated next.
synthesis §7.5.8's claims sentence, which robustness reads, is unchanged
by #425, so the three readers of it agree.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
registry export: regenerated after B3b #430
capabilities.json and v2.ttl were taken from the PR's side; the export now holds the train's records and companions with B3b's. Co-Authored-By: Claude Opus 5.5 <[email protected]>
SPEC §7.1: the DRED layers among the companions registered after the rules
Interaction of #434 (DRED) and #430 (gain maps, ST 2094-50): #430 added the HDR companions to the paragraph that names what was registered companion-only after the companion rules; #434 registered its two enhancement layers companion-only too but left the paragraph's "every other registered capability is standalone media" in place. With both in, the sentence names the DRED layers beside the HDR companions. Co-Authored-By: Claude Opus 5.5 <[email protected]>
Merge B3b #430 (gain maps, ST 2094-50 and exact tone mapping) into train/wai-c
Merged head 17ff17d84f.
By meaning:
- codecs/mod.rs: is_companion_only lists the HDR descriptors, the gain map,
LCEVC and both DRED layers; the licence test's patent-pool list keeps
DRED's and the HDR companions' entries.
- tests/carriage.rs: base_of() (DRED's) gains B3b's gain-map case, an
image base (wai.image.png); the test reads the base from base_of() as
DRED left it.
- SPEC §7.1: the companion list names the HDR descriptors with ST 2094-50,
the gain map, LCEVC and the DRED layers; rule 2 keeps the gain map's
image class and DRED's base admission side by side.
- determinism-tiers §2: exact-upscale's paragraph (pinned integer
derivations keep the tier), then B3b's (HDR display adaptation, pinned
by exact-tonemap).
- wai-conformance.yml: paths unioned; the step that conflicted is rebuilt
as two whole steps, QoE aggregation's then exact tone mapping's.
- Shared lists kept both sides: CHANGELOG (B3b's entry on top), REGISTRY
rows in order, registry constants and wire identifiers, the
live-conformance index (tonemap/ row, its provenance sentence, its
verifier line). capabilities.json and v2.ttl taken from the PR and
regenerated next.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
registry export: regenerated after TEL #429
capabilities.json was taken from the PR's side of the merge; the export now lists every record and companion of the train (age assurance, DRED and the rest the PR's side lacked). Co-Authored-By: Claude Opus 5.5 <[email protected]>
Merge TEL #429 (wai.telemetry.aggregate) into train/wai-c
Merged head 8a853e4347.
Shared lists kept both sides: the workflow's paths (opus-dred.md beside
telemetry-aggregation.md and delivery-telemetry.md), CHANGELOG (TEL's
entry on top), REGISTRY's magics in order (WP*, then WQA1, WQS1), the
registry's extension constants (EXACT_UPSCALE, TELEMETRY_AGGREGATION),
Cargo bins and tests, the live-conformance index (aggregate/ row, one
provenance sentence naming the vendored VDAF vectors and DRED's fetched
weights, and both verifier lines). capabilities.json taken from the PR and
regenerated next. delivery-telemetry §8.1 keeps TEL's text, with no
consent gate.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Merge B3a #434 (wai.audio.opus.dred.int, DRED decoded exactly) into train/wai-c
Merged head 3ad5e8b0cf.
By meaning:
- wai-ops-gpu.yml: paths unioned (exact-upscale's and DRED's); the build
step keeps exact-upscale's two --no-run commands and DRED's build is its
own whole step after it; on Metal, exact-upscale's step then DRED's, each
whole.
- Cargo.toml: both features (exact_upscale, dred_exact), both bins
(wai_browser_sink_vectors, wai_dred_vectors), both tests (browser_sink;
dred_exact, dred_exact_measure, dred_exact_gpu).
- Shared lists kept both sides: CHANGELOG (DRED's entry above tent64s'),
the live-conformance index (dred/ row after upscale/, the base's
generator column and the tiled synthesis-mark row kept).
The weights file stays uncommitted: fetched by digest (dred/fetch.sh).
Co-Authored-By: Claude Opus 5.5 <[email protected]>
synthesis_mark_verify.py: the tiled scheme's cases hold no exact-upscale prior
Interaction of #425 (wai-mark:tent64s) with #408 (exact-upscale, in the base): #408 made synthesis_verify.py's outcome() read a case's held priors (synthesis §11.1) and gave tent64's cases an empty list; #425's tent64s case loop, written before #408 landed, built its cases without one, so every tiled case read as unreadable (KeyError 'priors'). The tiled cases now state an empty list, as tent64's do. Co-Authored-By: Claude Opus 5.5 <[email protected]>
live-conformance README: one provenance paragraph, not three merged variants
The base train's merges left three variants of the paragraph's middle (contribution and takedown; contribution and upscale; contribution and influence), each ending in a dangling "joule_moq_e2ee_vectors gen (in". One sentence now names every directory's source: c2pa-live, contribution and influence, takedown, upscale. Co-Authored-By: Claude Opus 5.5 <[email protected]>
Merge SYN-3 #425 (wai-mark:tent64s) into train/wai-c
Merged head 2016ec1805.
Shared lists kept both sides: the CHANGELOG entry above exact-upscale's;
the live-conformance index keeps the base's generator column, with the
synthesis-mark row naming both schemes (§7.4 to §7.9). Code merged without
conflict; the registry export is regenerated in the next commit.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
pq-signatures: a log listing a published ML-DSA key is reported
Some checks failed
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 / does this change touch it (pull_request) Has been cancelled
WAI energy receipts / energy receipts · 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 conformance / does this change touch it (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · linux (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · macos (pull_request) Has been cancelled
WAI conformance / quantum core and corpus under wasm32-wasip2 (wasmtime) (pull_request) Has been cancelled
WAI conformance / v2 vocabulary · manifests validate as stated (pull_request) Has been cancelled
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (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 (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
standards workspaces build + test / which workspaces this change touches (pull_request) Has been cancelled
standards workspaces build + test / macOS energy backends (pull_request) Has been cancelled
repository checks / lockfiles, tests in CI, workflow hygiene, spec and section references, public text (pull_request) Has been cancelled
joule-moq-web browser client / joule-moq-web · does this change touch it (pull_request) Has been cancelled
joule-moq-web browser client / joule-moq-web · browser end-to-end (macos) (pull_request) Has been cancelled
joule-moq-room room service / joule-moq-room · does this change touch it (pull_request) Has been cancelled
joule-moq-room room service / joule-moq-room, every target (pull_request) Has been cancelled
wai-quantum WebGPU member / member · DX12 and Vulkan (cbio-windows) (pull_request) Has been cancelled
Co-Authored-By: Claude Opus 5.5 <[email protected]>
pq-signatures: §1 names the keys a hybrid entry lists
Co-Authored-By: Claude Opus 5.5 <[email protected]>
wai-rs: tests/dred_exact.rs holds §4.8: both graphs load under acc64, are refused under acc32, and use wai-ops/1-i32 only
Some checks failed
wai-pack / wai-pack · dependency licences (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 neural sink gates / does this change touch it (pull_request) Has been cancelled
WAI neural sink gates / model-free refusals of the neural sink (pull_request) Has been cancelled
WAI energy receipts / does this change touch it (pull_request) Has been cancelled
WAI energy receipts / energy receipts · 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 conformance / does this change touch it (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · linux (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · macos (pull_request) Has been cancelled
WAI conformance / quantum core and corpus under wasm32-wasip2 (wasmtime) (pull_request) Has been cancelled
WAI conformance / v2 vocabulary · manifests validate as stated (pull_request) Has been cancelled
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (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 (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
standards workspaces build + test / which workspaces this change touches (pull_request) Has been cancelled
standards workspaces build + test / macOS energy backends (pull_request) Has been cancelled
repository checks / lockfiles, tests in CI, workflow hygiene, spec and section references, public text (pull_request) Has been cancelled
joule-moq-web browser client / joule-moq-web · does this change touch it (pull_request) Has been cancelled
joule-moq-web browser client / joule-moq-web · browser end-to-end (macos) (pull_request) Has been cancelled
joule-moq-room room service / joule-moq-room · does this change touch it (pull_request) Has been cancelled
joule-moq-room room service / joule-moq-room, every target (pull_request) Has been cancelled
Co-Authored-By: Claude Opus 5.5 <[email protected]>
pq-signatures: synthesis §2 names the hybrid members; the Python verifier writes errors as verdicts
Co-Authored-By: Claude Opus 5.5 <[email protected]>
pq-signatures: the verifier writes no cache into the corpus directory, and verify ignores one
Co-Authored-By: Claude Opus 5.5 <[email protected]>
wai-rs: dred_exact passes clippy; GPU test covers the streams; carriage binds DRED to an Opus packet
The carriage test bound every companion to a video base; the two DRED enhancement layers bind to their one base, wai.audio.opus.packet. The GPU test now decodes the corpus's streams as well as its payloads. determinism-tiers §5 and §6 record the profile, and the live-conformance index lists its corpus. Co-Authored-By: Claude Opus 5.5 <[email protected]>
pq-signatures: the extension, its second implementation, CI and the registry
- extensions/pq-signatures.md: the suite (id-MLDSA65-Ed25519-SHA512 of draft-ietf-lamps-pq-composite-sigs-19, ML-DSA-65 of FIPS 204 beside Ed25519) and why -65 and why the composite; the hybrid members; signing and verifying in WAI's order and what stripping does; the require-hybrid policy; key logs (hybrid entries and roots, the hybrid commitment, anchors that require hybrid, confirmation step 4a), group receipts (the payload's third version), claims and the shared check for wai:<domain>\x01 || JCS records; security considerations; the reasons; sizes and costs measured on the build host; the corpus. - jwp-receipts: pointers at section 2.3, 2.4.1, 2.4.3, 2.7.1, 3, 3.1, 3.3, 7.2, 7.4 and 7.7; SPEC section 5 and section 7 Signatures paragraphs; CHANGELOG. - pq-conformance/pq_verify.py and _mldsa.py: ML-DSA-65 verification written from FIPS 204 in pure Python (all 90 ACVP vectors), every case, the sizes, section 8's table, 26 mutated cases refused, and every one of 14 checks caught when dropped. README: the corpus rules and the provenance of the vendored vectors, with the notice their licence asks kept intact. - the suite registered as a wire identifier; registry export regenerated. - CI: the reference's tests, the corpus's cross-platform regeneration, both verifiers, and a diff of their verdicts. Co-Authored-By: Claude Opus 5.5 <[email protected]>
wai: register wai.audio.opus.dred and .dred.int; extension opus-dred, corpus, second implementation, CI
The deep redundancy of draft-ietf-mlcodec-opus-dred-07 registered as two companion-only enhancement layers over wai.audio.opus.packet: the draft's decoding within its tolerances, and the integer profile dred-int/1. The extension text (registration, finding DRED, the profile, a stream under loss, the measurement, receipts and the synthesis lattice, refusals), SPEC §5 and §7, the registry export, the research registry's basis and licence note, the corpus live-conformance/dred/ with its fetch script, its second implementation dred_verify.py, CI steps, the CHANGELOG, and the proposal to the working group, drafted and not filed. Co-Authored-By: Claude Opus 5.5 <[email protected]>
pq-signatures: the conformance corpus and its generator
pq-conformance/vectors.json, written by wai_pq_vectors gen from published seeds (one byte repeated 32 times, for Ed25519 and for ML-DSA's xi) and deterministic signing, so it regenerates byte for byte. 45 cases: hybrid group receipts (JSON and the WJR1 binary form, objects inclusion-verified), claims, records of the wai:<domain>\x01 || JCS pattern and key logs, with the negative controls the extension names (the post-quantum half stripped, made over other bytes, flipped; a classical item under a hybrid key and under require_hybrid; a hybrid entry later listed without its key; another parameter set by suite and by length) and confirmations under pinned anchors that do and do not require hybrid. The sizes section 9 states are read from the corpus's own items. wai_pq_vectors verify regenerates and checks every verdict; verdicts prints them for the differential; bench times both suites. Co-Authored-By: Claude Opus 5.5 <[email protected]>
pq-signatures: hybrid groups, claims, key logs and synthesis records
Under the pq_signatures feature each family reads and verifies the hybrid form beside the classical one, whose bytes and verdicts are unchanged: - group receipts: the labelled payload's third version, moq-jwp:group-sign\x03, the v2 fields then the ML-DSA-65 key; canonical bytes end with both signatures, so the link hash covers both; JSON sign_version 3 with pq_key and pq_sig, and the binary form reads it; verify_policy(RequireHybrid); - claims: pq_suite, pq_key and pq_sig, all or none, the first two signed; - key logs: a hybrid entry (pq_suite, pq_key), a hybrid root (root_pq_key, pq_sig) committed to by BLAKE3(wai:key-set-next\x02 || K || P), rules 1, 3, 5 and 6 extended, an anchor that requires hybrid (only hybrid-signed revisions descend from it, it moves only by pinning), and confirmation step 4a: hybrid_downgrade, pq_key_mismatch, hybrid_required; - synthesis records: the shared check of pq_sig::verify_record. A labelled group whose sign_version is 3 with no hybrid member stays group_label_invalid, so the JWP corpus gives every vector its verdict with the feature on or off. Co-Authored-By: Claude Opus 5.5 <[email protected]>
wai-rs: dred_exact measures the reference arithmetic's 8-bit form, and the reference builds' outputs when given
Co-Authored-By: Claude Opus 5.5 <[email protected]>
pq-signatures: ML-DSA-65 held to FIPS 204's ACVP vectors and the composite's own vector
Adds the pq_signatures feature (one new dependency, ml-dsa 0.1.1, default features off) and src/pq_sig.rs: the suite id-MLDSA65-Ed25519-SHA512 of draft-ietf-lamps-pq-composite-sigs-19 (M' = Prefix || Label || 0 || SHA-512(M), the ML-DSA half with the label as context, the Ed25519 half under WAI's strict rule), the policy that requires hybrid, the hybrid JSON members and the shared helper for records signed as wai:<domain>\x01 || JCS. Before anything is built on it, the ML-DSA-65 implementation is checked against the ACVP internal projections vendored in pq-conformance/acvp (keyGen 25, deterministic sigGen 45 over three interfaces, sigVer 45), each file pinned by SHA-256, and the composite against the draft's Appendix E vector for this suite. Corpus, bin and test are stubs here. Co-Authored-By: Claude Opus 5.5 <[email protected]>
wai-rs: dred_exact, DRED of draft-ietf-mlcodec-opus-dred-07 decoded through wai-ops/1
The DRED extension found in an Opus packet's padding (RFC 6716 framing, the extension draft's iterator with its repeat mechanism), its payload parsed to integers over RFC 6716's range decoder, the decoder weights file parsed and expanded from its storage layouts, and the lowering dred-int/1: weights quantized from their float32 bits, tanh and the sigmoid as lut16 tables of a fixed integer computation, the decoder as two WHG1 graphs loaded under acc64. A floating-point reference with a deterministic exponential, the draft's feature comparison, a stream under a seeded loss pattern, and the corpus generator. Behind the feature dred_exact; the weights are pinned by digest and fetched, never committed. Co-Authored-By: Claude Opus 5.5 <[email protected]>
http_binding: a recovery record naming a span declaration is checked within the span
Some checks failed
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 energy receipts / does this change touch it (pull_request) Has been cancelled
WAI energy receipts / energy receipts · 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 conformance / does this change touch it (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · linux (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · macos (pull_request) Has been cancelled
WAI conformance / quantum core and corpus under wasm32-wasip2 (wasmtime) (pull_request) Has been cancelled
WAI conformance / v2 vocabulary · manifests validate as stated (pull_request) Has been cancelled
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (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 (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
standards workspaces build + test / which workspaces this change touches (pull_request) Has been cancelled
standards workspaces build + test / macOS energy backends (pull_request) Has been cancelled
repository checks / lockfiles, tests in CI, workflow hygiene, spec and section references, public text (pull_request) Has been cancelled
joule-moq-web browser client / joule-moq-web · does this change touch it (pull_request) Has been cancelled
joule-moq-web browser client / joule-moq-web · browser end-to-end (macos) (pull_request) Has been cancelled
joule-moq-room room service / joule-moq-room · does this change touch it (pull_request) Has been cancelled
joule-moq-room room service / joule-moq-room, every target (pull_request) Has been cancelled
Over HTTP the record is checked with a delivery item that passed and lies within the span, or, with none, refused recovery_outside_span. Co-Authored-By: Claude Opus 5.5 <[email protected]>
robustness: keep the module out of the C header; include/wai.h as main has it
cbindgen parses every module, and the robustness module's constants and its reason table reached include/wai.h. The module is cbindgen:ignore, as the live modules are, and a forced regeneration gives main's header again. Co-Authored-By: Claude Opus 5.5 <[email protected]>
wai.media.robustness: CI step, registry entry and export, SPEC §5, CHANGELOG, READMEs
Co-Authored-By: Claude Opus 5.5 <[email protected]>
tonemap corpus: no cast of L2's value to its own type (clippy)
Some checks failed
WAI energy receipts / energy receipts · 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 conformance / does this change touch it (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · linux (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · macos (pull_request) Has been cancelled
WAI conformance / quantum core and corpus under wasm32-wasip2 (wasmtime) (pull_request) Has been cancelled
WAI conformance / v2 vocabulary · manifests validate as stated (pull_request) Has been cancelled
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (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 (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 cross-architecture byte-equality / does this change touch it (pull_request) Has been cancelled
wai cross-architecture byte-equality / linux-aarch64 (pull_request) Has been cancelled
wai cross-architecture byte-equality / linux-x86_64 (pull_request) Has been cancelled
wai cross-architecture byte-equality / macos-arm64 (reference) (pull_request) Has been cancelled
standards workspaces build + test / which workspaces this change touches (pull_request) Has been cancelled
standards workspaces build + test / macOS energy backends (pull_request) Has been cancelled
repository checks / lockfiles, tests in CI, workflow hygiene, spec and section references, public text (pull_request) Has been cancelled
joule-moq-web browser client / joule-moq-web · does this change touch it (pull_request) Has been cancelled
joule-moq-web browser client / joule-moq-web · browser end-to-end (macos) (pull_request) Has been cancelled
joule-moq-room room service / joule-moq-room · does this change touch it (pull_request) Has been cancelled
joule-moq-room room service / joule-moq-room, every target (pull_request) Has been cancelled
joule-code conformance gate / Build + round-trip C1-C4 vectors (pull_request) Has been cancelled
joule-code conformance gate / joule-moq-relay, every target (pull_request) Has been cancelled
joule-code conformance gate / joule-moq-ingest, every target (pull_request) Has been cancelled
Co-Authored-By: Claude Opus 5.5 <[email protected]>
splat_exact: clippy's range loops, partial order, slice and as_chunks notes
Some checks failed
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-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 energy receipts / does this change touch it (pull_request) Has been cancelled
WAI energy receipts / energy receipts · 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 conformance / does this change touch it (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · linux (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · macos (pull_request) Has been cancelled
WAI conformance / quantum core and corpus under wasm32-wasip2 (wasmtime) (pull_request) Has been cancelled
WAI conformance / v2 vocabulary · manifests validate as stated (pull_request) Has been cancelled
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (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 (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
standards workspaces build + test / which workspaces this change touches (pull_request) Has been cancelled
standards workspaces build + test / macOS energy backends (pull_request) Has been cancelled
repository checks / lockfiles, tests in CI, workflow hygiene, spec and section references, public text (pull_request) Has been cancelled
joule-moq-web browser client / joule-moq-web · does this change touch it (pull_request) Has been cancelled
joule-moq-web browser client / joule-moq-web · browser end-to-end (macos) (pull_request) Has been cancelled
joule-moq-room room service / joule-moq-room · does this change touch it (pull_request) Has been cancelled
joule-moq-room room service / joule-moq-room, every target (pull_request) Has been cancelled
Co-Authored-By: Claude Opus 5.5 <[email protected]>
tonemap: digests of L2, E2 and tan over whole ranges in the corpus
A second falsification: L2's squarings rounded instead of truncated still regenerated the corpus (the variant differs on about 3 in 100000 mantissas). vectors.json now states the SHA-256 of L2 at 2^18 spread values, of E2's mantissa for every fraction and of tan for every angle; both implementations check them. Co-Authored-By: Claude Opus 5.5 <[email protected]>
wai.media.robustness: robustness records anyone recomputes bit for bit, and claims held to them
extensions/robustness-evidence.md: a corpus named item by item by the SHA-256 of its samples, the attack battery as registered integer transforms with parameters and seeds (synthesis §7.5.7's battery with its parameters free, and gamma), the signed robustness record whose table the harness recomputes and whose rates are exact fractions, and the robustness claim that holds only where every item of a cited record's corpus survived the attack and no negative was read as marked. wai-rs module robustness (feature robustness), wai_robustness_vectors, the corpus with wai-mark:tent64's records over the measurement sets and its claim, and robustness_verify.py, which reruns the conformance battery end to end with _wai_mark.py. Co-Authored-By: Claude Opus 5.5 <[email protected]>
tonemap: the arithmetic at stated points in the corpus
A falsification showed the corpus's renditions do not expose every error in the arithmetic: tan's series cut to five terms still regenerated the corpus (slopes off by less than a code value's worth). vectors.json now states L2, E2, the sRGB table, tan across its range of angles and the video's slopes at fixed points; both implementations check them, and a stated tan changed by one is a mutation the Python verifier requires to fail. Co-Authored-By: Claude Opus 5.5 <[email protected]>
Registry export: wai.splat.exact, its document kinds, its renderer and the proposed glTF extension name
Co-Authored-By: Claude Opus 5.5 <[email protected]>
splat-exact §1: the base text fixes the order and the kernel, and leaves the arithmetic to the renderer
Co-Authored-By: Claude Opus 5.5 <[email protected]>
wai: register wai.splat.exact — registry, wire identifiers, SPEC §5, CHANGELOG, the corpus README and the CI step
The record wai.splat.exact; the document kinds wai-splat-commitment and wai-splat-view, the scheme wai-splat-render:i1, and the proposed glTF extension name EXT_gaussian_splatting_compression_wai under a new wire identifier kind, gltf-extension (schema enum, REGISTRY.md prose). The wai-conformance.yml step runs the module's tests and splat_exact_verify.py, and its paths take the extension, its schema and wai_ops_check.py. The extension's §11 records the GPU run. Co-Authored-By: Claude Opus 5.5 <[email protected]>
splat_exact: the renderer's compositing on a GPU, equal to the CPU on every view
wai-ops-gpu gains the kernel wgsl/splat.wgsl, one invocation a pixel and one workgroup a 16 x 16 tile, over the operator set's probed 64-bit products; the host projects, culls and orders. wai-rs's splat_exact::gpu (features splat_exact, ops_gpu) composes on every adapter found, and tests/splat_exact_gpu.rs holds every canonical and own-pose view of the splat corpus to the CPU's frame byte for byte and requires three edited kernels to be caught. The macos job of wai-ops-gpu.yml runs it under WAI_OPS_GPU_REQUIRE; the linux job builds it. Co-Authored-By: Claude Opus 5.5 <[email protected]>
tonemap_verify: a refusal with a code §9 does not list fails the corpus
Some checks failed
WAI HTTP delivery / WAI HTTP · does this change touch it (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 neural sink gates / does this change touch it (pull_request) Has been cancelled
WAI neural sink gates / model-free refusals of the neural sink (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-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
Falsified: §9 without frame_uncovered passed before this check (exit 0) and fails with it (exit 1). Co-Authored-By: Claude Opus 5.5 <[email protected]>
tonemap: CI step, corpus README, CHANGELOG, determinism-tiers, research notes
The wai-conformance step runs the module's and the PNG reader's unit tests, tests/exact_tonemap.rs and tonemap_verify.py; the extension is in the workflow's paths. determinism-tiers §2 names HDR display adaptation as processing that alters the decode, and the pinned derivations as the way a sink keeps its tier. The research registry records what was read for the two companions and why both are classified conservatively. The carriage test binds the gain map to an image, as rule 2 now requires. png_still gains a greyscale round-trip test; clippy notes in the new code fixed. Co-Authored-By: Claude Opus 5.5 <[email protected]>
telemetry-aggregation: a configuration that does not read is task_invalid; plainer §3.2
Some checks failed
wai-ops-gpu integer operators on GPUs / Metal GPU and browser WebGPU (macos) (pull_request) Has been cancelled
WAI neural sink gates / does this change touch it (pull_request) Has been cancelled
WAI neural sink gates / model-free refusals of the neural sink (pull_request) Has been cancelled
WAI JPEG-AI whole decode (pinned inputs, required) / does this change touch it (pull_request) Has been cancelled
WAI JPEG-AI whole decode (pinned inputs, required) / fetch pinned JPEG-AI inputs → whole decode + pixel hash, required (pull_request) Has been cancelled
WAI energy receipts / does this change touch it (pull_request) Has been cancelled
WAI energy receipts / energy receipts · 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 conformance / does this change touch it (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · linux (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · macos (pull_request) Has been cancelled
WAI conformance / quantum core and corpus under wasm32-wasip2 (wasmtime) (pull_request) Has been cancelled
WAI conformance / v2 vocabulary · manifests validate as stated (pull_request) Has been cancelled
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (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 (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
standards workspaces build + test / which workspaces this change touches (pull_request) Has been cancelled
standards workspaces build + test / macOS energy backends (pull_request) Has been cancelled
repository checks / lockfiles, tests in CI, workflow hygiene, spec and section references, public text (pull_request) Has been cancelled
wai-quantum WebGPU member / member · DX12 and Vulkan (cbio-windows) (pull_request) Has been cancelled
joule-moq-web browser client / joule-moq-web · does this change touch it (pull_request) Has been cancelled
joule-moq-web browser client / joule-moq-web · browser end-to-end (macos) (pull_request) Has been cancelled
joule-moq-room room service / joule-moq-room · does this change touch it (pull_request) Has been cancelled
joule-moq-room room service / joule-moq-room, every target (pull_request) Has been cancelled
Co-Authored-By: Claude Opus 5.5 <[email protected]>
splat-exact: the extension text, the draft schema, and corpus cases that separate every check
extensions/splat-exact.md registers wai.splat.exact: carriage in glTF as EXT_gaussian_splatting_compression_wai under KHR_gaussian_splatting, the attribute layout and its dequantization, the renderer wai-splat-render:i1, the commitment, the view statement, provenance, verification, reasons and the measured quality cost. The draft JSON Schema of the extension object is extensions/gltf/. The corpus gains cases the second implementation's self-falsification showed were missing: an unrequired extension, a buffer view past the envelope, a set whose bytes or pin alone disagree, a commitment naming another object or set, and statements naming another object or renderer or another pose's frame. Co-Authored-By: Claude Opus 5.5 <[email protected]>
tonemap: the corpus's second implementation, and two binding controls
tonemap_verify.py, written from extensions/exact-tonemap.md: its own integer log2/exp2, sRGB table, gain map and ST 2094-50 derivations, Annex C reader, PCHIP on exact rationals and PNG reader; envelopes and SPEC §7.1's component rules through staged_verify.py, which now knows the two new companions' base classes. It agrees with wai-rs on every case, recomputes §6's measurement, and catches every mutation and every dropped check. Two cases added so the binding check is load-bearing: a base index that names the companion, and a gain map bound by id to another rendition than the record's base. Co-Authored-By: Claude Opus 5.5 <[email protected]>
telemetry_aggregate: type aliases and simpler branches for clippy
Co-Authored-By: Claude Opus 5.5 <[email protected]>
telemetry-aggregation: cite delivery-telemetry's numbered paragraphs under their sections
Co-Authored-By: Claude Opus 5.5 <[email protected]>
wai.telemetry.aggregate: registry, SPEC §5, CHANGELOG, CI step and the live corpora's index
The record and its magics (WQS1, WQA1) in the registry and its export; a SPEC §5 paragraph; the live-conformance table's row with its generator; the corpus exclusion's reason names the vendored VDAF vectors; a CI step runs the module's tests, tests/telemetry_aggregate.rs and the independent verifier, with both extension texts in the workflow's paths. A unit test of the delivery-only Request mode. Co-Authored-By: Claude Opus 5.5 <[email protected]>
splat_exact: glTF carriage of wai.splat.int_codec, the integer renderer wai-splat-render:i1, commitments and view statements
The wai-rs module behind the feature splat_exact: the asset read as a compression extension of KHR_gaussian_splatting, the decode through the envelope's pin, the fixed-point camera, projection, order and integer compositing, the identity set the corpus carries authored scenes with, the commitment and view statement records, and a float renderer of the same model for measurement. The corpus live-conformance/splat/ written by wai_splat_exact_vectors gen, and its second implementation splat_exact_verify.py with its own integer renderer. Synthesis origin claims may now name volumetric media. Co-Authored-By: Claude Opus 5.5 <[email protected]>
wai: exact tone mapping — wai.meta.gainmap, wai.meta.st2094_50, wai.media.tonemap
The extension text (extensions/exact-tonemap.md), the exact_tonemap module of wai-rs (integer log2/exp2, the sRGB table, wai-tonemap:gainmap and wai-tonemap:st2094-50, the rendition record and its verification), the registry rows and SPEC §5 / §7.1 text for the two companions, the glossary entries, and the corpus live-conformance/tonemap/ written by wai_tonemap_vectors gen. Co-Authored-By: Claude Opus 5.5 <[email protected]>
png_still: read and write 8-bit greyscale as well as RGB
decode_grey_or_rgb reads colour type 0 or 2 under the reader's rules (a palette refused in a greyscale picture); encode_grey writes colour type 0 with the same Sub filter and fixed deflate. decode and encode are unchanged. A gain map's picture is carried as such a PNG (extensions/exact-tonemap.md). Co-Authored-By: Claude Opus 5.5 <[email protected]>
telemetry_aggregate_verify.py: the aggregation corpus's second implementation
Written from the extension's text and the drafts it cites, sharing no code with wai-rs: Keccak-p[1600,12], TurboSHAKE128 and the VDAF XOF; Field64 and Field128, the Lagrange-basis FLP and Prio3 (passing the draft's vectors); X25519, HKDF, AES-128-GCM and HPKE (RFC 9180 A.1.1); every flow re-run from its reports with the test keys, byte for byte; receipts and cells in §8.1's order; delivery-telemetry §3.4's classes read from the text. Every mutated copy of the corpus fails and every weakened verifier fails the corpus. Co-Authored-By: Claude Opus 5.5 <[email protected]>
wai.telemetry.aggregate: QoE measures aggregated under DAP, signed statements and aggregate receipts
extensions/telemetry-aggregation.md: four measures over session metrics (Prio3SumVec, Prio3Sum, Prio3Histogram), the DAP task's task_info layout and id, the floor of fifty reports each aggregator enforces, the WQS1 statement each aggregator signs, the WQA1 receipt the collector signs, verification, and a room's cell. delivery-telemetry: a class and what it reveals for every CMCD key the mapping writes (§3.4), delivery-only Request mode (§4.3), §8.1 stated as facts with no consent gate, §8.4 pointing to aggregation. live-metering §4.7/§6.5: a room may aggregate its QoE instead of sending logs. wai-rs: HPKE base mode (RFC 9180 A.1.1), DAP-20 messages, a reference client, leader, helper and collector, the receipt verifier, and the corpus generator; live-conformance/aggregate/vectors.json from fixed seeds. Co-Authored-By: Claude Opus 5.5 <[email protected]>
jwp-receipts §2.6.4: soft bindings over a span of a track, and recovery through a span
A soft-binding-span claim declares a value computed over a span of one track: its media time (both ends included, C2PA's timespan) and, where stated, the groups or objects that carry it. Recovery through it needs a verified delivery receipt within the span and attests the span, never one object of it; a receipt outside it is recovery_outside_span. Whole-object soft-binding claims and their vectors are byte-identical. claim_receipt, claim_verify.py and the differential learn the class; 48 vectors appended to claim-conformance. Co-Authored-By: Claude Opus 5.5 <[email protected]>
telemetry_aggregate: Prio3 (Count, Sum, SumVec, Histogram) from draft-irtf-cfrg-vdaf-22, with the draft's test vectors
Fields, TurboSHAKE128 (RFC 9861 vectors) and XofTurboShake128, the FLP in the Lagrange basis, sharding, verification, aggregation, unsharding and the ping-pong messages; the draft's published Prio3 vectors (commit 888e4b1) vendored under live-conformance/aggregate/vdaf-22/ and run by tests/telemetry_aggregate.rs. New dependencies behind the feature: keccak, aes-gcm, hkdf (RustCrypto, Apache-2.0 OR MIT); the lockfile only gains entries. Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-21
tent64s corpus: each detect vector states stage 2's trace
All checks were successful
joule-moq-room room service / joule-moq-room, every target (pull_request) Successful in 1m13s
WAI conformance / quantum core and corpus under wasm32-wasip2 (wasmtime) (pull_request) Successful in 2m14s
WAI conformance / cross-arch byte-equality · linux (pull_request) Successful in 34s
WAI energy receipts / energy receipts · linux (pull_request) Successful in 9m9s
wai-ops-gpu integer operators on GPUs / builds · no adapter is not a pass (linux) (pull_request) Successful in 2m21s
wai-pack / wai-pack · linux (pull_request) Successful in 1m24s
standards workspaces build + test / joule-code-rs (joule-code/joule-code-rs, joule-code-rs, linux-arm64, true) (pull_request) Successful in 6m11s
WAI conformance / v2 vocabulary · manifests validate as stated (pull_request) Successful in 16s
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 29s
joule-moq-web browser client / joule-moq-web · browser end-to-end (macos) (pull_request) Successful in 8m25s
wai-quantum studio and desktop / studio · browser (pull_request) Successful in 2m55s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 19m10s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 1m55s
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Successful in 4m10s
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 12m16s
wai-pack / wai-pack · linux-arm64 (pull_request) Successful in 1m35s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 23m44s
wai-pack / wai-pack · the floor through a media prober (pull_request) Successful in 1m17s
wai-pack / wai-pack · dependency licences (pull_request) Successful in 1m46s
wai-pack / wai-pack · independent verifier (Python) (pull_request) Successful in 6m5s
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Successful in 44m56s
standards workspaces build + test / macOS energy backends (pull_request) Successful in 8m6s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 13m36s
WAI conformance / cross-arch byte-equality · macos (pull_request) Successful in 18s
WAI conformance / codec wrappers · fuzz smoke, text decode limits, C entry points, provenance, the semantic path (pull_request) Successful in 44s
WAI energy receipts / energy receipts · macos (pull_request) Successful in 4m58s
wai-ops-gpu integer operators on GPUs / Metal GPU and browser WebGPU (macos) (pull_request) Successful in 2m39s
wai-pack / wai-pack · macos (pull_request) Successful in 1m15s
wai-quantum studio and desktop / desktop app · macos (pull_request) Successful in 2m15s
Every candidate stage 2 keeps (its vectors, refined lattice, bins and phase) and the hypotheses it decodes, for every detect vector, stored or derived. The vectors' payloads alone did not tell the phase rule apart: choosing the phase by the tile's energy rather than the tiles' agreement passed the second implementation (falsified); with the traces the two implementations compare the whole pipeline, and a mutated phase is caught. Co-Authored-By: Claude Opus 5.5 <[email protected]>
tests/synthesis_mark.rs: a claim of §7.9.7 needs every column of its row survived
The test checked §7.9.7's claims against the generated sets' tallies alone, so a claim the photographs' column refutes passed it (screen-b, falsified); it now reads the row's three columns, as the second implementation does. Co-Authored-By: Claude Opus 5.5 <[email protected]>
tent64s: gate the battery test on synthesis_mark; clippy on the tiled detector
The crop-and-rotation unit test takes its pictures and attacks from synthesis_mark, so it runs under that feature; the lib's synthesis:: tests build without it. Three clippy notes in the detector (an indexed loop, a sort by key, a cloned slice) rewritten without changing what it computes. Co-Authored-By: Claude Opus 5.5 <[email protected]>
synthesis.md §7.9: the scheme wai-mark:tent64s, its detector, guarantees, battery and measurement; second implementation
§7.9 specifies the tiled layout, the two stages of the detector step by step in integers, the bound over all 12 decodes and its check, the battery's additions (crops from each side, a crop of 25%, a rotation of 5 degrees, two simulated captures of a screen) and the measurement: both generated sets survive every attack; the claims are what the photographs survived too. §7.4, §7.6 to §7.8 and §13, §14 cover both registered schemes; §1 drops the crop-and-rotation exclusion. Registry, export, SPEC §5, CHANGELOG, READMEs and the CI step's description follow. _wai_mark.py gains the tiled scheme from the text (the autocorrelation by one integer product a frame, the fold, the phase and a bit-sliced agreement count); synthesis_verify.py recomputes and reruns either scheme; synthesis_mark_verify.py checks the tiled files, derives the frames they name, mutates them and weakens itself against them. Tests pin §7.9.1's definition and digest, §7.9.2's shuffle, §7.9.5's figures and §7.9.7's table and claims to the reference. Co-Authored-By: Claude Opus 5.5 <[email protected]>
wai-mark:tent64s: the tent64 mark on a tiled layout, with a detector that finds the grid again
The 64 x 64 grid is cut into 2 x 2 tiles of 32 x 32 cells, each tile holding the same layout, four positions a bit, so a bit keeps 16 cells and the embedding is tent64's, spending nothing on synchronisation. Stage 1 reads the grid in place in the 8 orientations, as tent64 does. Stage 2, where stage 1 reads nothing: the tile lattice from the exact autocorrelation (a number-theoretic transform) of a sign plane matched to the cell pattern, eight candidates scored over their four lattice points; each folded onto one tile by the parity of its tiles, the cells' phase by how well the tiles agree; the orientation and the tile's offset by how many pairs of a bit's four cells agree; at most four words decoded. Integer throughout. The verifier dispatches over the registered schemes (§7.6's recomputation and rerun). The battery adds crops from each side, a crop of 25%, a rotation of 5 degrees and two simulated captures of a screen; tent64's corpus files regenerate unchanged. The scheme's corpus files sit beside tent64's and share its frames; frames a crop, a rotation or a capture makes are derived at verify time, not stored. Co-Authored-By: Claude Opus 5.5 <[email protected]>
check-public-names: read file arguments from the caller's directory; name a file it cannot read
The script moved to the repository's root before reading its arguments, so paths given from a subdirectory (a builder in wai/ or wai/wai-rs) did not exist and grep exited 2 for the whole list; a list built from git diff after main moved, naming a file absent from the work tree, failed the same way with nothing to say which. Each relative argument is now resolved against the caller's directory, and every argument that is not a readable regular file is named before the scan (still exit 2, fail closed). The self-test gains cases for relative paths, many files, a missing file and a directory among many. Co-Authored-By: Claude Opus 5.5 <[email protected]>