wai/ietf: draft-charlot-moq-wai-packaging-00 (review only, not submitted) + wai_priors #383

Merged
dcharlot merged 6 commits from wai/ietf-draft into main 2026-10-21 14:13:11 -04:00
Owner

For review only. Not for submission. This PR adds the source and text rendering of an Internet-Draft, draft-charlot-moq-wai-packaging-00, WAI Packaging for the MOQT Streaming Format. Nothing has been submitted to the IETF and nothing has been posted to any list; both are the owner's decision. The comment for the NMSF authors is in the tree and has not been sent.

What is in it

  1. wai/ietf/draft-charlot-moq-wai-packaging-00.xml (xml2rfc v3) and .txt (rendered, 36 pages). Informational, Media Over QUIC. Contents:

    • the MSF packaging values wai (one whole WAI1 envelope per object) and wai-receipts;
    • the envelope, dispatch with fallback, the parameter-set pin by SHA-256 (with the wai.prior.set listing and the refusal order), and the determinism tiers (entropy-consistency, decode-equivalence, none);
    • catalog fields wai_capabilities, wai_determinism, wai_priors (new, below), wai_receipts, wai_receipt_alias, wai_receipts_track and wai_staged, with the six-step stage-set check;
    • receipts restated for the binary carriage: content hash, Merkle leaves v1/v2, the energy-class encoding, legacy and labelled group payloads, link hash, WJR1, the receipts track and moqt_mismatch, and verification steps 1–6 with inclusion-verified, the group total, holding and anchoring;
    • the WAI_RECEIPT object property, with its value layout;
    • the codecs parameter, Implementation Status (RFC 7942), Security Considerations (receipt keys, replay, relay transparency, catalog integrity, parameter sets, resource consumption, privacy) and IANA Considerations;
    • appendices: a catalog example, a table of refusal reasons, and the correspondence with the WAI texts.
  2. wai/ietf/nmsf-comment.md: a short, factual comment on draft-herz-moq-nmsf-01. It proposes an OPTIONAL modelDigest (SHA-256 of the weights) and an entropyDeterminism field (integer-exact | unchecked), explains what each lets a subscriber check, and points to WAI SPEC §3.1, determinism-tiers §2–§3 and moq-streaming-format §4.2. Not sent.

  3. moq-streaming-format §4.2, wai_priors. This is an OPTIONAL track member listing the pins the track's objects carry: capability, sha256, form, and an advisory tier. With it, a receiver can tell before subscribing whether it holds the weights. The lead approved it on one condition, which the text meets: the catalog never stands in for the envelope. Two reasons are defined:

    • catalog_priors_malformed: the member does not read, and the track is not subscribed to.
    • catalog_prior_mismatch: an object's pin is unlisted or listed differently (capability, digest, form, unpinned, the fallback's set, or an empty list). The object is refused, and the track with it.

    A listed tier is advisory. The tier a receiver claims is the one its own decode earns.

    • wai-rs staged::moq::{CatalogPriors, CatalogPrior, PriorsRefusal}: read, check, check_manifest, with unit tests that include a negative control for each case.
    • staged-conformance/moq/priors.json: 30 generated cases (11 accepted, 8 mismatches, 11 malformed). wai_staged_vectors verify re-checks them, and so does staged_verify.py, which shares no code with wai-rs.
    • The wire-registry entry for wai_priors, and the regenerated registry export.
  4. moq-streaming-format §5: the WAI_RECEIPT value layout, as joule-moq writes it, and its interim type 0x3A41 inside Immutable Properties.

  5. jwp-receipts §3 step 3: the text never stated the link hash's domain separator. It said only "the resulting hash". Both Rust verifiers and jwp_verify.py compute BLAKE3("moq-jwp:receipt-link\x01" ‖ canonical_bytes), and the text now says so. No byte changes.

