wai.access.services: caption quality anyone can recompute, audio description, sign language and a completeness claim (ACC) #396

Merged
dcharlot merged 8 commits from wai/access-services into main 2026-10-21 21:38:39 -04:00
Owner

What this adds

wai.access.services (wai/extensions/access-services.md): access services for a room session, and figures about them that any verifier recomputes from signed records.

  • Caption quality from the signed revisions (§3, §4).

    • Latency is each cue's first display on the room clock less the capture of its first word. A sources record places the words on a take, mapped through the take's opening commitment (capture-binding §9.3), with the take checked to derive from a record_start to the commitment's author. Words can also be placed directly on the room clock. The class capture, stated or none says which applies. The figure gives the mean (rounded down), min, max, p50 and p95, all at a fixed rank.
    • Stability is the revisions after first display, the words they changed (substitutions and insertions of rᵢ against rᵢ₊₁, so growth of a partial is not a change), and how many cues were corrected.
    • Accuracy is the words of the first revision shown against a signed reference transcript, or against the reviewed final revision. A prefix alignment reads the reference only as far as the partial reaches. With a transcript, a full alignment also covers the final text. The class transcript, reviewed or self names what the reference is.
    • Words fold ASCII case and edge punctuation, and the walk back of the alignment is one fixed rule, so the substitution, deletion and insertion counts are the same for every verifier.
    • A quality record states the figure and names its inputs by digest. It is refused figure_mismatch or figure_inputs_mismatch when it does not match what the verifier recomputes.
  • Audio description (§5). A description record holds:

    • the script, with each event's interval, DAPT content descriptor and text;
    • the ducking of the programme audio under each event;
    • the voicing, either a separate track or a sink voice with a pinned model.

    Script and voice each carry an origin label: human, machine or machine-reviewed. A voice must start between 35 ms early and 45 ms late of the end of the duck, and end no later than 45 ms after the duck begins to rise. These are DAPT §5.5's bounds, which DAPT takes from EBU R 37. The record maps, written by hand, onto a DAPT document (W3C CRD 2026-06-26): the ducking becomes Mixing Instructions on the Script Event, and the voice an Audio Recording or Synthesized Audio. Player obligations cite EN 301 549 V4.1.1 clauses 7.2.1–7.2.3 and 7.3.

  • Sign language (§6). A signing record binds each object of a wai.avatar.pose stream, or of a video of a signer, by digest to the final caption revisions it translates. A review (scope translation) signs it off. Its figures are each segment's delay behind the speech and, for video, a floor: QVGA and 20 fps, from EN 301 549 V4.1.1 clauses 6.5.2 and 6.5.3, which clause 4.2.4 NOTE 3 names.

  • Completeness claim (§7). For each declared captions, description and signing track, the verifier checks:

    • the track is present;
    • it is finished: cues resolved, events voiced, cues signed;
    • it is in the declared language;
    • it is within the latency and offset bounds the claim states;
    • its review is present, names this signing, and is not rejected.

    §7.3 lists the tolerance each text states, and where none does. The claim also reports how much of each description is spoken over captioned dialogue, as a figure, not a refusal.

  • §9 maps each figure onto 47 CFR 79.1(j)(2), (j)(3) and (k)(2)(iv)/(vi), 79.3(a)(3), the UK regulator's 2013 and 2024 statements on live subtitling, and EBU Tech 3370 §2.3.2–2.3.3's authoring delay. It also lists what is not computed: NER-style severity grading (which needs a person), capitalisation and edge punctuation, speed and placement.

Implementation:

  • the access_services module of wai-rs, feature access_services = ["timed_text", "capture_take"], with no new dependency;
  • wai_access_services_vectors gen|verify and tests/access_services.rs;
  • the corpus live-conformance/access/;
  • the second implementation, live-conformance/access_services_verify.py;
  • a CI step in wai-conformance.yml plus its paths: entry;
  • the REGISTRY entry and export (registry/capabilities.json, vocab/v2.ttl, the REGISTRY tables), with 7 DocumentKind wire identifiers and the tag:…/wai/access scheme;
  • a SPEC §5 paragraph and the record lists, the CHANGELOG, the live-conformance index and corpus README;
  • the timed-text §1 scope note now points audio description here.

