wai.edge.derivation: the deriving edge — derive, publish under its own receipts, chain to the source, carry provenance #379
Merged
dcharlot
merged 11 commits from 2026-10-21 10:18:45 -04:00
wai/deriving-edge into main 2026-10-21
registry export: regenerated after merging main (live provenance + deriving edge)
All checks were successful
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 15m0s
joule-moq-web browser client / joule-moq-web · browser end-to-end (macos) (pull_request) Successful in 5m56s
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Successful in 22m44s
WAI energy receipts / energy receipts · linux (pull_request) Successful in 10m19s
wai-ops-gpu integer operators on GPUs / builds · no adapter is not a pass (linux) (pull_request) Successful in 1m51s
wai-pack / wai-pack · linux (pull_request) Successful in 1m25s
wai-quantum studio and desktop / studio · browser (pull_request) Successful in 2m20s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 19m48s
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Successful in 3m51s
standards workspaces build + test / macOS energy backends (pull_request) Successful in 7m16s
WAI HTTP delivery / HTTP corpus · falsify mutations 0/3 (pull_request) Successful in 46m12s
WAI HTTP delivery / HTTP corpus · falsify mutations 1/3 (pull_request) Successful in 45m15s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 12m25s
WAI conformance / cross-arch byte-equality · macos (pull_request) Successful in 18s
WAI conformance / codec wrappers · fuzz smoke, text decode limits, C entry points, provenance, the semantic path (pull_request) Successful in 42s
WAI HTTP delivery / HTTP corpus · falsify patches 0/3 (pull_request) Successful in 4m56s
WAI HTTP delivery / HTTP corpus · falsify patches 1/3 (pull_request) Successful in 5m45s
WAI HTTP delivery / HTTP corpus · every patch and mutation in exactly one shard (pull_request) Successful in 10s
WAI energy receipts / energy receipts · macos (pull_request) Successful in 4m11s
WAI HTTP delivery / HTTP corpus · falsify mutations 2/3 (pull_request) Successful in 45m47s
WAI HTTP delivery / HTTP corpus · verified both ways, and the differential (pull_request) Successful in 2m35s
wai-ops-gpu integer operators on GPUs / Metal GPU and browser WebGPU (macos) (pull_request) Successful in 2m21s
WAI HTTP delivery / cache rules · controls and labelled caches (pull_request) Successful in 1m8s
wai-pack / wai-pack · linux-arm64 (pull_request) Successful in 1m10s
wai-pack / wai-pack · the floor through a media prober (pull_request) Successful in 16s
wai-pack / wai-pack · macos (pull_request) Successful in 1m4s
WAI HTTP delivery / HTTP corpus · falsify patches 2/3 (pull_request) Successful in 7m0s
wai-pack / wai-pack · dependency licences (pull_request) Successful in 1m7s
wai-quantum studio and desktop / desktop app · macos (pull_request) Successful in 2m6s
wai-pack / wai-pack · independent verifier (Python) (pull_request) Successful in 3m57s
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Merge remote-tracking branch 'origin/main' into wai/deriving-edge
# Conflicts: # .github/workflows/wai-conformance.yml # wai/CHANGELOG.md # wai/REGISTRY.md # wai/SPEC.md # wai/registry/capabilities.json # wai/wai-rs/Cargo.toml # wai/wai-rs/src/codecs/registry.rs # wai/wai-rs/src/lib.rs
edge-conformance: the README states its provenance (corpus_provenance)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
deriving edge: cite C2PA 2.4 (§A.3.2, §18.15 actions); edge-conformance in the decoded-output exclusion list
Some checks failed
wai-quantum studio and desktop / studio · browser (pull_request) Successful in 2m40s
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Successful in 3m47s
standards workspaces build + test / joule-code-rs (joule-code/joule-code-rs, joule-code-rs, linux-arm64, true) (pull_request) Successful in 4m21s
WAI conformance / v2 vocabulary · manifests validate as stated (pull_request) Successful in 17s
WAI conformance / delivery telemetry · CMCD and CMSD against an independent library (pull_request) Successful in 11s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 31s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 1m58s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Failing after 15m52s
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 13m17s
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Successful in 26m26s
WAI conformance / cargo-class corpora · macos (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 energy receipts / energy receipts · macos (pull_request) Has been cancelled
WAI HTTP delivery / HTTP corpus · falsify patches 0/3 (pull_request) Has been cancelled
WAI HTTP delivery / HTTP corpus · falsify patches 1/3 (pull_request) Has been cancelled
WAI HTTP delivery / HTTP corpus · falsify patches 2/3 (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 HTTP delivery / HTTP corpus · falsify mutations 2/3 (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 / desktop app · macos (pull_request) Has been cancelled
standards workspaces build + test / macOS energy backends (pull_request) Has been cancelled
WAI HTTP delivery / HTTP corpus · falsify mutations 1/3 (pull_request) Has been cancelled
WAI HTTP delivery / HTTP corpus · falsify mutations 0/3 (pull_request) Has been cancelled
C2 (#381) reads C2PA 2.4; actions moved from §18.14 to §18.15 there, and PNG embedding stays §A.3.2. A new *-conformance directory must state a SHA-256 or be listed with its reason in int_kernels_vectors.rs, which only the cargo-class corpora job runs. Co-Authored-By: Claude Opus 5.5 <[email protected]>
Merge origin/main into wai/deriving-edge
Some checks failed
WAI conformance / delivery telemetry · CMCD and CMSD against an independent library (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 · falsify mutations 0/3 (pull_request) Has been cancelled
WAI HTTP delivery / HTTP corpus · falsify mutations 1/3 (pull_request) Has been cancelled
WAI HTTP delivery / HTTP corpus · falsify mutations 2/3 (pull_request) Has been cancelled
WAI HTTP delivery / HTTP corpus · falsify patches 0/3 (pull_request) Has been cancelled
WAI HTTP delivery / HTTP corpus · falsify patches 1/3 (pull_request) Has been cancelled
WAI HTTP delivery / HTTP corpus · falsify patches 2/3 (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-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
joule-moq-room room service / joule-moq-room, every target (pull_request) Has been cancelled
joule-moq-web browser client / joule-moq-web · browser end-to-end (macos) (pull_request) Has been cancelled
wai-web wasm32 / does this change touch it (pull_request) Has been cancelled
repository checks / lockfiles, tests in CI, workflow hygiene, spec and section references, public text (pull_request) Has been cancelled
Co-Authored-By: Claude Opus 5.5 <[email protected]>
deriving edge: AI-origin labels take the origin claim's terms (assist, generate)
The label a record carries is the top of the order an origin claim gives its steps (capture < convert < assist < generate), so one vocabulary serves both; every derivation this revision pins is a convert step and raises no label. Co-Authored-By: Claude Opus 5.5 <[email protected]>
deriving edge: clippy-clean reference edge and corpus
Co-Authored-By: Claude Opus 5.5 <[email protected]>
deriving edge: provenance carried forward, compartments, AI-origin label
A derivation makes a new object, and nothing its input carried is in it unless the edge puts it there. Each record now lists, by digest, every provenance item of every input: the claims about it, the C2PA Manifest Stores bound to it or embedded in it (a PNG's caBX chunk, which the still reader now admits), and every item the records below it carry, each in the system or personal compartment of California Business and Professions Code §22757.1 (AB 853, Statutes of 2025, Chapter 674). A hop that leaves one out is refused (provenance_stripped). Each input and output carries an AI-origin label (assisted, partial, generated) that may rise along a chain and never fall (synthesis_dropped). Personal items are carried by digest like system ones in this revision; the redaction rule (a stated rule and a salted commitment) is to come. Co-Authored-By: Claude Opus 5.5 <[email protected]>
deriving edge: second implementation, CI step, registry, SPEC §5 and CHANGELOG
edge-conformance/edge_verify.py verifies the corpus from the extension's text alone: it reads receipts and writes stills itself, re-executes every replicate hop, requires every mutated copy of the corpus to fail and the corpus to catch it with each of its own checks dropped. Two controls are added so that every one of its checks is caught (a JPEG output naming no encoder, a grid stated over more inputs than its cells). The registry lists wai.edge.derivation and the document kind wai-derivation; jwp-receipts §4.2 and §7.5 register what an edge may do and its authority edge/derive; derived-tracks and energy-measurement say where the receipt and the group receipts now come from. Co-Authored-By: Claude Opus 5.5 <[email protected]>
wai.edge.derivation: the deriving edge — record, verifier, reference edge, corpus
extensions/deriving-edge.md registers the record an edge signs for an object it derived from delivered objects: a wai.derive.* operation over 8-bit RGB samples, a frame of a wai.video.int_motion clip rebuilt as a still or a JPEG picture, a WAI2 component exploded. The record names each input by content hash, delivery receipt and the record that derived it, the derivation and its parameters, the output by content hash and receipt, the energy with its acquisition class, and its check: replicate (re-executed byte for byte) or attest (the edge's signature). wai-rs feature derive_edge: the record (read under §5.3, JCS, signed and identified), the derivations' arithmetic, the verifier that follows a derived object hop by hop to its source, the reference edge's derive, the wai_edge tool and the edge-conformance corpus (wai_edge_vectors). Co-Authored-By: Claude Opus 5.5 <[email protected]>
wai-rs: the still of packaging §5.7 moves from wai-pack into wai-rs (png_still)
The writer every byte of whose output is a pure function of the frame, and the reader with its own inflater, now live in the standard's crate behind the feature png_still (no dependency), so the deriving edge can read and write stills with the code the packager uses. wai-pack's src/png.rs re-exports them and keeps its tests; nothing it calls changes. Co-Authored-By: Claude Opus 5.5 <[email protected]>