wai: energy reports, labelled JWP leaves and what signatures cover #133
Merged
dcharlot
merged 6 commits from 2026-10-01 14:54:28 -04:00
wai/land-14-energy-reporting into main 2026-10-01
Merge main into wai/land-14-energy-reporting
Some checks failed
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Has been cancelled
wai cross-architecture byte-equality / linux-aarch64 (pull_request) Has been cancelled
wai cross-architecture byte-equality / linux-x86_64 (pull_request) Has been cancelled
wai cross-architecture byte-equality / macos-arm64 (reference) (pull_request) Has been cancelled
standards workspaces build + test / jouleclaw-rs (pull_request) Has been cancelled
standards workspaces build + test / aac-rs (pull_request) Has been cancelled
standards workspaces build + test / arl-rs (pull_request) Has been cancelled
standards workspaces build + test / eoc-rs (pull_request) Has been cancelled
standards workspaces build + test / jcp-rs (pull_request) Has been cancelled
standards workspaces build + test / joule-code-rs (pull_request) Has been cancelled
standards workspaces build + test / joule-ui-rs (pull_request) Has been cancelled
standards workspaces build + test / joulecontract-rs (pull_request) Has been cancelled
standards workspaces build + test / jouledesk-rs (pull_request) Has been cancelled
standards workspaces build + test / joulehook-rs (pull_request) Has been cancelled
standards workspaces build + test / map-rs (pull_request) Has been cancelled
standards workspaces build + test / mesh-rs (pull_request) Has been cancelled
standards workspaces build + test / openpay (pull_request) Has been cancelled
standards workspaces build + test / proof-rs (pull_request) Has been cancelled
standards workspaces build + test / sandbox-rs (pull_request) Has been cancelled
standards workspaces build + test / sense-rs (pull_request) Has been cancelled
standards workspaces build + test / smart-byte-rs (pull_request) Has been cancelled
standards workspaces build + test / macOS energy backend (jcp-energy) (pull_request) Has been cancelled
no-vanity-metrics / Scan committed Markdown for vanity metrics (pull_request) Has been cancelled
no-vanity-metrics / WAI public text names no comparison (pull_request) Has been cancelled
no-vanity-metrics / WAI public text names no company or product (pull_request) Has been cancelled
joule-code conformance gate / Build + round-trip C1-C4 vectors (pull_request) Has been cancelled
smart-byte conformance gate / Validate conformance JSON files (pull_request) Has been cancelled
smart-byte conformance gate / Second implementation reproduces every vector (pull_request) Has been cancelled
smart-byte conformance gate / Spec changes require vector-pack updates (pull_request) Has been cancelled
smart-byte conformance gate / VERSIONS.md and README.md must exist (pull_request) Has been cancelled
Main now carries links 12 and 13. This merge makes main the base of the pull request, so its diff is this link's own change. Co-Authored-By: Claude Opus 5.5 <[email protected]>
Merge main into wai/land-14-energy-reporting
Some checks failed
WAI conformance / cross-arch byte-equality · linux (pull_request) Successful in 32s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 44s
WAI energy receipts / energy receipts · linux (pull_request) Successful in 1m44s
wai formal verification (integer core) / kani (pull_request) Successful in 4m59s
WAI JPEG-AI whole decode (pinned inputs, required) / fetch pinned JPEG-AI inputs → whole decode + pixel hash, required (pull_request) Successful in 1m51s
WAI neural decoders end-to-end / synthetic fixtures → Rust decode → reference (±4) (pull_request) Successful in 1m18s
WAI neural sink gates / model-free refusals of the neural sink (pull_request) Successful in 34s
WAI mbt2018_mean integer decode (regenerated vectors) / regenerate mbt2018_mean integer vectors → Rust decode, required (pull_request) Successful in 3m49s
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Successful in 1m40s
standards workspaces build + test / jouleclaw-rs (pull_request) Successful in 24m31s
standards workspaces build + test / aac-rs (pull_request) Successful in 13m32s
standards workspaces build + test / joule-code-rs (pull_request) Successful in 12m54s
standards workspaces build + test / joulecontract-rs (pull_request) Successful in 4m34s
standards workspaces build + test / map-rs (pull_request) Successful in 2m38s
standards workspaces build + test / mesh-rs (pull_request) Successful in 1m34s
standards workspaces build + test / openpay (pull_request) Successful in 15m59s
wai cross-architecture byte-equality / linux-aarch64 (pull_request) Successful in 1m17s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 12m12s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 2m7s
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 3m58s
standards workspaces build + test / arl-rs (pull_request) Has been cancelled
standards workspaces build + test / joule-ui-rs (pull_request) Has been cancelled
standards workspaces build + test / jouledesk-rs (pull_request) Has been cancelled
standards workspaces build + test / joulehook-rs (pull_request) Has been cancelled
standards workspaces build + test / sense-rs (pull_request) Has been cancelled
standards workspaces build + test / macOS energy backend (jcp-energy) (pull_request) Has been cancelled
wai cross-architecture byte-equality / macos-arm64 (reference) (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · macos (pull_request) Has been cancelled
WAI conformance / cross-arch byte-equality · macos (pull_request) Has been cancelled
WAI energy receipts / energy receipts · macos (pull_request) Has been cancelled
joule-code/CHANGELOG.md: main's entry (a vendor counter is a hardware reading only while it is demonstrably live) and this link's joule-moq 0.2.0 entry both land under the unreleased section, main's first. The joule-code workspace builds with --locked and the joule-moq tests pass on the merge. Co-Authored-By: Claude Opus 5.5 <[email protected]>
wai: state what CI builds, the meters' new feature, and the /verify change
The v0.4.0 energy-report entry said the conformance build builds the reference meters on every platform. It builds two of them, wai_meter and wai_world_meter. wai-energy-receipts.yml builds those two, wai_video_meter and wai_quantum_meter on linux, linux-arm64 and macos. No workflow builds wai_prov, which needs codecs. The entry now says so, and the conformance workflow's comment no longer names a Windows leg its matrix does not have. The entry now records two compatibility changes. Every reference meter bin requires receipt_claims, and Cargo skips a bin whose required features are off without an error. POST /verify in wai-quantum-serve renders an unmetered receipt's joules_micro as null and adds a metered member, so the crate moves to 0.4.0 and the Wire paragraph names the change. jwp-receipts §2.4.9 rule 2 reads "A point that is present MUST NOT be empty", in the form of the other rules. quantum-sim names the meter's other unmetered paths: a rail that is not live in both brackets (energy-measurement §3.1), and a §4 ratio or §2.3 uncertainty that cannot support a figure. Co-Authored-By: Claude Opus 5.5 <[email protected]>
Merge wai/land-13-parameter-set-identity into wai/land-14-energy-reporting
Brings link 13's review fixes and the link 12 commits it had merged: the strict gate reads only dispatchable capabilities, a pinned ONNX model that keeps tensors in another file is refused with set_incomplete, sha256.json sidecar writes are serialized, and the public text the review found stale or overstated is corrected. The merge needed no conflict resolution. On the merged tree the registry exports are up to date, and the conformance workflow's library, integer-kernel, carriage and C ABI envelope steps and the neural gates workflow's three steps passed locally. Co-Authored-By: Claude Opus 5.5 <[email protected]>
wai: name jwp-conformance in the decoded-output sidecar exclusions
every_decoded_output_states_a_sha256 enumerates every wai/*-conformance directory and requires a sha256.json sidecar or a named exclusion. The new JWP corpus holds delivery receipts, receipt content with no decoded output, so it is excluded for the reason the claim and OER corpora are. Without this, the fast-kernel steps of wai-conformance.yml fail on the assembled tree. Co-Authored-By: Claude Opus 5.5 <[email protected]>
wai: energy reports, labelled JWP leaves and what signatures cover
Two claim classes report on one energy figure without changing the receipt that seals it. `measurement` carries a bracket's values as integers with each bracket's liveness facts, the build and the power reader, and is accepted only against the receipt that carries its figure. `operating-point` records the requested, committed and delivered operating points and a prediction. The ratio, verdict and residual are derived by every reader, never stated. energy-measurement §6.2 gives the figure and the least declaration a report's integers support as exact integer formulas; wai-rs `energy_report` implements them with no floating-point arithmetic. §3.1 defines a live power reader: a rail must advance in two consecutive intervals, in at least five and in at least four of every five, over at least 300 ms. A frozen or held rail is refused rather than sealed under a hardware class. An unmetered `0` is never a figure of zero joules. A JWP object's figure, class and origin are bound into its Merkle leaf (`\x02`), and a labelled group payload signs the total's class, its coverage and the parent link. An object must sit at the position its inclusion proof walks, and group signatures follow the strict Ed25519 rule claims use. `jwp_delivery` and `energy_figure` implement this in wai-rs; joule-moq 0.2.0 builds and verifies both labelled forms. New corpus `jwp-conformance/` with `jwp_verify.py`, more claim vectors with the earlier ones pinned, and a CI job that runs claim_verify.py, differential.py and jwp_verify.py. Legacy receipts keep their bytes. External JWP implementations must adopt the `\x02` leaf and the labelled group payload before verifying objects or groups that use them. Co-Authored-By: Claude Opus 5.5 <[email protected]>