wai.media.direction: a director's storyboard, keyframes and sequence, bound to the video and checked (CO5) #411

Closed
dcharlot wants to merge 0 commits from wai/direction into main
Owner

What this is

CO5: wai.media.direction. It records a person's direction of generated or edited video as signed evidence bound to the output, and checks the output against it.

  • Direction records, each signed by a director (an Ed25519 key, the same key as a did:key). Each record states the levels it sets, out of pixel, frame, shot and sequence:
    • wai-storyboard covers the shot level, and the sequence level when it fixes an order. Each shot has a duration, subjects named by reference picture (one view per angle), and the framing it opens on (size class, screen position, angle).
    • wai-keyframes covers the frame and pixel levels:
      • At stated frames of a shot, each subject's box on screen, relative to the subject, and its classes.
      • A camera window over the shot's plate.
      • hold, linear or ease interpolation between keys, pinned in integers.
      • Held regions: rects of stated frames held to a reference picture.
    • wai-sequence covers the sequence level: which shots, which frames of each, in which order, cut or dissolved.
  • The directed output (wai-directed), signed by the tool. It names:
    • the records and the directors;
    • every clip frame's layout (plate, camera window, each subject's view and box, holds);
    • the timeline as made;
    • the output's frames, by a digest over their SHA-256s.
  • Exact or attested.
    • Under replicate, every frame is the pinned integer render of §9: the plate through the camera by the nearest sample, views scaled to their boxes, holds, and an integer blend in a dissolve. The render runs over layers that wai.generate.spectral regenerates or that the verifier holds. Every frame recomputes, so the cut, duration, order, transition, framing (a pinned integer framing measure, §7) and region checks are exact.
    • Under attest (a float generator made the frames), the same checks run on the stated layout. The outcome is attested, with the class of what stated the layout, and is never reported exact.
    • A float generator's picture claimed exact is check_mismatch.
  • Governance.
    • Every element governs the output frames that show what it directed. The record states these frames, and a claim of frames the element does not govern is governance_mismatch.
    • An accepted case gives a per-frame map of which director directed each frame at each level, next to what made the samples.
    • §10.3 defines how each element becomes a direct step of the contribution record.
    • §11.1 maps each element to a C2PA 2.4 c2pa.edited action whose changes are frame ranges (plus the rects, for a held region), one actions assertion per director. The CAWG identity assertion and OpenTimelineIO (release 0.18.1 schemas) are informative mappings.
  • WAI decides no legal question. The service's own mechanics need no consent; where a regime asks for a lawful basis, §15 points to the lawful-basis claim class.

Files:

  • wai/extensions/direction.md
  • wai-rs/src/direction.rs, src/direction/corpus.rs, feature direction = ["receipt_claims", "generate"], with no new dependency
  • src/bin/wai_direction_vectors.rs
  • tests/direction.rs
  • wai/live-conformance/direction/{vectors.json,README.md}
  • wai/live-conformance/direction_verify.py
  • a CI step in wai-conformance.yml (plus a paths: entry for the extension)
  • the registry row and four document kinds (registry export regenerated)
  • SPEC §5 paragraph, CHANGELOG, live-conformance/README.md
  • the int_kernels_vectors exclusion text for live-conformance

Design decisions and why

  • Three record kinds and an explicit levels member. The task named storyboard, keyframes and sequence. Different people often author them (director, cinematographer, editor), and each signs only what they chose. levels must equal what the members set, so "which levels did this person set" is checkable rather than declared.
  • The tool states the layout, and the frames prove it. The directed output carries the per-frame layout as made, and the direction checks compare that layout with the direction records.
    • Under replicate, the frames are first recomputed from that layout, so the layout is exactly what the pixels hold. A mismatch then gets a precise reason (cut_mismatch, framing_mismatch, and so on) rather than a bare frame mismatch.
    • Under attest, the same comparison runs on what a tracker stated, and the result carries its class.
  • Framing relative to the subject. A box is the subject's whole extent, so a close shot's box runs past the frame. Coordinates are therefore signed decimal strings: the JSON encodings admit no negative number, and live-compose already uses the decimal-integer spelling.
    • Size classes are bins of ⌊1000·h/H⌋.
    • Position is the 3×3 cell holding the box centre.
    • Angle is the view drawn.
    • The bins are stated as this measure's own, not a definition of the craft's terms.
  • Frame ranges in C2PA, not temporal ranges. Direction is exact in frames, and 24000/1001 has no exact decimal time. §11.1 says so and points to C2PA 2.4 §18.2.2.4's recommendation of temporal ranges.
  • One actions assertion per director, under C2PA 2.4 §6.4's labelling rule for several assertions of one type. It is never the first actions assertion (§18.15.2). A director's identity assertion can then reference exactly that director's actions.
  • No trims or dissolves in the storyboard's own order. A storyboard order means whole shots joined by cuts. Edits come from a sequence record, and two records setting the sequence level is direction_conflict.
  • The corpus has measures and interpolations sections of their own, so the framing measure's bin, row and column bounds and the interpolation floors are pinned by vectors and not only by unit tests. This came out of a falsification: moving a size bound was not caught until these sections existed (see below).