Design decisions

  • Tier vocabulary. I used WAI's registered tokens, decode-equivalence, entropy-consistency and none. Another list proposed during planning (replicate, entropy-consistency, tolerance) is not WAI's vocabulary.
  • IANA.
    • WAI_RECEIPT is requested from the Specification Required range (0x80–0x37FF) of the "MOQ Properties" registry (MOQT-22 §16.8).
    • 0x3A41 stays in use until a value is assigned. MOQT-22 §8.4 forbids registration in 0x3800–0x3FFF, so no code point can be requested from that range.
    • No IANA action is taken for the packaging values: MSF-01 keeps them in its own text and creates no registry, and CMSF takes none either.
    • application/wai is registered in the standards tree, via the IETF-document route of RFC 6838.
  • Receipt carriage. The draft carries only WAI1 and only the binary receipt form (WJR1). JSON receipts, claims, key discovery, the gap-history algorithm and WAI2 are cited as informative references, so the draft can be implemented from its own text for everything it requires.
  • Public-text rule. The references list no person names; RFCs and drafts are cited by title and identifier. The only names in the draft are those of the author block, which you supplied.
  • No comparison text. The draft does not mention NMSF. The comment file is factual.

Checks (all passed)

check command result
render xml2rfc 3.34.1 --v3 --text --html (build host, own venv) no warnings; 36 pages
idnits @ietf-tools/idnits 3.3.0 on .txt and on .xml 0 errors. 3 warnings, all NORMATIVE_REFERENCE_TO_DRAFT: MOQT-22, MSF-01 and BLAKE3, which have no RFC. All other warnings were fixed: wide artwork, bare BCP 14 keywords, bracket notation read as references
lib tests cargo test --locked --no-default-features --features staged --lib staged::moq 9 passed
registry tests … --lib codecs::registry (after the jwp-receipts edit) 14 passed
MoQ trace cargo test --no-default-features --features staged,video_int,receipt_claims --test staged_moq 1 passed
corpus wai_staged_vectors gen, then verify ../staged-conformance staged-conformance: OK
independent verifier python3 -I staged-conformance/staged_verify.py staged-conformance 0 failures
registry wai registry export --check up to date
clippy cargo clippy --no-default-features --features video_int,audio_int,splat_int,staged --all-targets no notes in the touched files; the crate's existing notes are unchanged
dependent cargo build --locked in wai/wai-pack ok
verifiers that read jwp-receipts claim_verify.py, jwp_verify.py, signer_verify.py on their vectors.json 567, 164 and 161 vectors, 0 failures
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 (also on the two new text files), check-orphan-sources.py all 0

check-public-names.sh needs the private denylist, which CI supplies. I could not run it locally.

Falsifications (run after committing; every mutation was restored)

mutation Rust: lib tests / corpus verify Python: staged_verify.py
rule 2 removed (an unpinned object, or a fallback listed with another set) 1 test failed; verify failed on mismatch_unpinned and mismatch_fallback failed on the same 2 cases
form not compared 2 tests failed; verify failed on mismatch_form and mismatch_form_dropped n/a
entry capability not checked against wai_capabilities 1 test failed; verify failed on malformed_undeclared and malformed_no_capabilities failed on the same 2 cases
mismatch_form changed to expect acceptance in priors.json verify reports the file differs from its regeneration fails on that case

Each MUST against the reference implementation

Implemented:

  • the envelope reader and its limits, dispatch with fallback, pin verification and reading only from the verified set, and the replicate and tier rules (wai-rs container, pin, codecs, neural);
  • the packaging and catalog writers (wai-rs SetTrack, wai-pack, joule-moq-ingest, joule-moq-web);
  • the six-step stage-set check, priorities, the live one-object-per-group rule, delivery-timeout bounds and capping (wai-rs staged::moq, joule-moq mock relay);
  • the undeclared capability refused at dispatch (joule-moq-web app.js);
  • the receipts track and WJR1, moqt_mismatch (joule-moq-web, joule-moq-relay door), verification steps 1–6, inclusion-verified, the group total, the holding bound and anchoring (wai-rs jwp_delivery, joule-moq receipt);
  • the WAI_RECEIPT layout and rules inside Immutable Properties (joule-moq carriage);
  • publisher keys from OsRng;
  • wai_priors reading and checking (wai-rs, as a library).