Design decisions and why

  • JSON records with JCS signatures, not binary. They follow synthesis and ai-usage, merged on main, using jwp-receipts §2.4.3 encodings and §3.1 step 1's strict reading. The signature is Ed25519 over wai:access\x01 ‖ JCS(record − sig), and the record id is SHA-256(JCS(record)). Signed integers (latencies, offsets) are decimal strings, because the JCS subset holds no negative number.
  • A source is the aligner's statement; the media's time is not. On a take, the capture clock is the device's signed commitment, and the alignment is attributable to the signer and checkable against the master. The latency class makes the difference visible. Who may capture, and for whom, stays a take or room verifier's check. §12 says so.
  • First-display accuracy uses a prefix alignment that ends at the greatest best column. A growing partial then makes no errors for words it has not reached, and a wrong last word is a substitution, not an insertion. Both cases are covered by a unit test.
  • A voice must lie within its event, since DAPT truncates an audio at its Script Event's end (§4.9.1). The writer can then express every voice, and the sync bounds apply inside it.
  • Sink-synthesized description is written as preRecording with tta:speak. DAPT has a SHOULD NOT for Audio objects in a pre-recording script and for Synthesized Audio in an as-recorded one. §5.5 states this departure and why.
  • A signing binds final revisions only (sign_revision_not_final). It translates what the captions resolve to; a superseded partial is not that.
  • Records are checked kind by kind: sources, references, descriptions, signings, reviews, quality, claims. A record another names is checked before it, whatever the order given.
  • Synthesis coordination, read, not edited. The voice and signer origins are stated as synthesis §3.1's class synthesized/generate/speech-synthesis, with oversight fully_autonomous or human_validated. The review reuses synthesis §9.1's vocabulary with scope translation.

Checks (all cargo through rb on the build host)

check command result
unit tests cargo test --locked --no-default-features --features access_services --lib access_services:: 6 passed
corpus test cargo test --locked --no-default-features --features access_services --test access_services 4 passed (regenerates byte for byte, no other file, every outcome, every §10 reason refuses a case, §10 equals Reason::ALL)
timed-text (text edited) cargo test --locked --no-default-features --features timed_text --test timed_text 4 passed
registry cargo test --locked --no-default-features --lib codecs::registry 14 passed
registry export cargo run --no-default-features --bin wai -- registry export then registry export --check regenerated, then "up to date"
reference verify wai_access_services_vectors verify ../live-conformance/access PASS, PASS
second implementation python3 -I live-conformance/access_services_verify.py live-conformance/access 38 vectors and 4 documents PASS; 125 of 125 mutated copies fail
timed-text verifier python3 -I live-conformance/timed_text_verify.py live-conformance/captions PASS
clippy cargo clippy --locked --no-default-features --features access_services --all-targets no notes in access_services* or codecs/registry.rs (two fixed: is_multiple_of, a type alias); the pre-existing notes elsewhere are unchanged
lockfile cargo metadata --locked --offline --format-version 1 ok, no dependency added
repo checks check-tests-in-ci.py, check-workflow-concurrency.sh, check-spec-refs.py, check-wai-section-refs.py, check-no-vanity-metrics.sh, test-public-text-checks.sh, check-comparative-prose.sh, check-orphan-sources.py all exit 0. The section-ref checker first flagged a [begin, …) interval before a link, so the intervals were reworded.
names check-public-names.sh over the 15 touched files with the private list clean

Falsifications (committed first, each restored after)

defect introduced detector result
Rust: drop the 35 ms early bound --test access_services exit 101: description_early accepted where refusal is stated
Rust: prefix alignment ends at the least best column --lib and --test access_services exit 101: unit test, and the lesson's figures differ
Python: drop sign_revision_not_final access_services_verify.py exit 1: sign_partial reaches track_incomplete
Python: drop the early bound access_services_verify.py exit 1: description_early accepted
125 mutated corpus copies (stated figures, flipped record signatures, altered events, moved places and reasons, a byte in each DAPT file) access_services_verify.py every copy fails

