wai.live.world: a shared world in a live room, on the room stack #482

Closed
dcharlot wants to merge 0 commits from wai/world-on-moq into main
Owner

What this is

wai.live.world: a shared world in a live room, on the room stack the live room already runs
(joule-moq draft-22 objects, joule-moq-relay, joule-moq-room, the browser room client). It
carries what a separate WebSocket-bridge relay outside this repository carried for two pages of
the WAI site (a shared world of signed action ops, and a private channel), so that the site can
run on one MoQ stack.

  • The extension wai/extensions/live-worlds.md (record wai.live.world): the room
    authority's world statement WLW1 (the world the ops replay in: for wai.world.model its
    model header; the bounds of an op and of an object); the world track [room, principal, "world"], each group one op batch receipted as a media track is (labelled receipts, receipt
    alias 4, the unmetered marker where nothing is measured); the grant attribute world = act
    and the one scope it maps onto at a relay; the clock's lifecycle for an actor (join when its
    world track appears, leave when it ends, no publish); catching up by FETCH from group 0
    and the relay's retention; private worlds, sealed as confidentiality seals a media track, with
    carries into each epoch so a later member replays the world from its start; verification
    (§9.2) and the session hash (§9.3); metering under the room's other tracks; reasons (§11).
  • wai-rs live_world (feature live_world): the statement, a participant's incremental
    copy of the world (World::offer with receipts, offer_batch for a page whose transport client
    verified them), the carry, the session hash and the §9 verifier. The registry gains
    wai.live.world (export regenerated).
  • Corpus wai/live-conformance/worlds/ (35 vectors, generated from fixed seeds by
    wai_live_world_vectors gen), and its second implementation live_worlds_verify.py, written
    from the text alone by a separate author, sharing no code with wai-rs.
  • joule-moq-relay: a grant whose attribute world is act publishes [R, P, world]
    (three lines in auth.rs, and a unit test). Nothing else in the relay changes.
  • joule-moq-room: [world] rooms (with or without e2ee): the statement served with the
    room, actors' grants (world = act, no media), the clock watching world tracks;
    relay-lines prints the world door and window, commented. tests/world_room.rs.
  • joule-moq-web: web/world/world.js (a participant in a page) and web/world/index.html;
    the signer can sign objects that are not envelopes. e2e/room.e2e.mjs gains the world and
    privateworld scenarios.
  • wai-live-web: World, worldStatement, worldAction for a page.
  • Text made exact: interactive-worlds §5.1 (a CausalOp's integers are little-endian; its
    signature is over the domain then the preceding bytes); live-rooms §4.4, §6.1, §10.2 and
    confidentiality §1 name the world track.