Checks (every cargo command ran on the build host through rb)

check command result
module unit tests cargo test --locked --no-default-features --features direction --lib direction:: 6 passed
corpus/regeneration/§13 test cargo test --locked --no-default-features --features direction --test direction 4 passed
corpus regenerates, all outcomes wai_direction_vectors verify ../live-conformance/direction PASS, PASS
second implementation python3 -I live-conformance/direction_verify.py live-conformance/direction generator reproduces its conformance vector; 32 measures, 75 interpolations, 41 vectors all agree (statements included); every §13 reason refuses a vector; 18/18 mutated copies fail; corpus catches the verifier with each of its 34 checks dropped
clippy cargo clippy --locked --no-default-features [--features direction] --all-targets no notes in the touched files
registry cargo test --no-default-features --features neural_int,video_int,audio_int,world_int,splat_int,generate --lib codecs::registry 14 passed
registry export wai registry export --check up to date
sidecar rule cargo test ... --test int_kernels_vectors every_decoded_output_states_a_sha256 passed
other live verifiers (shared text touched) all 15 live-conformance/*_verify.py all exit 0
repo checks (local) 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
public names scripts/check-public-names.sh over wai/, and each denylist pattern against the commit messages clean (2542 files), 0 hits

The corpus contents:

  • Accepted, exact. Storyboard + keyframes (eased camera pan, linear push in from medium to close, a held region of a drawn reference) + an editor's sequence that reorders, trims and dissolves over 2 frames. Also: the storyboard fixing its own order; an order left to the tool; and the first case under a policy that requires exact.
  • Accepted, attested. The first direction with float frames and a tracker-stated layout.
  • 35 refusals cover all 23 reasons. Among them:
    • a cut one frame early;
    • a box one pixel off its linear track;
    • a camera one pixel off its eased track;
    • a size class the box does not measure;
    • a key class no box can satisfy;
    • a sequence signed by a non-party;
    • the edit's shots in another order;
    • a float plate claimed exact;
    • frames that do not recompute;
    • a governance entry crediting keyframes with every frame (the direct step over-reach);
    • a missing held region;
    • two sequence-level records;
    • two keyframes for one shot.

Frames are 64×36 at 24 fps. The render was also checked visually: the contact sheet shows the push in, the dissolve, the pan and the held region where they belong.

Falsifications (committed first, then broken one rule at a time on the build host)

  • Rust, each change to direction.rs making cargo test --test direction fail (exit 101):
    • cut check removed
    • ease read as linear
    • dissolve without its rounding term
    • governance check removed
    • signer check removed
    • linear interpolation truncating toward zero
    • the float-claimed-exact check removed
    • "full" size bin moved from 700 to 800
    • a column bound off by one
    • the position clamp removed
  • The §13 table: dropping cut_mismatch from it fails the_extension_lists_the_reasons.
  • What the falsifications caught:
    • At first, "full at 800" and "column off by one" both passed. The size control also moved the position, and no measure probed a bound exactly.
    • I fixed the control so it changes only the size, and added the measures and interpolations sections with exact-bound probes.
    • Both falsifications then failed as they should.
  • Python:
    • Changing the verifier's size bin, or using truncating division in its interpolation, makes it exit 1.
    • Changing one cuts statement in vectors.json makes it exit 1. Restoring the file makes it exit 0.
    • The verifier's own self-test drops each of its 34 checks in turn, and the corpus catches every one.

Not done

  • The contribution record's direct act, in code.
    • #403 (wai.media.contribution) is not on main (main is at #397, merged into this branch).
    • Its current revision maps still pictures only and refuses direct (act_reserved).
    • §10.3 here defines the step (performer, params {record, element, frames}, check, dependency rule), and §12.2 step 8 already enforces the same frame claim through governs.
    • Implementing the act belongs with #403, or with its revision that maps video frame by frame.
  • No exploration code (#406, not on main). §1.3 says only that a view, reference or plate may be a picture from an exploration archive, named by its samples digest.
  • Expect merge conflicts. The registry rows, lib.rs, Cargo.toml, the CI step, SPEC §5, CHANGELOG, live-conformance/README.md and the int_kernels_vectors exclusion line all sit next to #403's and #406's edits. Whichever lands second needs a mechanical merge and a fresh registry export.
  • Out of scope by design: measuring a subject in arbitrary generated pixels (a detector stays the tool's, attested), camera paths in world space, audio direction, and direction of live-room composition.

🤖 Generated with Claude Code


Closed: Landed in #428 (merge train, merged as aa61ab3b with all 65 checks green).

## What this is CO5: `wai.media.direction`. It records a person's direction of generated or edited video as signed evidence bound to the output, and checks the output against it. - **Direction records**, each signed by a director (an Ed25519 key, the same key as a `did:key`). Each record states the levels it sets, out of `pixel`, `frame`, `shot` and `sequence`: - `wai-storyboard` covers the shot level, and the sequence level when it fixes an order. Each shot has a duration, subjects named by reference picture (one view per angle), and the framing it opens on (size class, screen position, angle). - `wai-keyframes` covers the frame and pixel levels: - At stated frames of a shot, each subject's box on screen, relative to the subject, and its classes. - A camera window over the shot's plate. - `hold`, `linear` or `ease` interpolation between keys, pinned in integers. - Held regions: rects of stated frames held to a reference picture. - `wai-sequence` covers the sequence level: which shots, which frames of each, in which order, cut or dissolved. - **The directed output** (`wai-directed`), signed by the tool. It names: - the records and the directors; - every clip frame's layout (plate, camera window, each subject's view and box, holds); - the timeline as made; - the output's frames, by a digest over their SHA-256s. - **Exact or attested.** - Under `replicate`, every frame is the pinned integer render of §9: the plate through the camera by the nearest sample, views scaled to their boxes, holds, and an integer blend in a dissolve. The render runs over layers that `wai.generate.spectral` regenerates or that the verifier holds. Every frame recomputes, so the cut, duration, order, transition, framing (a pinned integer framing measure, §7) and region checks are exact. - Under `attest` (a float generator made the frames), the same checks run on the stated layout. The outcome is `attested`, with the class of what stated the layout, and is never reported exact. - A float generator's picture claimed exact is `check_mismatch`. - **Governance.** - Every element governs the output frames that show what it directed. The record states these frames, and a claim of frames the element does not govern is `governance_mismatch`. - An accepted case gives a per-frame map of which director directed each frame at each level, next to what made the samples. - §10.3 defines how each element becomes a `direct` step of the contribution record. - §11.1 maps each element to a C2PA 2.4 `c2pa.edited` action whose `changes` are frame ranges (plus the rects, for a held region), one actions assertion per director. The CAWG identity assertion and OpenTimelineIO (release 0.18.1 schemas) are informative mappings. - WAI decides no legal question. The service's own mechanics need no consent; where a regime asks for a lawful basis, §15 points to the `lawful-basis` claim class. Files: - `wai/extensions/direction.md` - `wai-rs/src/direction.rs`, `src/direction/corpus.rs`, feature `direction = ["receipt_claims", "generate"]`, with no new dependency - `src/bin/wai_direction_vectors.rs` - `tests/direction.rs` - `wai/live-conformance/direction/{vectors.json,README.md}` - `wai/live-conformance/direction_verify.py` - a CI step in `wai-conformance.yml` (plus a `paths:` entry for the extension) - the registry row and four document kinds (registry export regenerated) - SPEC §5 paragraph, CHANGELOG, `live-conformance/README.md` - the `int_kernels_vectors` exclusion text for `live-conformance` ## Design decisions and why - **Three record kinds and an explicit `levels` member.** The task named storyboard, keyframes and sequence. Different people often author them (director, cinematographer, editor), and each signs only what they chose. `levels` must equal what the members set, so "which levels did this person set" is checkable rather than declared. - **The tool states the layout, and the frames prove it.** The directed output carries the per-frame layout as made, and the direction checks compare that layout with the direction records. - Under `replicate`, the frames are first recomputed from that layout, so the layout is exactly what the pixels hold. A mismatch then gets a precise reason (`cut_mismatch`, `framing_mismatch`, and so on) rather than a bare frame mismatch. - Under `attest`, the same comparison runs on what a tracker stated, and the result carries its class. - **Framing relative to the subject.** A box is the subject's whole extent, so a close shot's box runs past the frame. Coordinates are therefore signed decimal strings: the JSON encodings admit no negative number, and live-compose already uses the decimal-integer spelling. - Size classes are bins of ⌊1000·h/H⌋. - Position is the 3×3 cell holding the box centre. - Angle is the view drawn. - The bins are stated as this measure's own, not a definition of the craft's terms. - **Frame ranges in C2PA, not temporal ranges.** Direction is exact in frames, and 24000/1001 has no exact decimal time. §11.1 says so and points to C2PA 2.4 §18.2.2.4's recommendation of temporal ranges. - **One actions assertion per director**, under C2PA 2.4 §6.4's labelling rule for several assertions of one type. It is never the first actions assertion (§18.15.2). A director's identity assertion can then reference exactly that director's actions. - **No trims or dissolves in the storyboard's own order.** A storyboard `order` means whole shots joined by cuts. Edits come from a sequence record, and two records setting the sequence level is `direction_conflict`. - **The corpus has `measures` and `interpolations` sections of their own**, so the framing measure's bin, row and column bounds and the interpolation floors are pinned by vectors and not only by unit tests. This came out of a falsification: moving a size bound was not caught until these sections existed (see below). ## Checks (every cargo command ran on the build host through `rb`) | check | command | result | |---|---|---| | module unit tests | `cargo test --locked --no-default-features --features direction --lib direction::` | 6 passed | | corpus/regeneration/§13 test | `cargo test --locked --no-default-features --features direction --test direction` | 4 passed | | corpus regenerates, all outcomes | `wai_direction_vectors verify ../live-conformance/direction` | PASS, PASS | | second implementation | `python3 -I live-conformance/direction_verify.py live-conformance/direction` | generator reproduces its conformance vector; 32 measures, 75 interpolations, 41 vectors all agree (statements included); every §13 reason refuses a vector; 18/18 mutated copies fail; corpus catches the verifier with each of its 34 checks dropped | | clippy | `cargo clippy --locked --no-default-features [--features direction] --all-targets` | no notes in the touched files | | registry | `cargo test --no-default-features --features neural_int,video_int,audio_int,world_int,splat_int,generate --lib codecs::registry` | 14 passed | | registry export | `wai registry export --check` | up to date | | sidecar rule | `cargo test ... --test int_kernels_vectors every_decoded_output_states_a_sha256` | passed | | other live verifiers (shared text touched) | all 15 `live-conformance/*_verify.py` | all exit 0 | | repo checks (local) | `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 | | public names | `scripts/check-public-names.sh` over `wai/`, and each denylist pattern against the commit messages | clean (2542 files), 0 hits | The corpus contents: - **Accepted, exact.** Storyboard + keyframes (eased camera pan, linear push in from medium to close, a held region of a drawn reference) + an editor's sequence that reorders, trims and dissolves over 2 frames. Also: the storyboard fixing its own order; an order left to the tool; and the first case under a policy that requires exact. - **Accepted, attested.** The first direction with float frames and a tracker-stated layout. - **35 refusals** cover all 23 reasons. Among them: - a cut one frame early; - a box one pixel off its linear track; - a camera one pixel off its eased track; - a size class the box does not measure; - a key class no box can satisfy; - a sequence signed by a non-party; - the edit's shots in another order; - a float plate claimed exact; - frames that do not recompute; - a governance entry crediting keyframes with every frame (the `direct` step over-reach); - a missing held region; - two sequence-level records; - two keyframes for one shot. Frames are 64×36 at 24 fps. The render was also checked visually: the contact sheet shows the push in, the dissolve, the pan and the held region where they belong. ## Falsifications (committed first, then broken one rule at a time on the build host) - **Rust**, each change to `direction.rs` making `cargo test --test direction` fail (exit 101): - cut check removed - ease read as linear - dissolve without its rounding term - governance check removed - signer check removed - linear interpolation truncating toward zero - the float-claimed-exact check removed - "full" size bin moved from 700 to 800 - a column bound off by one - the position clamp removed - **The §13 table:** dropping `cut_mismatch` from it fails `the_extension_lists_the_reasons`. - **What the falsifications caught:** - At first, "full at 800" and "column off by one" both passed. The size control also moved the position, and no measure probed a bound exactly. - I fixed the control so it changes only the size, and added the `measures` and `interpolations` sections with exact-bound probes. - Both falsifications then failed as they should. - **Python:** - Changing the verifier's size bin, or using truncating division in its interpolation, makes it exit 1. - Changing one `cuts` statement in `vectors.json` makes it exit 1. Restoring the file makes it exit 0. - The verifier's own self-test drops each of its 34 checks in turn, and the corpus catches every one. ## Not done - **The contribution record's `direct` act, in code.** - #403 (`wai.media.contribution`) is not on main (main is at #397, merged into this branch). - Its current revision maps still pictures only and refuses `direct` (`act_reserved`). - §10.3 here defines the step (performer, params `{record, element, frames}`, check, dependency rule), and §12.2 step 8 already enforces the same frame claim through `governs`. - Implementing the act belongs with #403, or with its revision that maps video frame by frame. - **No exploration code** (#406, not on main). §1.3 says only that a view, reference or plate may be a picture from an exploration archive, named by its samples digest. - **Expect merge conflicts.** The registry rows, `lib.rs`, `Cargo.toml`, the CI step, SPEC §5, CHANGELOG, `live-conformance/README.md` and the `int_kernels_vectors` exclusion line all sit next to #403's and #406's edits. Whichever lands second needs a mechanical merge and a fresh `registry export`. - **Out of scope by design:** measuring a subject in arbitrary generated pixels (a detector stays the tool's, attested), camera paths in world space, audio direction, and direction of live-room composition. 🤖 Generated with [Claude Code](https://claude.com/claude-code) --- **Closed:** Landed in #428 (merge train, merged as aa61ab3b with all 65 checks green).
The extension text (extensions/direction.md), the wai-rs module behind the
feature direction (records, the framing measure, interpolation, the pinned
render, governance, verification), its corpus generator and test, the corpus
live-conformance/direction/vectors.json and its second implementation,
direction_verify.py.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Co-Authored-By: Claude Opus 5.5 <[email protected]>
The record's row and its four document kinds in the registry and its export,
the CI step that runs the reference's tests and direction_verify.py, and the
live-conformance listing; int_kernels_vectors' exclusion names the corpus's
generated layers and rendered frames by their SHA-256.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Boxes at both sides of every size bound and every column and row bound, past
the edges and at the limits of a signed integer; each interpolation mode rising
and falling, with floors below zero. The size control now keeps its position,
so it fails on the size bound alone.

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]>
Co-Authored-By: Claude Opus 5.5 <[email protected]>
direction.md: the exploration record's pictures as layers and references
All checks were successful
joule-moq-room room service / joule-moq-room, every target (pull_request) Successful in 1m0s
WAI conformance / quantum core and corpus under wasm32-wasip2 (wasmtime) (pull_request) Successful in 2m2s
WAI conformance / cross-arch byte-equality · linux (pull_request) Successful in 25s
WAI energy receipts / energy receipts · linux (pull_request) Successful in 10m10s
wai-ops-gpu integer operators on GPUs / builds · no adapter is not a pass (linux) (pull_request) Successful in 1m50s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 18m59s
wai-pack / wai-pack · linux (pull_request) Successful in 1m19s
wai-quantum studio and desktop / studio · browser (pull_request) Successful in 2m44s
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Successful in 4m18s
joule-moq-web browser client / joule-moq-web · browser end-to-end (macos) (pull_request) Successful in 7m56s
standards workspaces build + test / joule-code-rs (joule-code/joule-code-rs, joule-code-rs, linux-arm64, true) (pull_request) Successful in 4m53s
WAI conformance / v2 vocabulary · manifests validate as stated (pull_request) Successful in 24s
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 30s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 1m52s
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 14m38s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 24m37s
wai-pack / wai-pack · linux-arm64 (pull_request) Successful in 1m27s
wai-pack / wai-pack · the floor through a media prober (pull_request) Successful in 1m2s
wai-pack / wai-pack · dependency licences (pull_request) Successful in 1m52s
wai-pack / wai-pack · independent verifier (Python) (pull_request) Successful in 6m20s
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Successful in 40m17s
standards workspaces build + test / macOS energy backends (pull_request) Successful in 8m2s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 14m35s
WAI conformance / cross-arch byte-equality · macos (pull_request) Successful in 20s
WAI conformance / codec wrappers · fuzz smoke, text decode limits, C entry points, provenance, the semantic path (pull_request) Successful in 46s
WAI energy receipts / energy receipts · macos (pull_request) Successful in 5m4s
wai-ops-gpu integer operators on GPUs / Metal GPU and browser WebGPU (macos) (pull_request) Successful in 2m23s
wai-pack / wai-pack · macos (pull_request) Successful in 1m6s
wai-quantum studio and desktop / desktop app · macos (pull_request) Successful in 2m16s
8e64d7484f
Co-Authored-By: Claude Opus 5.5 <[email protected]>
dcharlot closed this pull request 2026-10-22 12:02:01 -04:00
All checks were successful
joule-moq-room room service / joule-moq-room · does this change touch it (pull_request) Successful in 5s
joule-moq-web browser client / joule-moq-web · does this change touch it (pull_request) Successful in 5s
wai-web reach builds / wai-web reach · does this change touch it (pull_request) Successful in 5s
wai-web reach builds / wai-web reach builds · the package of record, every output as recorded (pull_request) Successful in 2m33s
wai-web reach builds / wai-web reach builds · this tree's wai-web, every rung on its engine line (pull_request) Successful in 4m6s
standards workspaces build + test / which workspaces this change touches (pull_request) Successful in 5s
WAI conformance / does this change touch it (pull_request) Successful in 5s
WAI energy receipts / does this change touch it (pull_request) Successful in 4s
wai-ops-gpu integer operators on GPUs / does this change touch it (pull_request) Successful in 4s
wai-pack / wai-pack · does this change touch it (pull_request) Successful in 4s
wai-quantum studio and desktop / does this change touch it (pull_request) Successful in 5s
wai-web wasm32 / does this change touch it (pull_request) Successful in 4s
repository checks / lockfiles, tests in CI, workflow hygiene, spec and section references, public text (pull_request) Successful in 46s
joule-moq-room room service / joule-moq-room, every target (pull_request) Successful in 1m0s
WAI conformance / quantum core and corpus under wasm32-wasip2 (wasmtime) (pull_request) Successful in 2m2s
WAI conformance / cross-arch byte-equality · linux (pull_request) Successful in 25s
WAI energy receipts / energy receipts · linux (pull_request) Successful in 10m10s
wai-ops-gpu integer operators on GPUs / builds · no adapter is not a pass (linux) (pull_request) Successful in 1m50s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 18m59s
wai-pack / wai-pack · linux (pull_request) Successful in 1m19s
wai-quantum studio and desktop / studio · browser (pull_request) Successful in 2m44s
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Successful in 4m18s
joule-moq-web browser client / joule-moq-web · browser end-to-end (macos) (pull_request) Successful in 7m56s
standards workspaces build + test / joule-code-rs (joule-code/joule-code-rs, joule-code-rs, linux-arm64, true) (pull_request) Successful in 4m53s
WAI conformance / v2 vocabulary · manifests validate as stated (pull_request) Successful in 24s
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 30s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 1m52s
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 14m38s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 24m37s
wai-pack / wai-pack · linux-arm64 (pull_request) Successful in 1m27s
wai-pack / wai-pack · the floor through a media prober (pull_request) Successful in 1m2s
wai-pack / wai-pack · dependency licences (pull_request) Successful in 1m52s
wai-pack / wai-pack · independent verifier (Python) (pull_request) Successful in 6m20s
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Successful in 40m17s
standards workspaces build + test / macOS energy backends (pull_request) Successful in 8m2s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 14m35s
WAI conformance / cross-arch byte-equality · macos (pull_request) Successful in 20s
WAI conformance / codec wrappers · fuzz smoke, text decode limits, C entry points, provenance, the semantic path (pull_request) Successful in 46s
WAI energy receipts / energy receipts · macos (pull_request) Successful in 5m4s
wai-ops-gpu integer operators on GPUs / Metal GPU and browser WebGPU (macos) (pull_request) Successful in 2m23s
wai-pack / wai-pack · macos (pull_request) Successful in 1m6s
wai-quantum studio and desktop / desktop app · macos (pull_request) Successful in 2m16s

Pull request closed

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!411
No description provided.