All checks were successful
joule-moq-remote host agent / joule-moq-remote · does this change touch it (pull_request) Successful in 9s
joule-moq-room room service / joule-moq-room · does this change touch it (pull_request) Successful in 10s
joule-moq-web browser client / joule-moq-web · does this change touch it (pull_request) Successful in 9s
standards workspaces build + test / which workspaces this change touches (pull_request) Successful in 9s
wai-app and Create / wai-app · does this change touch it (pull_request) Successful in 6s
wai-audit collector and player integration / does this change touch it (pull_request) Successful in 7s
WAI breaking changes and the conformance runner / WAI breaking · does this change touch WAI (pull_request) Successful in 8s
WAI energy receipts / does this change touch it (pull_request) Successful in 6s
WAI examples / WAI examples · does this change touch them (pull_request) Successful in 6s
wai-fleet service / does this change touch it (pull_request) Successful in 6s
WAI operation catalogue / does this change touch it (pull_request) Successful in 13s
WAI conformance / does this change touch it (pull_request) Successful in 13s
wai-key-proxy / does this change touch it (pull_request) Successful in 6s
wai-ledger service / does this change touch it (pull_request) Successful in 6s
WAI neural sink gates / does this change touch it (pull_request) Successful in 5s
wai-quantum studio and desktop / does this change touch it (pull_request) Successful in 7s
wai-sink-android native sink library / does this change touch it (pull_request) Successful in 6s
wai-quantum for JavaScript / does this change touch it (pull_request) Successful in 9s
wai-sink-swift native sink package / does this change touch it (pull_request) Successful in 7s
wai-ops-gpu integer operators on GPUs / does this change touch it (pull_request) Successful in 14s
wai-pack / wai-pack · does this change touch it (pull_request) Successful in 15s
WAI Studio / does this change touch it (pull_request) Successful in 6s
wai-web reach builds / wai-web reach · does this change touch it (pull_request) Successful in 7s
wai-web wasm32 / does this change touch it (pull_request) Successful in 13s
WAI conformance / fast integer kernels, every x86_64 kernel set (AVX-512 silicon) (pull_request) Successful in 3m27s
wai-app and Create / wai-app · tests, clippy, the line language's verifier (linux) (pull_request) Successful in 33s
wai-audit collector and player integration / collector · linux (pull_request) Successful in 1m8s
WAI breaking changes and the conformance runner / WAI breaking · wire, record and API against main · linux (pull_request) Successful in 2m56s
WAI conformance / cross-arch byte-equality · linux (pull_request) Successful in 33s
WAI breaking changes and the conformance runner / WAI breaking and conform · their tests, and the independent verifiers through wai conform · linux (pull_request) Successful in 3m29s
wai-fleet service / service · linux (pull_request) Successful in 2m40s
wai-key-proxy / proxy · linux (pull_request) Successful in 1m5s
WAI conformance / quantum core and corpus under wasm32-wasip2 (wasmtime) (pull_request) Successful in 3m17s
WAI neural sink gates / model-free refusals of the neural sink (pull_request) Successful in 1m50s
wai-quantum studio and desktop / desktop app · windows (pull_request) Successful in 9m14s
wai-ledger service / service · linux (pull_request) Successful in 2m4s
WAI operation catalogue / the catalogue and every door · linux (pull_request) Successful in 5m10s
WAI conformance / faces from keypoints under wasm32-wasip2 (wasmtime) (pull_request) Successful in 3m51s
WAI neural sink gates / the exact JPEG-AI decoder reports its path (pinned inputs, required) (pull_request) Successful in 2m38s
wai-pack / wai-pack · linux (pull_request) Successful in 1m47s
wai-quantum studio and desktop / studio · browser (pull_request) Successful in 3m57s
wai-quantum for JavaScript / javascript · linux (pull_request) Successful in 2m57s
WAI Studio / the catalogue's actions, the unit tests and the core · linux (pull_request) Successful in 2m31s
WAI examples / WAI examples · portable · linux (pull_request) Successful in 8m25s
wai-ops-gpu integer operators on GPUs / builds · no adapter is not a pass (linux) (pull_request) Successful in 3m32s
wai-web reach builds / wai-web reach builds · the package of record, every output as recorded (pull_request) Successful in 2m36s
wai-quantum studio and desktop / desktop app · linux (pull_request) Successful in 5m39s
wai-web reach builds / wai-web reach builds · this tree's wai-web, every rung on its engine line (pull_request) Successful in 4m29s
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Successful in 5m56s
WAI Studio / Studio in WebKit · linux (pull_request) Successful in 11m58s
WAI energy receipts / energy receipts · linux (pull_request) Successful in 30m34s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 38m39s
joule-moq-remote host agent / joule-moq-remote, every target (macos) (pull_request) Successful in 1m5s
wai-audit collector and player integration / collector, player integration and the browser end to end · macos (pull_request) Successful in 1m47s
standards workspaces build + test / macOS energy backends (pull_request) Successful in 10m35s
wai-fleet service / service · macos (pull_request) Successful in 42s
wai-app and Create / wai-app · Create, browser end-to-end (macos) (pull_request) Successful in 10m37s
WAI conformance / cross-arch byte-equality · macos (pull_request) Successful in 55s
wai-ledger service / service · macos (pull_request) Successful in 1m10s
WAI conformance / codec wrappers · fuzz smoke, text decode limits, C entry points, provenance, the semantic path (pull_request) Successful in 2m1s
joule-moq-web browser client / joule-moq-web · browser end-to-end (macos) (pull_request) Successful in 16m26s
WAI energy receipts / energy receipts · macos (pull_request) Successful in 12m18s
wai-quantum studio and desktop / desktop app · macos (pull_request) Successful in 6m34s
wai-pack / wai-pack · macos (pull_request) Successful in 2m57s
wai-sink-android native sink library / every ABI, the AAR, and the instrumented tests in a headless emulator · macos (pull_request) Successful in 7m29s
WAI examples / WAI examples · the archive, the readiness check, the browser and Apple · macos (pull_request) Successful in 14m38s
wai-ops-gpu integer operators on GPUs / Metal GPU and browser WebGPU (macos) (pull_request) Successful in 11m1s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 15m43s
wai-sink-swift native sink package / libwai slices, desktop tests, simulator tests · macos (pull_request) Successful in 15m44s
WAI Studio / Studio in Chromium and Firefox · macos (pull_request) Successful in 12m18s
repository checks / lockfiles, advisories, tests in CI, workflow hygiene, spec and section references, public text (pull_request) Successful in 1m24s
joule-moq-remote host agent / joule-moq-remote, every target (linux-arm64) (pull_request) Successful in 1m11s
joule-moq-room room service / joule-moq-room, every target (pull_request) Successful in 3m35s
standards workspaces build + test / joule-code-rs (joule-code/joule-code-rs, joule-code-rs, linux-arm64, true) (pull_request) Successful in 6m14s
WAI examples / WAI examples · android-app · linux-arm64 (pull_request) Successful in 5m41s
WAI conformance / v2 vocabulary · manifests validate as stated (pull_request) Successful in 44s
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 12m22s
WAI conformance / delivery telemetry · CMCD and CMSD against an independent library (pull_request) Successful in 16s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 32s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 2m3s
wai-sink-android native sink library / the JNI layer and the platform-free half on the host JVM · linux-arm64 (pull_request) Successful in 2m38s
wai-pack / wai-pack · linux-arm64 (pull_request) Successful in 1m53s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 17m20s
wai-pack / wai-pack · the floor through a media prober (pull_request) Successful in 25s
wai-pack / wai-pack · dependency licences (pull_request) Successful in 15s
wai-pack / wai-pack · independent verifier (Python) (pull_request) Successful in 6m59s
WAI conformance / each feature of the independent verifiers' steps compiles alone (pull_request) Successful in 18m2s
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Successful in 1h12m0s
The change of wai/prior-carriage-spec (98192fe63..26834bb4c, 6 commits), on the fix branch: its changelog entries as files of wai/changes/, its wai-conformance.yml edits as step files, corpus files and test tags, and every other file as the branch has it. - e5db9b313 wai: where a parameter set is fetched — set roots, location hints, and <base> defined - 29fe43ea2 wai: a parameter set as an RFC 9842 compression dictionary, with a vector a stock client checks - faaeb6c73 wai: when a parameter set is worth holding — amortisation charged per sink, bootstrap and generations - 9a820db4a wai: a parameter set's usage statement, sealed sets released by key, leakage, and the privacy of held sets - 89a9f9924 wai: the chunk-tree prior form, wai.prior.tree — a set verified piece by piece from any peers - 26834bb4c wai: one playlist line of set roots, inner forms as the layouts list them, and a listing's usage statement read or the set refused Co-Authored-By: Claude Opus 5.5 <[email protected]>
92 lines
6.9 KiB
Markdown
92 lines
6.9 KiB
Markdown
# live-conformance/prior-carriage — where a parameter set is fetched, how it is delivered, when it is worth holding, who may read it, and how it verifies by range
|
|
|
|
The corpus of [`extensions/prior-carriage.md`](../../extensions/prior-carriage.md) §15 to §19
|
|
and [`extensions/http-delivery.md`](../../extensions/http-delivery.md) §8.7, §8.8 and §12.5:
|
|
`vectors.json` and the files under `files/`.
|
|
|
|
**Provenance.** The parameter sets are files other corpora commit, named by their paths from
|
|
this directory and pinned by their SHA-256: the trained `WSR1` priors `generic` and `title` in
|
|
the safetensors form of [`../prior-forms/`](../prior-forms/) (`title` was fine-tuned from
|
|
`generic`, `seeded` is a seeded prior of the same shape), and the listing `demo` of
|
|
[`../../pin-conformance/`](../../pin-conformance/) with the three stand-in files it names. The
|
|
hosts are `.example` names (RFC 2606); nothing here was fetched from a server.
|
|
|
|
`vectors.json` holds:
|
|
|
|
- `sets`: each set the cases read, with its path, SHA-256 and length.
|
|
- `roots`: strings, and whether each is a set root (§8.7: an absolute `https` URI with a host,
|
|
no userinfo, query or fragment, whose path ends in `/`, at most 2048 bytes).
|
|
- `hints`: a `wai_priors` entry (moq-streaming-format §4.2) or a WAI multivariant playlist, and
|
|
the hint read from it: the roots kept, in order, and the positions passed over as
|
|
`set_location_malformed` (in a playlist, among the elements of the hint line's `VALUE` split
|
|
at every space). Some playlists also carry lines a reader ignores: a second line of the
|
|
hint's `DATA-ID`, one with `LANGUAGE`, and one whose attribute list does not read.
|
|
- `fetches`: a pin, the `wai_priors` entry that states its hint, the roots of the sink's own
|
|
configuration, the origin, the sink's bound on one response's bytes, and the responses the
|
|
servers give, keyed by URL (a URL with no response is a server that does not answer); and
|
|
the outcome: the roots in the order the sink asks them, each URL asked with what came of it
|
|
(`held` or a reason of §8.7 or §8.8), the result, `held` or the reason SPEC §3.1 refuses the pin
|
|
with (or `set_usage_malformed`, prior-carriage §18.1), and `usage`, the usage statement a held
|
|
listing binds as its file `wai-usage.json` (its licence, terms, the two booleans and the digest
|
|
of its ai-usage statement), `null` where it binds none. A body is a set's bytes (`set`),
|
|
those bytes with one byte's lowest bit flipped (`flip`), a file of `files/` (`file`, with
|
|
`flip` or `truncate`, the first bytes kept), or bytes given in hexadecimal (`hex`). A response is keyed by its URL and the
|
|
`Available-Dictionary` value of the request it answers (`null` for a request that names no
|
|
dictionary); a fetch's `dictionary` is the set the sink holds and names (§8.8).
|
|
- `fields`: `Available-Dictionary` values and the digest each names (`null` where it does not
|
|
read as one), and the `Use-As-Dictionary` value for a root's path.
|
|
- `stock`: the check a stock client makes of §8.8: `files/title-from-generic.dcz` after its
|
|
40-byte header, decoded by the Zstandard tool against `generic`, has `title`'s SHA-256:
|
|
|
|
tail -c +41 files/title-from-generic.dcz | zstd -d -D ../prior-forms/files/generic.safetensors | sha256sum
|
|
|
|
- `plans`: §17's worked plans, each a plan (a span, a cap, the generations in epoch order with
|
|
their sets' bytes and any coding against an earlier one, the titles with their pinned and
|
|
classical bytes, and one or more sinks with what each holds and its fetches per title) and
|
|
the outcome worked by hand: per sink, each generation's saving, cost (`held`, `delta` or
|
|
`set`) and net, the generations kept, fetched and evicted, each title's rendition, and the
|
|
bytes received beside the bytes with no set; or `plan_malformed`. The sizes are worked
|
|
numbers, not measurements.
|
|
|
|
- `usage`: §18.1's usage statements as JSON text, and what reading each gives (its licence,
|
|
terms, the two booleans and the digest of its ai-usage statement) or `set_usage_malformed`.
|
|
- `sealed`: §18.2's sealed sets (`files/title.wsk1`, `files/generic.wsk1`, or a header written
|
|
in hexadecimal), the keys the sink holds by their identifiers, and what opening gives (the
|
|
inner form, the plaintext's digest and the usage statement) or the reason. The corpus's key
|
|
(16 bytes of `0x6b`, identifier 16 bytes of `0x4b`, counter block 16 bytes of `0x69`) is
|
|
published here and protects nothing.
|
|
- `held_sets`: http-delivery §12.5's `held_sets` from a store of sets held per site, the site
|
|
it is sent to, the pins the site's content carries, and whether it is turned on; and
|
|
`dictionary_naming`, whether a sink may name a held set in `Available-Dictionary` for a site.
|
|
|
|
- `tree_heads`: §19's heads (`files/generic.wtr1` in pieces of one chunk, `files/generic-g1.wtr1`
|
|
in pieces of two, `files/title-sealed.wtr1` over `files/title.wsk1`, or a head written in
|
|
hexadecimal) and what reading each gives (the inner form, the set's length, the piece exponent,
|
|
the number of pieces, the set's SHA-256 and its BLAKE3 hash) or the reason.
|
|
- `tree_fetches`: a head, sources (each named, with the bytes it serves, whether it answers, and
|
|
any content coding), and the outcome of fetching every piece by range: each piece asked of
|
|
which source with what came of it, piece `i` first from source `i mod m` and then from the
|
|
sources after it; then `held` and the set's SHA-256, or the reason.
|
|
|
|
`files/title-from-generic.dcz` is `title` coded against `generic` by the Zstandard library at
|
|
level 19, its content size and checksum stated, under the `dcz` header naming `generic`.
|
|
`files/title-window-16m.dcz` holds `title` in one raw block of a frame that states a 16 MB
|
|
window and no content size, under the same header: a frame RFC 9842 has no client decode
|
|
against a dictionary of `generic`'s size.
|
|
|
|
A verifier conforms when it reaches every case's outcome, field for field.
|
|
|
|
**Verifiers.**
|
|
|
|
- `wai_prior_carriage_vectors verify live-conformance/prior-carriage` (wai-rs, feature
|
|
`prior_carriage`): every file regenerates byte for byte, no other file is here, and the
|
|
module reaches every outcome. `wai_prior_carriage_vectors gen` writes the corpus.
|
|
- `python3 -I live-conformance/prior_carriage_verify.py live-conformance/prior-carriage`,
|
|
written from the texts and sharing no code with wai-rs. It decodes Zstandard with
|
|
`_rfc8878_zstd.py`, written from RFC 8878 beside it, hashes with the shared
|
|
`../../claim-conformance/_blake3.py`, written from the BLAKE3 specification, opens sealed sets with
|
|
`_fips197_aes.py`, written from FIPS 197 and NIST SP 800-38A, reads ai-usage statements with
|
|
the ai-usage corpus's second implementation (`ai_usage_verify.py`), and, where the Zstandard tool is on the
|
|
PATH, runs the `stock` check with that tool too. It also mutates copies of the
|
|
corpus, one defect each, and requires every copy to fail, and drops each of its own checks
|
|
in turn and requires the corpus to catch the weakened verifier.
|