Not yet implemented, or only partly:

  1. No publisher writes wai_priors. The rules "list every pin" and "no tier above the class" therefore hold only because the member is never written.
  2. No running receiver calls CatalogPriors::check. The browser receiver dispatches no capability that decodes against a parameter set.
  3. Alias and receipts-track uniqueness is checked catalog-wide, but only inside the stage-set check: a catalog with no stage set is not checked.
  4. Policy-only rules. "Do not claim a tier for an altered medium", "do not present a receipt as the publisher's without a trusted key" and "one key per identity" are behavioural rules with no code path to test.
  5. wai_determinism is written (wai-pack) but read by no receiver.

Open questions for the owner (before any submission)

  1. Author email: the draft has the placeholder "TBD (owner confirms at submission)".
  2. Intended status: the draft says Informational, as MSF, CMSF and NMSF do.
  3. application/wai in the standards tree through an IETF RFC makes the IETF the registration's change controller. The alternatives are the community-format route of draft-ietf-mediaman-6838bis-10, which needs evidence of adoption, or a vendor-tree name.
  4. The [WAI] references point at main on the forge. Before submission, pin them to a tag or commit.
  5. BLAKE3 is cited normatively as the expired draft-aumasson-blake3-00. The alternative is the BLAKE3 specification paper.
  6. BCP 79: the owner must check for any patent disclosure obligations before submitting.
  7. joule-moq's crate doc says the receipt extension will be submitted as draft-charlot-moq-jwp-extensions. This draft already carries the receipts, so decide whether that separate draft is still needed.
  8. The NMSF comment: whether to send it, and when relative to submission.

🤖 Generated with Claude Code