Regulatory and standards facts, each read at its source

  • EAA Annex I §IV(b)(ii) and Art. 31(2): read from a reproduction of the adopted text, because the Official Journal could not be fetched; the extension says so.
  • EN 301 549 V4.1.1 (2026-09): the ETSI PDF.
  • WCAG 2.2: W3C.
  • 47 CFR 79.1 and 79.3: eCFR as of 2026-10-01.
  • DAPT: the CRD of 2026-06-26.
  • EBU Tech 3370 v1.0.
  • The UK regulator's statements of 16 Oct 2013 and 15 Apr 2024: archived PDFs, since the regulator's site refuses fetches.
  • Two facts from the sweep were corrected at source:
    • EN 301 549 V4.1.1 says "subtitles", not "captions";
    • the 2024 statement's 4.5 s is a mean across live programming, not a per-programme limit.

Not done

  • Spoken subtitles (EN 301 549 7.1.5), extended audio description, 79.103(e) previewability, and component-level access attributes with HLS CHARACTERISTICS and DASH Accessibility mappings: R7's INGEST part, left out of this slice.
  • The objects a signing or a voicing names are digests only. The corpus has no pose stream, video or audio, and the figures do not decode media.
  • NER severity grading needs a person, so it is not computed. The figure gives the error counts a grader starts from.
  • Sync of a sign track has no stated standard tolerance; the claim states its own (§7.3).

🤖 Generated with Claude Code