Design decisions

  • One track per actor, not one shared track. A MoQ track has one publisher; each actor
    publishes its own ops, receipted under its own key, and the relay's door holds the track to
    that key. The shared world is the merge, under the canonical order the world capability
    already defines; there is no central signer.
  • The right is a grant attribute, not a new publish bit. live-rooms §4.3's publish bits
    are media kinds, checked by the live-rooms corpus and verifier; an attribute is how
    co-performance, age assurance and co-watch extended grants, and leaves those untouched.
  • Catch-up is FETCH from group 0 in a public world; carries in a private one. Groups are
    numbered from 0 with no gap, so a participant knows when its copy is whole (world_incomplete).
    A sealed room cannot be fetched into (a later member holds no earlier epoch's keys, and a
    relay keeps nothing of it), so each member republishes every op it holds, sealed in each epoch
    it reaches; each op is self-signed, so a carry cannot forge one (it can omit one, §13).
  • No new receipt form. World objects are receipted exactly as the room client receipts media
    (joule-moq's labelled form, receipts track WJR1); the page verifies them with the relay
    door's own verifier, then runs §9.2's other steps in wai-rs code (wai-live-web).
  • Relay changes kept minimal (another branch is changing the relay): the attribute mapping
    only.

Checks

Check Command Result
wai-rs module cargo test --locked --no-default-features --features live_world --lib live_world:: (build host) 3 passed
wai-rs corpus test cargo test --locked --no-default-features --features live_world --test live_world 3 passed: regenerates byte for byte, every vector its outcome, §11 lists exactly the codes
Corpus wai_live_world_vectors verify ../live-conformance/worlds PASS, PASS
Second implementation python3 -I live-conformance/live_worlds_verify.py live-conformance/worlds PASS, 35 vectors
Every other live verifier (shared text touched) python3 -I <x>_verify.py <dir> for each in live-conformance/README.md all PASS (live-rooms 73 vectors, e2ee every vector, …)
wai-rs lib cargo test -q --locked --no-default-features --lib 181 passed
Registry cargo run -q --no-default-features --bin wai -- registry export --check up to date
wai-live-web cargo test --locked (its new host test runs the corpus's world through the page's path) 8 passed
joule-moq-relay cargo test --locked -p joule-moq-relay --lib auth:: 5 passed
joule-moq-room, every target cargo test --locked (its workspace) all passed; world_room: 2 passed
joule-moq-web cargo test --locked -p joule-moq-web --lib 9 passed
Browser e2e (the browser host) e2e/run.sh --only world,privateworld 1 of 1 runs, 22 of 22 checks
The page modules' node tests (run.sh step) node --test … 46 passed
Clippy wai-rs --features live_world --all-targets; joule-moq-room, joule-moq-relay, joule-moq-web, wai-live-web --all-targets no note in this branch's code; the notes listed are on main's lines
Locks cargo metadata --locked --offline on joule-moq-room and wai-live-web; every build above --locked ok (no lock changed)
Workflows ruby -ryaml … on every workflow; wfsteps.py HEAD <base> origin/main parse; 1 problem: the new live-worlds step, which no source has (it is new)
Repo checks check-tests-in-ci, check-workflow-concurrency, check-spec-refs, check-wai-section-refs, check-no-vanity-metrics, test-public-text-checks, check-comparative-prose, check-orphan-sources all clean
Public names scripts/check-public-names.sh on changed files; commit messages and this body against the same patterns clean (one hit is main's existing browser path in joule-moq-web.yml)

Falsifications

Committed first; each mutation applied to the checkout on the build host, its test run, the file restored and touched (cargo keeps a mutated build when a restored file keeps its old mtime: an earlier pass showed this, and its results were thrown away and the pass run again).

Mutation Fails
live_world: Lamport rule removed corpus test (lamport_regress vector)
live_world: actor = owner removed corpus test (public_foreign_op)
live_world: equivocation accepted corpus test (equivocation)
live_world: receipt signer not held to the owner corpus test (receipts_other_signer)
live_world: gap not checked corpus test (public_gap)
live_world: op signature not checked corpus test (op_signature)
live_world: grant attribute ignored corpus test (viewer_not_granted)
relay: any grant publishes a world track auth::the_world_attribute_maps_onto_the_world_track
room: the clock watches video, not the world track both world_room tests (no join)
room: an actor's grant without world = act both world_room tests
room test: no world door at the relay world_room: the forged group is not dropped
page: no carry into a new epoch browser privateworld: the later member never gets the earlier ops
page: no catch-up fetch browser world: the late page never converges
Python verifier (its author's own falsifications, in scratch copies) each removed check: its negative vector passes; flipped bytes in an op, a receipt, a payload, the statement; a dropped group or grant

Not done

  • /worlds and /telepresence still use the WebSocket op-log relay (wai/wai-relay, /worlds-ws); moving them needs live-worlds to carry wai.world.live's ops and the avatar ops, a later slice.
  • A page does not reconnect after its relay session ends (the relay's session limit); it enters again with a new key.
  • world_incomplete is reported by a page from its fetch; no relay-side signal says a window has dropped a world group.
  • The private world's carries are not deduplicated across members: every member carries every op in every epoch.

🤖 Generated with Claude Code


Closed: Landed on main through merge train E (#499, merge bf39ec9a); verified by content: this PR's head is in main

## What this is `wai.live.world`: a shared world in a live room, on the room stack the live room already runs (`joule-moq` draft-22 objects, `joule-moq-relay`, `joule-moq-room`, the browser room client). It carries what a separate WebSocket-bridge relay outside this repository carried for two pages of the WAI site (a shared world of signed action ops, and a private channel), so that the site can run on one MoQ stack. - **The extension** `wai/extensions/live-worlds.md` (record `wai.live.world`): the room authority's world statement `WLW1` (the world the ops replay in: for `wai.world.model` its model header; the bounds of an op and of an object); the world track `[room, principal, "world"]`, each group one op batch receipted as a media track is (labelled receipts, receipt alias 4, the unmetered marker where nothing is measured); the grant attribute `world` = `act` and the one scope it maps onto at a relay; the clock's lifecycle for an actor (`join` when its world track appears, `leave` when it ends, no `publish`); catching up by FETCH from group 0 and the relay's retention; private worlds, sealed as confidentiality seals a media track, with **carries** into each epoch so a later member replays the world from its start; verification (§9.2) and the session hash (§9.3); metering under the room's other tracks; reasons (§11). - **wai-rs** `live_world` (feature `live_world`): the statement, a participant's incremental copy of the world (`World::offer` with receipts, `offer_batch` for a page whose transport client verified them), the carry, the session hash and the §9 verifier. The registry gains `wai.live.world` (export regenerated). - **Corpus** `wai/live-conformance/worlds/` (35 vectors, generated from fixed seeds by `wai_live_world_vectors gen`), and its second implementation `live_worlds_verify.py`, written from the text alone by a separate author, sharing no code with wai-rs. - **joule-moq-relay**: a grant whose attribute `world` is `act` publishes `[R, P, world]` (three lines in `auth.rs`, and a unit test). Nothing else in the relay changes. - **joule-moq-room**: `[world]` rooms (with or without `e2ee`): the statement served with the room, actors' grants (`world` = `act`, no media), the clock watching world tracks; `relay-lines` prints the world door and window, commented. `tests/world_room.rs`. - **joule-moq-web**: `web/world/world.js` (a participant in a page) and `web/world/index.html`; the signer can sign objects that are not envelopes. `e2e/room.e2e.mjs` gains the `world` and `privateworld` scenarios. - **wai-live-web**: `World`, `worldStatement`, `worldAction` for a page. - Text made exact: interactive-worlds §5.1 (a `CausalOp`'s integers are little-endian; its signature is over the domain then the preceding bytes); live-rooms §4.4, §6.1, §10.2 and confidentiality §1 name the world track. ## Design decisions - **One track per actor, not one shared track.** A MoQ track has one publisher; each actor publishes its own ops, receipted under its own key, and the relay's door holds the track to that key. The shared world is the merge, under the canonical order the world capability already defines; there is no central signer. - **The right is a grant attribute, not a new `publish` bit.** live-rooms §4.3's `publish` bits are media kinds, checked by the live-rooms corpus and verifier; an attribute is how co-performance, age assurance and co-watch extended grants, and leaves those untouched. - **Catch-up is FETCH from group 0 in a public world; carries in a private one.** Groups are numbered from 0 with no gap, so a participant knows when its copy is whole (`world_incomplete`). A sealed room cannot be fetched into (a later member holds no earlier epoch's keys, and a relay keeps nothing of it), so each member republishes every op it holds, sealed in each epoch it reaches; each op is self-signed, so a carry cannot forge one (it can omit one, §13). - **No new receipt form.** World objects are receipted exactly as the room client receipts media (joule-moq's labelled form, receipts track `WJR1`); the page verifies them with the relay door's own verifier, then runs §9.2's other steps in wai-rs code (`wai-live-web`). - **Relay changes kept minimal** (another branch is changing the relay): the attribute mapping only. ## Checks | Check | Command | Result | |---|---|---| | wai-rs module | `cargo test --locked --no-default-features --features live_world --lib live_world::` (build host) | 3 passed | | wai-rs corpus test | `cargo test --locked --no-default-features --features live_world --test live_world` | 3 passed: regenerates byte for byte, every vector its outcome, §11 lists exactly the codes | | Corpus | `wai_live_world_vectors verify ../live-conformance/worlds` | PASS, PASS | | Second implementation | `python3 -I live-conformance/live_worlds_verify.py live-conformance/worlds` | PASS, 35 vectors | | Every other live verifier (shared text touched) | `python3 -I <x>_verify.py <dir>` for each in `live-conformance/README.md` | all PASS (live-rooms 73 vectors, e2ee every vector, …) | | wai-rs lib | `cargo test -q --locked --no-default-features --lib` | 181 passed | | Registry | `cargo run -q --no-default-features --bin wai -- registry export --check` | up to date | | wai-live-web | `cargo test --locked` (its new host test runs the corpus's world through the page's path) | 8 passed | | joule-moq-relay | `cargo test --locked -p joule-moq-relay --lib auth::` | 5 passed | | joule-moq-room, every target | `cargo test --locked` (its workspace) | all passed; `world_room`: 2 passed | | joule-moq-web | `cargo test --locked -p joule-moq-web --lib` | 9 passed | | Browser e2e (the browser host) | `e2e/run.sh --only world,privateworld` | 1 of 1 runs, 22 of 22 checks | | The page modules' node tests (run.sh step) | `node --test …` | 46 passed | | Clippy | wai-rs `--features live_world --all-targets`; joule-moq-room, joule-moq-relay, joule-moq-web, wai-live-web `--all-targets` | no note in this branch's code; the notes listed are on main's lines | | Locks | `cargo metadata --locked --offline` on joule-moq-room and wai-live-web; every build above `--locked` | ok (no lock changed) | | Workflows | `ruby -ryaml …` on every workflow; `wfsteps.py HEAD <base> origin/main` | parse; 1 problem: the new live-worlds step, which no source has (it is new) | | Repo checks | check-tests-in-ci, check-workflow-concurrency, check-spec-refs, check-wai-section-refs, check-no-vanity-metrics, test-public-text-checks, check-comparative-prose, check-orphan-sources | all clean | | Public names | `scripts/check-public-names.sh` on changed files; commit messages and this body against the same patterns | clean (one hit is main's existing browser path in `joule-moq-web.yml`) | ## Falsifications Committed first; each mutation applied to the checkout on the build host, its test run, the file restored and touched (cargo keeps a mutated build when a restored file keeps its old mtime: an earlier pass showed this, and its results were thrown away and the pass run again). | Mutation | Fails | |---|---| | live_world: Lamport rule removed | corpus test (`lamport_regress` vector) | | live_world: actor = owner removed | corpus test (`public_foreign_op`) | | live_world: equivocation accepted | corpus test (`equivocation`) | | live_world: receipt signer not held to the owner | corpus test (`receipts_other_signer`) | | live_world: gap not checked | corpus test (`public_gap`) | | live_world: op signature not checked | corpus test (`op_signature`) | | live_world: grant attribute ignored | corpus test (`viewer_not_granted`) | | relay: any grant publishes a world track | `auth::the_world_attribute_maps_onto_the_world_track` | | room: the clock watches video, not the world track | both `world_room` tests (no join) | | room: an actor's grant without `world` = `act` | both `world_room` tests | | room test: no world door at the relay | `world_room`: the forged group is not dropped | | page: no carry into a new epoch | browser `privateworld`: the later member never gets the earlier ops | | page: no catch-up fetch | browser `world`: the late page never converges | | Python verifier (its author's own falsifications, in scratch copies) | each removed check: its negative vector passes; flipped bytes in an op, a receipt, a payload, the statement; a dropped group or grant | ## Not done - `/worlds` and `/telepresence` still use the WebSocket op-log relay (`wai/wai-relay`, `/worlds-ws`); moving them needs live-worlds to carry `wai.world.live`'s ops and the avatar ops, a later slice. - A page does not reconnect after its relay session ends (the relay's session limit); it enters again with a new key. - `world_incomplete` is reported by a page from its fetch; no relay-side signal says a window has dropped a world group. - The private world's carries are not deduplicated across members: every member carries every op in every epoch. 🤖 Generated with [Claude Code](https://claude.com/claude-code) --- **Closed:** Landed on main through merge train E (#499, merge bf39ec9a); verified by content: this PR's head is in main
live-worlds.md registers the record wai.live.world: the room authority's
world statement (WLW1), the world track each actor publishes in a room
([room, principal, world], op batches one per group, receipted as a media
track is, receipt alias 4), the grant attribute world = act and the scope
it maps onto at a relay, the clock's lifecycle for an actor, catching up
by FETCH from group 0, private worlds sealed as confidentiality seals a
media track with carries into each epoch, verification and the session
hash, and metering under the room's other tracks.

wai-rs gains the live_world module (feature live_world): the statement,
a participant's incremental copy of the world, the carry, the session
hash and the verifier of section 9; and the corpus
live-conformance/worlds/ written from fixed seeds by
wai_live_world_vectors gen, every refusal of section 9.2 and 3.4 among
its negative controls.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
live_worlds_verify.py is the corpus's second implementation, written from
the extension's text and the sections it cites, sharing no code with
wai-rs; it agrees with the reference on every vector.

Writing it found readings the text left open, now closed: a CausalOp's
integers are little-endian and its signature is over the domain then the
preceding bytes (interactive-worlds 5.1); a world track's receipts are a
track's, not interactive-worlds 8's session receipts; the order of the
descriptor, grant and statement checks; the group total is checked; a
private world's first opened object above group 0 starts its chain; the
session hash chains each op with its signature; the outcome lists the
actors whose ops were admitted. The corpus gains a group-total refusal,
and section 12 states which codes it covers.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
The room service's [world] configuration: each room's authority signs its
world statement, served with the room; a publisher's grant is an actor's
(the attribute world = act, no media); the clock watches each actor's
world track and signs its join when it appears and its leave when it
ends, with no publish; with e2ee the world is private, every actor a
member of the room's group. relay-lines prints the world door and the
window that keeps the room's world tracks, commented. A world room is not
also a watch room, a room with co-performance or one admitted by age.

The relay maps a grant whose attribute world is act onto PUBLISH of
[R, P, world] (live-worlds 5.2): its own world track and nothing else. A
three-line change in auth.rs, with a unit test.

joule-moq-web's signer can sign objects that are not WAI envelopes
(setEnvelope(false)): a world track's op batches carry no envelope flag.

tests/world_room.rs: two actors publish through a relay that holds world
tracks to their owners' keys, the clock records them, a late actor
fetches both tracks from group 0 and its copy, every receipt and op
checked by wai-rs, holds the actors' session hash; a viewer publishes no
world track, an actor no other's and no media; the door drops a group
receipted by another key; a departed actor's track is still fetched; and
a private world room keys its actors.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
worldStatement checks a room's world statement against its descriptor;
worldAction signs an action of wai.world.model; World is a participant's
copy of the world (wai-rs live_world), to which a page offers each object
its transport client verified against its receipt: each op's signature,
owner, kind, Lamport rule and equivocation, the session hash, the merged
log and a private world's carry. A host test runs the corpus's accepted
world through the page's path.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
web/world/world.js is a participant in a room's shared world (WAI
live-worlds): it checks the room's world statement, takes an actor's grant
for a key it makes, publishes its world track (op batches, each group
signed into its receipt chain under receipt alias 4, no envelope flag),
follows the clock's lifecycle, subscribes to every actor's world track and
in a public world fetches each from group 0, verifies every object against
its receipt with the relay door's verifier, and offers it in group order
to wai-live-web's World. In a private world it is a member of the room's
group: it seals before it signs, opens before it offers, and carries what
it holds into each epoch it reaches. web/world/index.html is its page.

room.e2e.mjs gains the world and privateworld scenarios: two pages
converge through the relay, a late page catches up, a viewer acts in
nothing, the relay refuses what a grant does not allow, the door drops a
group receipted by another key, a departed actor's track is still fetched;
and in a private world, carries bring later members the world, a page
outside the group opens nothing, and a member removed opens nothing after.

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]>
wai.live.world is registered (codecs/registry.rs, and the export of
REGISTRY.md, registry/capabilities.json and vocab/v2.ttl); SPEC 5 gains its
paragraph and the changelog its entry; live-rooms 4.4, 6.1 and 10.2 and
confidentiality 1 name the world track. wai-conformance.yml runs the
module, its corpus test and live_worlds_verify.py; joule-moq-web.yml reads
the worlds corpus its wai-live-web test uses.

world.js: an actor that has left has no live track, so a page entering
after it fetches the track without a live subscription. The privateworld
scenario lets something be sealed after the viewer enters before it looks.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Five files both sides appended to: wai-conformance.yml (main's QoE
aggregation, exact tone mapping and exact splats steps kept whole, then the
live worlds step), the changelog (this entry on top), the corpus index,
the registry tables and lib.rs.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
live_world corpus: a group receipt's new hybrid half, none
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, advisories, 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
6745bf6cdb
Co-Authored-By: Claude Opus 5.5 <[email protected]>
dcharlot closed this pull request 2026-10-26 20:59:19 -04:00
Some checks failed
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
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-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-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-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, advisories, 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

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