**For review only. Not for submission.** This PR adds the source and text rendering of an Internet-Draft, `draft-charlot-moq-wai-packaging-00`, *WAI Packaging for the MOQT Streaming Format*. Nothing has been submitted to the IETF and nothing has been posted to any list; both are the owner's decision. The comment for the NMSF authors is in the tree and has not been sent. ## What is in it 1. **`wai/ietf/draft-charlot-moq-wai-packaging-00.xml`** (xml2rfc v3) and **`.txt`** (rendered, 36 pages). Informational, Media Over QUIC. Contents: - the MSF packaging values `wai` (one whole `WAI1` envelope per object) and `wai-receipts`; - the envelope, dispatch with fallback, the parameter-set pin by SHA-256 (with the `wai.prior.set` listing and the refusal order), and the determinism tiers (`entropy-consistency`, `decode-equivalence`, `none`); - catalog fields `wai_capabilities`, `wai_determinism`, `wai_priors` (new, below), `wai_receipts`, `wai_receipt_alias`, `wai_receipts_track` and `wai_staged`, with the six-step stage-set check; - receipts restated for the binary carriage: content hash, Merkle leaves v1/v2, the energy-class encoding, legacy and labelled group payloads, link hash, `WJR1`, the receipts track and `moqt_mismatch`, and verification steps 1–6 with inclusion-verified, the group total, holding and anchoring; - the `WAI_RECEIPT` object property, with its value layout; - the `codecs` parameter, Implementation Status (RFC 7942), Security Considerations (receipt keys, replay, relay transparency, catalog integrity, parameter sets, resource consumption, privacy) and IANA Considerations; - appendices: a catalog example, a table of refusal reasons, and the correspondence with the WAI texts. 2. **`wai/ietf/nmsf-comment.md`**: a short, factual comment on `draft-herz-moq-nmsf-01`. It proposes an OPTIONAL `modelDigest` (SHA-256 of the weights) and an `entropyDeterminism` field (`integer-exact` | `unchecked`), explains what each lets a subscriber check, and points to WAI SPEC §3.1, determinism-tiers §2–§3 and moq-streaming-format §4.2. **Not sent.** 3. **`moq-streaming-format` §4.2, `wai_priors`.** This is an OPTIONAL track member listing the pins the track's objects carry: capability, sha256, form, and an advisory tier. With it, a receiver can tell before subscribing whether it holds the weights. The lead approved it on one condition, which the text meets: the catalog never stands in for the envelope. Two reasons are defined: - `catalog_priors_malformed`: the member does not read, and the track is not subscribed to. - `catalog_prior_mismatch`: an object's pin is unlisted or listed differently (capability, digest, form, unpinned, the fallback's set, or an empty list). The object is refused, and the track with it. A listed tier is advisory. The tier a receiver claims is the one its own decode earns. - `wai-rs` `staged::moq::{CatalogPriors, CatalogPrior, PriorsRefusal}`: `read`, `check`, `check_manifest`, with unit tests that include a negative control for each case. - `staged-conformance/moq/priors.json`: 30 generated cases (11 accepted, 8 mismatches, 11 malformed). `wai_staged_vectors verify` re-checks them, and so does `staged_verify.py`, which shares no code with wai-rs. - The wire-registry entry for `wai_priors`, and the regenerated registry export. 4. **`moq-streaming-format` §5**: the `WAI_RECEIPT` value layout, as joule-moq writes it, and its interim type `0x3A41` inside Immutable Properties. 5. **`jwp-receipts` §3 step 3**: the text never stated the link hash's domain separator. It said only "the resulting hash". Both Rust verifiers and `jwp_verify.py` compute `BLAKE3("moq-jwp:receipt-link\x01" ‖ canonical_bytes)`, and the text now says so. No byte changes. ## Design decisions - **Tier vocabulary.** I used WAI's registered tokens, `decode-equivalence`, `entropy-consistency` and `none`. Another list proposed during planning (`replicate`, `entropy-consistency`, `tolerance`) is not WAI's vocabulary. - **IANA.** - `WAI_RECEIPT` is requested from the Specification Required range (0x80–0x37FF) of the "MOQ Properties" registry (MOQT-22 §16.8). - `0x3A41` stays in use until a value is assigned. MOQT-22 §8.4 forbids registration in 0x3800–0x3FFF, so no code point can be requested from that range. - No IANA action is taken for the packaging values: MSF-01 keeps them in its own text and creates no registry, and CMSF takes none either. - `application/wai` is registered in the standards tree, via the IETF-document route of RFC 6838. - **Receipt carriage.** The draft carries only `WAI1` and only the binary receipt form (`WJR1`). JSON receipts, claims, key discovery, the gap-history algorithm and `WAI2` are cited as informative references, so the draft can be implemented from its own text for everything it requires. - **Public-text rule.** The references list no person names; RFCs and drafts are cited by title and identifier. The only names in the draft are those of the author block, which you supplied. - **No comparison text.** The draft does not mention NMSF. The comment file is factual. ## Checks (all passed) | check | command | result | |---|---|---| | render | `xml2rfc 3.34.1 --v3 --text --html` (build host, own venv) | no warnings; 36 pages | | idnits | `@ietf-tools/idnits 3.3.0` on `.txt` and on `.xml` | 0 errors. 3 warnings, all `NORMATIVE_REFERENCE_TO_DRAFT`: MOQT-22, MSF-01 and BLAKE3, which have no RFC. All other warnings were fixed: wide artwork, bare BCP 14 keywords, bracket notation read as references | | lib tests | `cargo test --locked --no-default-features --features staged --lib staged::moq` | 9 passed | | registry tests | `… --lib codecs::registry` (after the jwp-receipts edit) | 14 passed | | MoQ trace | `cargo test --no-default-features --features staged,video_int,receipt_claims --test staged_moq` | 1 passed | | corpus | `wai_staged_vectors gen`, then `verify ../staged-conformance` | `staged-conformance: OK` | | independent verifier | `python3 -I staged-conformance/staged_verify.py staged-conformance` | 0 failures | | registry | `wai registry export --check` | up to date | | clippy | `cargo clippy --no-default-features --features video_int,audio_int,splat_int,staged --all-targets` | no notes in the touched files; the crate's existing notes are unchanged | | dependent | `cargo build --locked` in `wai/wai-pack` | ok | | verifiers that read jwp-receipts | `claim_verify.py`, `jwp_verify.py`, `signer_verify.py` on their `vectors.json` | 567, 164 and 161 vectors, 0 failures | | 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` (also on the two new text files), `check-orphan-sources.py` | all 0 | `check-public-names.sh` needs the private denylist, which CI supplies. I could not run it locally. ## Falsifications (run after committing; every mutation was restored) | mutation | Rust: lib tests / corpus verify | Python: `staged_verify.py` | |---|---|---| | rule 2 removed (an unpinned object, or a fallback listed with another set) | 1 test failed; verify failed on `mismatch_unpinned` and `mismatch_fallback` | failed on the same 2 cases | | `form` not compared | 2 tests failed; verify failed on `mismatch_form` and `mismatch_form_dropped` | n/a | | entry capability not checked against `wai_capabilities` | 1 test failed; verify failed on `malformed_undeclared` and `malformed_no_capabilities` | failed on the same 2 cases | | `mismatch_form` changed to expect acceptance in `priors.json` | verify reports the file differs from its regeneration | fails on that case | ## Each MUST against the reference implementation Implemented: - the envelope reader and its limits, dispatch with fallback, pin verification and reading only from the verified set, and the `replicate` and tier rules (wai-rs `container`, `pin`, `codecs`, `neural`); - the packaging and catalog writers (wai-rs `SetTrack`, wai-pack, joule-moq-ingest, joule-moq-web); - the six-step stage-set check, priorities, the live one-object-per-group rule, delivery-timeout bounds and capping (wai-rs `staged::moq`, joule-moq mock relay); - the undeclared capability refused at dispatch (joule-moq-web `app.js`); - the receipts track and `WJR1`, `moqt_mismatch` (joule-moq-web, joule-moq-relay door), verification steps 1–6, inclusion-verified, the group total, the holding bound and anchoring (wai-rs `jwp_delivery`, joule-moq `receipt`); - the `WAI_RECEIPT` layout and rules inside Immutable Properties (joule-moq `carriage`); - publisher keys from `OsRng`; - `wai_priors` reading and checking (wai-rs, as a library). Not yet implemented, or only partly: 1. **No publisher writes `wai_priors`.** The rules "list every pin" and "no tier above the class" therefore hold only because the member is never written. 2. **No running receiver calls `CatalogPriors::check`.** The browser receiver dispatches no capability that decodes against a parameter set. 3. **Alias and receipts-track uniqueness** is checked catalog-wide, but only inside the stage-set check: a catalog with no stage set is not checked. 4. **Policy-only rules.** "Do not claim a tier for an altered medium", "do not present a receipt as the publisher's without a trusted key" and "one key per identity" are behavioural rules with no code path to test. 5. **`wai_determinism`** is written (wai-pack) but read by no receiver. ## Open questions for the owner (before any submission) 1. Author email: the draft has the placeholder "TBD (owner confirms at submission)". 2. Intended status: the draft says Informational, as MSF, CMSF and NMSF do. 3. `application/wai` in the standards tree through an IETF RFC makes the IETF the registration's change controller. The alternatives are the community-format route of `draft-ietf-mediaman-6838bis-10`, which needs evidence of adoption, or a vendor-tree name. 4. The `[WAI]` references point at `main` on the forge. Before submission, pin them to a tag or commit. 5. BLAKE3 is cited normatively as the expired `draft-aumasson-blake3-00`. The alternative is the BLAKE3 specification paper. 6. BCP 79: the owner must check for any patent disclosure obligations before submitting. 7. joule-moq's crate doc says the receipt extension will be submitted as `draft-charlot-moq-jwp-extensions`. This draft already carries the receipts, so decide whether that separate draft is still needed. 8. The NMSF comment: whether to send it, and when relative to submission. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
A track of packaging `wai` may list, in its MSF catalog entry, the pins its
objects carry (capability, sha256, form, advisory tier), so a sink can tell
before it subscribes whether it holds the parameter sets the track needs.
The catalog never stands in for the envelope: an object whose pin the
member does not list, or lists differently, is refused with the track
(`catalog_prior_mismatch`); a member that does not read refuses the track
(`catalog_priors_malformed`). A listed tier is advisory.

§5 now states the WAI_RECEIPT property's value layout and its interim
type 0x3A41 from MOQT's application range, as joule-moq writes it.

- wai-rs staged::moq: CatalogPriors::read / check / check_manifest,
  PriorsRefusal, with unit tests for each malformation and each mismatch.
- wai_staged_vectors: moq/priors.json (generated; verify re-checks it).
- staged_verify.py: an independent reading and check of §4.2.
- codecs::registry: the `wai_priors` wire member.

The corpus file and the registry export are regenerated in the next commit.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Generated by `wai_staged_vectors gen` and `wai registry export` on the
build host. 30 cases: members that read, each way an object breaks the
catalog (capability, digest, form either way, unpinned, fallback, empty
list, a second object), and each way the member does not read. Checked
by `wai_staged_vectors verify` and by `staged_verify.py`.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
The text said "the resulting hash" without saying which. Both reference
verifiers (wai-rs jwp_delivery, joule-moq receipt) and jwp_verify.py
compute BLAKE3("moq-jwp:receipt-link\x01" || canonical_bytes(G)); the
text now says so, and §2.4.1's parent_receipt_hash row points to it.
No byte changes.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
wai/ietf: draft-charlot-moq-wai-packaging-00 and a comment on NMSF
Some checks failed
wai-pack / wai-pack · linux (pull_request) Successful in 1m31s
wai-quantum studio and desktop / studio · browser (pull_request) Successful in 2m36s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 19m4s
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Successful in 4m3s
joule-moq-room room service / joule-moq-room, every target (pull_request) Successful in 1m58s
wai cross-architecture byte-equality / linux-aarch64 (pull_request) Successful in 40s
joule-moq-web browser client / joule-moq-web · browser end-to-end (macos) (pull_request) Successful in 9m28s
WAI conformance / v2 vocabulary · manifests validate as stated (pull_request) Successful in 51s
standards workspaces build + test / joule-code-rs (joule-code/joule-code-rs, joule-code-rs, linux-arm64, true) (pull_request) Failing after 4m46s
WAI conformance / delivery telemetry · CMCD and CMSD against an independent library (pull_request) Successful in 23s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 50s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 2m22s
standards workspaces build + test / macOS energy backends (pull_request) Successful in 8m59s
wai cross-architecture byte-equality / macos-arm64 (reference) (pull_request) Successful in 25s
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 9m22s
WAI HTTP delivery / HTTP corpus · every patch and mutation in exactly one shard (pull_request) Successful in 8s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 19m25s
WAI HTTP delivery / HTTP corpus · verified both ways, and the differential (pull_request) Successful in 3m48s
wai-pack / wai-pack · linux-arm64 (pull_request) Successful in 2m22s
WAI HTTP delivery / cache rules · controls and labelled caches (pull_request) Successful in 3m9s
wai-pack / wai-pack · the floor through a media prober (pull_request) Successful in 36s
wai-pack / wai-pack · dependency licences (pull_request) Successful in 1m13s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 16m51s
wai-pack / wai-pack · independent verifier (Python) (pull_request) Successful in 4m45s
WAI conformance / cross-arch byte-equality · macos (pull_request) Successful in 1m9s
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Successful in 27m13s
WAI conformance / codec wrappers · fuzz smoke, text decode limits, C entry points, provenance, the semantic path (pull_request) Successful in 50s
WAI energy receipts / energy receipts · macos (pull_request) Successful in 4m43s
wai-pack / wai-pack · macos (pull_request) Successful in 1m7s
wai-quantum studio and desktop / desktop app · macos (pull_request) Successful in 2m4s
0e56b96963
The Internet-Draft (xml2rfc v3 source and its text rendering) for WAI as
an MSF packaging: the "wai" and "wai-receipts" packaging values; the
envelope, dispatch with fallback, the parameter-set pin by SHA-256 and the
determinism tiers; catalog fields wai_capabilities, wai_determinism,
wai_priors, the receipts fields and wai_staged; the receipts track (WJR1),
its verification and the WAI_RECEIPT object property; the codecs
parameter; security and IANA considerations (WAI_RECEIPT requested from
the Specification Required range, 0x3A41 meanwhile; no action for the
packaging values; application/wai registered). 36 pages; idnits 3.3.0
reports only the three normative references to Internet-Drafts.

Not submitted, and the NMSF comment is not sent: both are the owner's
decision. Author email is a placeholder until the owner confirms it.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Merge origin/main into wai/ietf-draft
Some checks failed
wai cross-architecture byte-equality / linux-aarch64 (pull_request) Has been cancelled
wai cross-architecture byte-equality / macos-arm64 (reference) (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 / v2 vocabulary · manifests validate as stated (pull_request) Has been cancelled
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Has been cancelled
WAI conformance / delivery telemetry · CMCD and CMSD against an independent library (pull_request) Has been cancelled
WAI conformance / cross-arch byte-equality · linux (pull_request) Has been cancelled
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Has been cancelled
WAI conformance / cross-arch byte-equality · macos (pull_request) Has been cancelled
WAI conformance / codec wrappers · fuzz smoke, text decode limits, C entry points, provenance, the semantic path (pull_request) Has been cancelled
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Has been cancelled
WAI 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 HTTP delivery / HTTP corpus · every patch and mutation in exactly one shard (pull_request) Has been cancelled
WAI HTTP delivery / HTTP corpus · verified both ways, and the differential (pull_request) Has been cancelled
WAI HTTP delivery / cache rules · controls and labelled caches (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · linux (pull_request) Has been cancelled
wai-pack / wai-pack · linux (pull_request) Has been cancelled
wai-pack / wai-pack · linux-arm64 (pull_request) Has been cancelled
wai-pack / wai-pack · macos (pull_request) Has been cancelled
wai-pack / wai-pack · independent verifier (Python) (pull_request) Has been cancelled
wai-pack / wai-pack · the floor through a media prober (pull_request) Has been cancelled
wai-pack / wai-pack · dependency licences (pull_request) Has been cancelled
wai-quantum studio and desktop / studio · browser (pull_request) Has been cancelled
wai-quantum studio and desktop / desktop app · macos (pull_request) Has been cancelled
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Has been cancelled
WAI conformance / quantum core and corpus under wasm32-wasip2 (wasmtime) (pull_request) Has been cancelled
jouleclaw fabrics / metal (macOS, Apple GPU) (pull_request) Successful in 54s
6b6625baa7
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Merge origin/main into wai/ietf-draft (synthesis, AI usage)
All checks were successful
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 25s
wai-web reach builds / wai-web reach builds · this tree's wai-web, every rung on its engine line (pull_request) Successful in 4m54s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 1m26s
WAI conformance / quantum core and corpus under wasm32-wasip2 (wasmtime) (pull_request) Successful in 1m59s
WAI conformance / cross-arch byte-equality · linux (pull_request) Successful in 26s
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 7m42s
WAI HTTP delivery / HTTP corpus · every patch and mutation in exactly one shard (pull_request) Successful in 4s
WAI HTTP delivery / HTTP corpus · verified both ways, and the differential (pull_request) Successful in 3m5s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 16m37s
WAI energy receipts / energy receipts · linux (pull_request) Successful in 10m8s
WAI HTTP delivery / cache rules · controls and labelled caches (pull_request) Successful in 1m22s
wai-pack / wai-pack · linux-arm64 (pull_request) Successful in 1m31s
wai-pack / wai-pack · linux (pull_request) Successful in 1m23s
wai-pack / wai-pack · the floor through a media prober (pull_request) Successful in 53s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 18m40s
wai-pack / wai-pack · dependency licences (pull_request) Successful in 1m17s
wai-quantum studio and desktop / studio · browser (pull_request) Successful in 3m3s
wai-pack / wai-pack · independent verifier (Python) (pull_request) Successful in 4m7s
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Successful in 3m40s
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Successful in 26m46s
joule-moq-web browser client / joule-moq-web · browser end-to-end (macos) (pull_request) Successful in 8m31s
standards workspaces build + test / macOS energy backends (pull_request) Successful in 18m38s
wai cross-architecture byte-equality / macos-arm64 (reference) (pull_request) Successful in 39s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 26m20s
WAI conformance / cross-arch byte-equality · macos (pull_request) Successful in 28s
WAI conformance / codec wrappers · fuzz smoke, text decode limits, C entry points, provenance, the semantic path (pull_request) Successful in 53s
WAI energy receipts / energy receipts · macos (pull_request) Successful in 5m33s
wai-pack / wai-pack · macos (pull_request) Successful in 1m16s
wai-quantum studio and desktop / desktop app · macos (pull_request) Successful in 2m28s
c316f0dca6
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!383
No description provided.