## What this adds `wai.access.services` (`wai/extensions/access-services.md`): access services for a room session, and figures about them that any verifier recomputes from signed records. - **Caption quality from the signed revisions (§3, §4).** - **Latency** is each cue's first display on the room clock less the capture of its first word. A sources record places the words on a take, mapped through the take's opening commitment (capture-binding §9.3), with the take checked to derive from a `record_start` to the commitment's author. Words can also be placed directly on the room clock. The class `capture`, `stated` or `none` says which applies. The figure gives the mean (rounded down), min, max, p50 and p95, all at a fixed rank. - **Stability** is the revisions after first display, the words they changed (substitutions and insertions of rᵢ against rᵢ₊₁, so growth of a partial is not a change), and how many cues were corrected. - **Accuracy** is the words of the first revision shown against a signed reference transcript, or against the reviewed final revision. A prefix alignment reads the reference only as far as the partial reaches. With a transcript, a full alignment also covers the final text. The class `transcript`, `reviewed` or `self` names what the reference is. - Words fold ASCII case and edge punctuation, and the walk back of the alignment is one fixed rule, so the substitution, deletion and insertion counts are the same for every verifier. - A quality record states the figure and names its inputs by digest. It is refused `figure_mismatch` or `figure_inputs_mismatch` when it does not match what the verifier recomputes. - **Audio description (§5).** A description record holds: - the script, with each event's interval, DAPT content descriptor and text; - the ducking of the programme audio under each event; - the voicing, either a separate track or a sink voice with a pinned model. Script and voice each carry an origin label: human, machine or machine-reviewed. A voice must start between 35 ms early and 45 ms late of the end of the duck, and end no later than 45 ms after the duck begins to rise. These are DAPT §5.5's bounds, which DAPT takes from EBU R 37. The record maps, written by hand, onto a DAPT document (W3C CRD 2026-06-26): the ducking becomes Mixing Instructions on the Script Event, and the voice an Audio Recording or Synthesized Audio. Player obligations cite EN 301 549 V4.1.1 clauses 7.2.1–7.2.3 and 7.3. - **Sign language (§6).** A signing record binds each object of a `wai.avatar.pose` stream, or of a video of a signer, by digest to the **final** caption revisions it translates. A review (scope `translation`) signs it off. Its figures are each segment's delay behind the speech and, for video, a floor: QVGA and 20 fps, from EN 301 549 V4.1.1 clauses 6.5.2 and 6.5.3, which clause 4.2.4 NOTE 3 names. - **Completeness claim (§7).** For each declared captions, description and signing track, the verifier checks: - the track is present; - it is finished: cues resolved, events voiced, cues signed; - it is in the declared language; - it is within the latency and offset bounds the claim states; - its review is present, names this signing, and is not rejected. §7.3 lists the tolerance each text states, and where none does. The claim also reports how much of each description is spoken over captioned dialogue, as a figure, not a refusal. - **§9** maps each figure onto 47 CFR 79.1(j)(2), (j)(3) and (k)(2)(iv)/(vi), 79.3(a)(3), the UK regulator's 2013 and 2024 statements on live subtitling, and EBU Tech 3370 §2.3.2–2.3.3's authoring delay. It also lists what is not computed: NER-style severity grading (which needs a person), capitalisation and edge punctuation, speed and placement. Implementation: - the `access_services` module of `wai-rs`, feature `access_services = ["timed_text", "capture_take"]`, with no new dependency; - `wai_access_services_vectors gen|verify` and `tests/access_services.rs`; - the corpus `live-conformance/access/`; - the second implementation, `live-conformance/access_services_verify.py`; - a CI step in `wai-conformance.yml` plus its `paths:` entry; - the REGISTRY entry and export (`registry/capabilities.json`, `vocab/v2.ttl`, the REGISTRY tables), with 7 `DocumentKind` wire identifiers and the `tag:…/wai/access` scheme; - a SPEC §5 paragraph and the record lists, the CHANGELOG, the live-conformance index and corpus README; - the timed-text §1 scope note now points audio description here. ## Design decisions and why - **JSON records with JCS signatures, not binary.** They follow synthesis and ai-usage, merged on main, using jwp-receipts §2.4.3 encodings and §3.1 step 1's strict reading. The signature is Ed25519 over `wai:access\x01 ‖ JCS(record − sig)`, and the record id is SHA-256(JCS(record)). Signed integers (latencies, offsets) are decimal strings, because the JCS subset holds no negative number. - **A source is the aligner's statement; the media's time is not.** On a take, the capture clock is the device's signed commitment, and the alignment is attributable to the signer and checkable against the master. The latency class makes the difference visible. Who may capture, and for whom, stays a take or room verifier's check. §12 says so. - **First-display accuracy uses a prefix alignment that ends at the greatest best column.** A growing partial then makes no errors for words it has not reached, and a wrong last word is a substitution, not an insertion. Both cases are covered by a unit test. - **A voice must lie within its event,** since DAPT truncates an audio at its Script Event's end (§4.9.1). The writer can then express every voice, and the sync bounds apply inside it. - **Sink-synthesized description is written as `preRecording` with `tta:speak`.** DAPT has a SHOULD NOT for Audio objects in a pre-recording script and for Synthesized Audio in an as-recorded one. §5.5 states this departure and why. - **A signing binds final revisions only** (`sign_revision_not_final`). It translates what the captions resolve to; a superseded partial is not that. - **Records are checked kind by kind:** sources, references, descriptions, signings, reviews, quality, claims. A record another names is checked before it, whatever the order given. - **Synthesis coordination, read, not edited.** The voice and signer origins are stated as synthesis §3.1's class `synthesized`/`generate`/`speech-synthesis`, with oversight `fully_autonomous` or `human_validated`. The review reuses synthesis §9.1's vocabulary with scope `translation`. ## Checks (all cargo through `rb` on the build host) | check | command | result | |---|---|---| | unit tests | `cargo test --locked --no-default-features --features access_services --lib access_services::` | 6 passed | | corpus test | `cargo test --locked --no-default-features --features access_services --test access_services` | 4 passed (regenerates byte for byte, no other file, every outcome, every §10 reason refuses a case, §10 equals `Reason::ALL`) | | timed-text (text edited) | `cargo test --locked --no-default-features --features timed_text --test timed_text` | 4 passed | | registry | `cargo test --locked --no-default-features --lib codecs::registry` | 14 passed | | registry export | `cargo run --no-default-features --bin wai -- registry export` then `registry export --check` | regenerated, then "up to date" | | reference verify | `wai_access_services_vectors verify ../live-conformance/access` | PASS, PASS | | second implementation | `python3 -I live-conformance/access_services_verify.py live-conformance/access` | 38 vectors and 4 documents PASS; 125 of 125 mutated copies fail | | timed-text verifier | `python3 -I live-conformance/timed_text_verify.py live-conformance/captions` | PASS | | clippy | `cargo clippy --locked --no-default-features --features access_services --all-targets` | no notes in `access_services*` or `codecs/registry.rs` (two fixed: `is_multiple_of`, a type alias); the pre-existing notes elsewhere are unchanged | | lockfile | `cargo metadata --locked --offline --format-version 1` | ok, no dependency added | | repo checks | `check-tests-in-ci.py`, `check-workflow-concurrency.sh`, `check-spec-refs.py`, `check-wai-section-refs.py`, `check-no-vanity-metrics.sh`, `test-public-text-checks.sh`, `check-comparative-prose.sh`, `check-orphan-sources.py` | all exit 0. The section-ref checker first flagged a `[begin, …)` interval before a link, so the intervals were reworded. | | names | `check-public-names.sh` over the 15 touched files with the private list | clean | ## Falsifications (committed first, each restored after) | defect introduced | detector | result | |---|---|---| | Rust: drop the 35 ms early bound | `--test access_services` | exit 101: `description_early` accepted where refusal is stated | | Rust: prefix alignment ends at the least best column | `--lib` and `--test access_services` | exit 101: unit test, and the lesson's figures differ | | Python: drop `sign_revision_not_final` | `access_services_verify.py` | exit 1: `sign_partial` reaches `track_incomplete` | | Python: drop the early bound | `access_services_verify.py` | exit 1: `description_early` accepted | | 125 mutated corpus copies (stated figures, flipped record signatures, altered events, moved places and reasons, a byte in each DAPT file) | `access_services_verify.py` | every copy fails | ## Regulatory and standards facts, each read at its source - EAA Annex I §IV(b)(ii) and Art. 31(2): read from a reproduction of the adopted text, because the Official Journal could not be fetched; the extension says so. - EN 301 549 V4.1.1 (2026-09): the ETSI PDF. - WCAG 2.2: W3C. - 47 CFR 79.1 and 79.3: eCFR as of 2026-10-01. - DAPT: the CRD of 2026-06-26. - EBU Tech 3370 v1.0. - The UK regulator's statements of 16 Oct 2013 and 15 Apr 2024: archived PDFs, since the regulator's site refuses fetches. - Two facts from the sweep were corrected at source: - EN 301 549 V4.1.1 says "subtitles", not "captions"; - the 2024 statement's 4.5 s is a mean across live programming, not a per-programme limit. ## Not done - Spoken subtitles (EN 301 549 7.1.5), extended audio description, 79.103(e) previewability, and component-level `access` attributes with HLS `CHARACTERISTICS` and DASH Accessibility mappings: R7's INGEST part, left out of this slice. - The objects a signing or a voicing names are digests only. The corpus has no pose stream, video or audio, and the figures do not decode media. - NER severity grading needs a person, so it is not computed. The figure gives the error counts a grader starts from. - Sync of a sign track has no stated standard tolerance; the claim states its own (§7.3). 🤖 Generated with [Claude Code](https://claude.com/claude-code)
The extension (extensions/access-services.md), the access_services module of wai-rs
behind its own feature, and the corpus live-conformance/access/ written from fixed seeds
by wai_access_services_vectors: three accepted sessions and a negative control for every
reason of §10, and the DAPT document of each description.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Written from the extension's text: records read strictly and their JCS signatures, words
and their alignment, the caption figures, description rules and DAPT documents (parsed with
xml.etree), signing, reviews and claims; every mutated copy of the corpus must fail. The
extension now links synthesis, merged on main, for the origin of a synthesized voice or
signer and for its review vocabulary.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
wai.access.services: registry entry and export, SPEC §5, CHANGELOG, CI step, corpus README; timed-text's scope points to it
Some checks failed
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 25s
WAI conformance / quantum core and corpus under wasm32-wasip2 (wasmtime) (pull_request) Successful in 2m10s
WAI conformance / cross-arch byte-equality · linux (pull_request) Successful in 28s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 2m17s
joule-moq-room room service / joule-moq-room, every target (pull_request) Successful in 1m34s
standards workspaces build + test / joule-code-rs (joule-code/joule-code-rs, joule-code-rs, linux-arm64, true) (pull_request) Successful in 5m38s
WAI energy receipts / energy receipts · linux (pull_request) Successful in 9m11s
wai-web reach builds / wai-web reach builds · the package of record, every output as recorded (pull_request) Successful in 3m15s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Failing after 18m23s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 18m40s
wai-web reach builds / wai-web reach builds · this tree's wai-web, every rung on its engine line (pull_request) Successful in 4m48s
wai-ops-gpu integer operators on GPUs / builds · no adapter is not a pass (linux) (pull_request) Successful in 1m46s
wai-pack / wai-pack · linux (pull_request) Successful in 1m41s
wai-pack / wai-pack · linux-arm64 (pull_request) Successful in 4m14s
wai-quantum studio and desktop / studio · browser (pull_request) Successful in 3m18s
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Successful in 3m39s
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 14m26s
wai-pack / wai-pack · the floor through a media prober (pull_request) Successful in 2m43s
wai-pack / wai-pack · independent verifier (Python) (pull_request) Successful in 8m48s
wai-pack / wai-pack · dependency licences (pull_request) Successful in 3m57s
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Successful in 42m36s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 17m14s
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 1m6s
joule-moq-web browser client / joule-moq-web · browser end-to-end (macos) (pull_request) Successful in 8m1s
wai-quantum studio and desktop / desktop app · macos (pull_request) Has been cancelled
wai-pack / wai-pack · 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 energy receipts / energy receipts · macos (pull_request) Has been cancelled
standards workspaces build + test / macOS energy backends (pull_request) Has been cancelled
4dacdb2038
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Merge origin/main into wai/access-services (IETF draft, timing-test fix)
Some checks failed
WAI conformance / quantum core and corpus under wasm32-wasip2 (wasmtime) (pull_request) Successful in 2m25s
WAI conformance / cross-arch byte-equality · linux (pull_request) Successful in 30s
WAI energy receipts / energy receipts · linux (pull_request) Successful in 9m14s
wai-ops-gpu integer operators on GPUs / builds · no adapter is not a pass (linux) (pull_request) Successful in 2m21s
wai-quantum studio and desktop / studio · browser (pull_request) Successful in 3m17s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 18m54s
wai-pack / wai-pack · linux (pull_request) Successful in 1m23s
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Successful in 4m15s
joule-moq-room room service / joule-moq-room, every target (pull_request) Successful in 1m11s
WAI conformance / v2 vocabulary · manifests validate as stated (pull_request) Successful in 19s
standards workspaces build + test / joule-code-rs (joule-code/joule-code-rs, joule-code-rs, linux-arm64, true) (pull_request) Successful in 3m34s
WAI conformance / delivery telemetry · CMCD and CMSD against an independent library (pull_request) Successful in 10s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 23s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 1m33s
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 10m45s
wai-pack / wai-pack · linux-arm64 (pull_request) Successful in 2m20s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 20m7s
wai-pack / wai-pack · the floor through a media prober (pull_request) Successful in 32s
wai-pack / wai-pack · dependency licences (pull_request) Successful in 1m24s
wai-pack / wai-pack · independent verifier (Python) (pull_request) Successful in 4m28s
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Successful in 38m36s
joule-moq-web browser client / joule-moq-web · browser end-to-end (macos) (pull_request) Failing after 11m28s
standards workspaces build + test / macOS energy backends (pull_request) Successful in 9m31s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 18m24s
WAI conformance / cross-arch byte-equality · macos (pull_request) Successful in 27s
WAI conformance / codec wrappers · fuzz smoke, text decode limits, C entry points, provenance, the semantic path (pull_request) Successful in 1m2s
WAI energy receipts / energy receipts · macos (pull_request) Successful in 5m50s
wai-ops-gpu integer operators on GPUs / Metal GPU and browser WebGPU (macos) (pull_request) Successful in 2m28s
wai-quantum studio and desktop / desktop app · macos (pull_request) Successful in 2m1s
wai-pack / wai-pack · macos (pull_request) Successful in 1m6s
6ceff94397
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Merge origin/main into wai/access-services (room e2e window wait)
Some checks failed
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
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
5b25cdda59
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

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