wai: add wai.neural.int_mlicpp, the MLIC++ entropy topology integer end to end #111

Merged
dcharlot merged 6 commits from wai/land-09-int-mlicpp into main 2026-09-30 19:52:34 -04:00
Owner

What this adds

wai.neural.int_mlicpp: the MLIC++ entropy topology — K channel slices, each decoded as a checkerboard anchor pass then a non-anchor pass, with an entropy network over concat[latent decoded so far, hyper] re-run before every pass — with the hyper-decoder, the entropy network and the synthesis all integer networks. Every decoder derives the encoder's scale bucket for every element exactly, so the decode is the same on every platform, runtime and thread count by construction rather than by matching execution settings. Registry class NeuralIntegerExact (decode-equivalence). The committed vector's weights are synthetic and seeded: it shows decode-equivalence and nothing about compression quality.

  • Wire: a WIM1 payload and a one-file WMB1 model bundle, so a pinned prior's SHA-256 covers every network and table. The neural dispatch decodes it and re-checks the prior against the bytes it decodes with.
  • Totality: before the decode allocates anything, each network's shapes are derived from its layer geometry (int_hyper_synth::net_shape). A header whose shapes the model does not produce, or on which a network would form a buffer over Header::MAX_TENSOR, is refused. Latents pass through int_entropy::dequantize (Kani harness), and every network through run_net_checked. IntModel::from_bytes is now total on damaged bytes: it no longer reserves for an unchecked layer count, and it no longer forms sizes with unchecked arithmetic.
  • Tests: tests/int_mlicpp.rs (pinned image, bucket and symbol hashes under every kernel policy and thread count), tests/int_mlicpp_preflight.rs (a counting global allocator; it fails against the decoder without the pre-flight), a byte-exact-conformance golden, and a neural dispatch test. CI runs them on the conformance matrix in both profiles, on the byte-equality matrix, and in neural-gates.
  • A second commit refreshes wai-web/Cargo.lock. It still recorded wai-quantum 0.3.18 where the path dependency is 0.3.21, so a --locked build of wai-web refused to start. This is already true on main.

Verification

Gate run locally on macOS arm64 (rustc 1.98.0) against this link's own tree:

  • wai-rs build and lib tests with the wai-conformance feature list;
  • the carriage test and all 12 conformance corpora;
  • byte-exact-conformance (release), including the int_mlicpp golden;
  • a wasm32-unknown-unknown check of wai-web;
  • every Kani harness in wai-verify;
  • the fast-kernel step as CI runs it (dev and release: lib, int_kernels_vectors, int_kernels_geometry, int_mlicpp, int_mlicpp_preflight);
  • the neural gates (3 passed).

The int_mlicpp unit, integration and pre-flight tests also pass on wasm32-wasip2 under wasmtime 49.0.1, in dev and release, with every pinned hash unchanged.

Merge order. This is one link of a linear chain: each branch contains the one before it, so merging the PRs in order into main never conflicts. Merge after: wai/land-08-energy-classes (#109).

Not covered. x86_64 was not run locally (no translation layer installed); Linux legs come from the forge's CI on this PR; the Windows runner has been offline since late August.

🤖 Generated with Claude Code

## What this adds `wai.neural.int_mlicpp`: the MLIC++ entropy topology — `K` channel slices, each decoded as a checkerboard anchor pass then a non-anchor pass, with an entropy network over concat[latent decoded so far, hyper] re-run before every pass — with the hyper-decoder, the entropy network and the synthesis all integer networks. Every decoder derives the encoder's scale bucket for every element exactly, so the decode is the same on every platform, runtime and thread count by construction rather than by matching execution settings. Registry class `NeuralIntegerExact` (decode-equivalence). The committed vector's weights are synthetic and seeded: it shows decode-equivalence and nothing about compression quality. - **Wire:** a `WIM1` payload and a one-file `WMB1` model bundle, so a pinned prior's SHA-256 covers every network and table. The neural dispatch decodes it and re-checks the prior against the bytes it decodes with. - **Totality:** before the decode allocates anything, each network's shapes are derived from its layer geometry (`int_hyper_synth::net_shape`). A header whose shapes the model does not produce, or on which a network would form a buffer over `Header::MAX_TENSOR`, is refused. Latents pass through `int_entropy::dequantize` (Kani harness), and every network through `run_net_checked`. `IntModel::from_bytes` is now total on damaged bytes: it no longer reserves for an unchecked layer count, and it no longer forms sizes with unchecked arithmetic. - **Tests:** `tests/int_mlicpp.rs` (pinned image, bucket and symbol hashes under every kernel policy and thread count), `tests/int_mlicpp_preflight.rs` (a counting global allocator; it fails against the decoder without the pre-flight), a byte-exact-conformance golden, and a neural dispatch test. CI runs them on the conformance matrix in both profiles, on the byte-equality matrix, and in neural-gates. - A second commit refreshes `wai-web/Cargo.lock`. It still recorded wai-quantum 0.3.18 where the path dependency is 0.3.21, so a `--locked` build of wai-web refused to start. This is already true on main. ## Verification Gate run locally on macOS arm64 (rustc 1.98.0) against this link's own tree: - wai-rs build and lib tests with the wai-conformance feature list; - the carriage test and all 12 conformance corpora; - byte-exact-conformance (release), including the int_mlicpp golden; - a wasm32-unknown-unknown check of wai-web; - every Kani harness in wai-verify; - the fast-kernel step as CI runs it (dev and release: lib, int_kernels_vectors, int_kernels_geometry, int_mlicpp, int_mlicpp_preflight); - the neural gates (3 passed). The int_mlicpp unit, integration and pre-flight tests also pass on wasm32-wasip2 under wasmtime 49.0.1, in dev and release, with every pinned hash unchanged. **Merge order.** This is one link of a linear chain: each branch contains the one before it, so merging the PRs in order into main never conflicts. Merge after: wai/land-08-energy-classes (#109). **Not covered.** x86_64 was not run locally (no translation layer installed); Linux legs come from the forge's CI on this PR; the Windows runner has been offline since late August. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Ingests the OTT delivery layer as a WAI capability. A personalised HLS
manifest (SSAI ads stitched at EXT-X-DISCONTINUITY, blackouts + geo enforced)
is rendered as a pure function of the session *class*
(content, entitlement, geo, blackout set, ad pod, window) rather than the
viewer, and sealed in an Ed25519 receipt binding the JCP grant (capability,
joule ceiling, funds_ceiling = ad budget), the composition, the stitched ads
and the policy applied.

The efficiency is a checkable fact, not a slogan: because the manifest is a
pure function of the class, one generation serves every viewer of that class,
so uj_per_viewer is an amortised energy a 1:1-unique generator cannot report
below its per-viewer cost. manifest_hash == hash(render(segments)) and
session_class_hash are recomputable by anyone holding the bytes; only
joules_micro is measured-attested. Same honesty ladder and receipt idiom as
video_receipt; reuses the world Merkle + Ed25519 and the GrantRef from
quantum_ops (no pixel-decode dependency).

wai_video_manifest.rs + SPEC §5 registration; feature `video_manifest`.
Tests: seal/verify roundtrip, ad-tamper rejection, class-dedup determinism,
amortised efficiency metric, energy-label discipline.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
The monetisation half of the ingest. SSAI's real problem is proof, not
stitching: buyer and seller reconcile impression counts from separate logs
neither can check. This makes an ad break a signed, budget-bounded,
per-impression record both sides verify from the same bytes.

- Deterministic decision (`decide`): greedy by price within the avail
  duration and funds remaining — a pure function of the pod, reproducible by
  an auditor; the pod is bound by `pod_hash`.
- Per-impression receipt: each filled slot carries the served `creative_hash`
  and the VAST quartile it reached, so a swapped creative or a padded count
  breaks the signature.
- Budget enforcement is a checkable fact: `budget_spent_micros` is recomputed
  from the billable (started) impressions and rejected over the grant's
  `funds_ceiling` — overspend cannot be signed.

Links to wai.video.manifest by `manifest_hash` and chains from its receipt;
reuses that module's EnergyProvenance and the world Merkle + Ed25519 +
GrantRef. `uj_per_impression` amortises decision energy over billable
impressions. Only `joules_micro` is measured-attested.

wai_video_ssai.rs + SPEC §5; feature `video_ssai`. 5 tests: deterministic
bounded decision, only-started-ads-bill, overspend-cannot-be-signed,
swapped-creative rejection, amortised efficiency. (Manifest module's energy
tag made pub for reuse; its 5 tests still green — 10 pass total.)

Co-Authored-By: Claude Opus 4.8 <[email protected]>
The content-protection layer. The DRM systems wrap and deliver the key; what
none leave is a portable record of *why* a key was released. This makes every
release — and every refusal — a signed receipt whose decision a verifier
recomputes from the bound inputs.

- decision-equivalence: verify() re-runs decide_release over the receipt's own
  (grant capability, required entitlement, issued, expiry) and rejects any
  stored outcome the policy would not produce. "Keys went only to entitled,
  unexpired sessions" becomes checkable against the signed log.
- The key never enters the receipt: a granted release carries a BLAKE3
  key_commit proving which key was released; a refusal carries none, and the
  granted-iff-committed coupling is enforced.
- A refusal is a first-class signed record, not a silent drop.

Reuses the manifest floor (EnergyProvenance, GrantRef, Ed25519); links to a
manifest via parent_receipt_hash. Only joules_micro is measured-attested.

wai_video_keys.rs + SPEC §5; feature `video_keys`. 5 tests: entitled release
+ key commitment, wrong-entitlement refusal, expired denial, misreported
decision rejected, granted-without-commitment rejected.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
The ingest/packaging layer, where the efficiency is most literal. A source is
sliced into content-hashed segments on GOP boundaries; the ordered
(index -> content_hash) SegmentMap is a signed Merkle commitment.

- map-equivalence: segment_map_root lets a wai.video.manifest reference be
  checked against the package that produced it — the receipts compose.
- verifiable dedup: identical content (an ad in every break, a bumper, a
  replay, simulcast overlap) hashes identically and is stored/encoded once.
  verify() recomputes unique_segments and stored_bytes from the segments, so
  the saving cannot be overstated; uj_per_unique_segment is the encode-once
  energy, honest because the uniqueness is recomputable.

Deterministic segment() is a pure function of the source and target duration.
Reuses the manifest floor (EnergyProvenance, GrantRef, world Merkle + Ed25519).
Only joules_micro is measured-attested.

wai_video_package.rs + SPEC §5; feature `video_package`. 5 tests: deterministic
dedup segmentation, seal/verify + dedup-is-a-fact, overstated-dedup rejected,
tampered-segment breaks the map, encode-once energy amortisation.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
The capstone of the OTT ingest. A linear channel is a continuous schedule of
assets over wall-clock time, sliced into attested playback windows.

- schedule-continuity: verify() rejects a schedule with a gap or an overlap —
  a linear channel airs with no dead air and no double-booking, and a receipt
  will not sign one that does.
- recomputable program-as-run: `aired` is recomputed from the schedule and the
  window, so what actually aired is checkable by a licensor, advertiser or
  regulator against the signed record rather than an operator-held play-out log.
- Windows chain via parent_receipt_hash, so a channel's history is a hash chain
  — operational accountability as a cryptographic artifact.

Each window's manifest remains a wai.video.manifest, so the per-class dedup
carries through: one generation per window per class, not per viewer.

Also adds the `video_workflow` feature switching on the whole suite
(manifest + ssai + keys + package + channel): 25 tests pass together.

wai_video_channel.rs + SPEC §5; feature `video_channel`. 5 tests: entry_at +
continuity, recomputable program-as-run, gap rejected, misreported aired
rejected, window chaining + energy amortisation.

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
The same Rust a native packager runs, compiled to wasm32: the page composes a
session class, renders the real HLS manifest, seals the receipt and verifies it
in the tab.

- OttSession: manifest/class/receipt hashes, the rendered m3u8 (ad breaks as
  real EXT-X-DISCONTINUITY splices), the monetisation audit, and swap_ad() —
  substituting a creative without re-signing, so verify() flips false.
- OttAdBreak: the deterministic decision plus the budget half — drop the
  grant's funds ceiling below the billable spend and the receipt refuses.

Browser-verified live: receipt verifies, tamper breaks it, per-viewer energy
falls 9000 -> 0.180 uJ as the class dedups across 50k viewers, ceiling breach
refuses, zero JS errors.

Enables `video_workflow` on the wai dependency.

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
Closes the honest gap the OTT ingest left open: joules_micro was a parameter,
so the acquisition class was a convention the caller was trusted to honour.
Now it is enforced by construction.

- CounterMeter reads a real hardware energy counter and is the ONLY meter that
  can yield HwShunt. Its read is injected, so the delta and wraparound
  arithmetic is exercised without hardware; CounterMeter::rapl() wires the
  Linux powercap sysfs and returns None wherever it is absent.
- ModelMeter multiplies elapsed time by a calibrated power figure and can only
  ever say ModelBased. It has no way to claim a measurement.
- A meter that cannot measure returns None — never a fabricated figure. A
  plausible number with the wrong label is worse than no number: the caller
  then meters with a model and says so, or seals unmetered (0/None), which the
  receipts already accept and which verify() already enforces.

EnergyReading::as_seal_args() feeds a receipt's seal directly, so the meter is
a clean seam rather than a coupling.

Note: no RAPL on this machine, and the tests say so rather than pretending —
the hardware path is exercised where powercap exists (the Linux runner), not
here. Nothing in this commit claims a measurement it did not take.

energy_meter.rs; feature `energy_meter`. 6 tests. Full suite green:
113 passed / 0 failed under video_workflow + energy_meter.

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
WAI's contract is that an integer decode is byte-identical on every machine.
byte-exact-conformance establishes that by SAMPLING: fixed vectors on four real
targets. This adds the complementary half — REASONING over all inputs in a
bounded window — using Kani (CBMC) against the same sources.

New crate `wai-verify`: a minimal host that #[path]-includes wai-rs/src/rans.rs
(single source of truth, no copy), mirroring byte-exact-conformance. It carries
no `rust-version` on purpose — the verifier ships its own pinned nightly and an
MSRV above it makes cargo refuse to build the harnesses. Harnesses live beside
the code they verify, behind #[cfg(kani)].

PROVED (3 harnesses, 353 checks, 0 failures):
  - RansDecoder::new is total for every input slice.
  - decode_categorical is total and returns an in-alphabet symbol, for ALL
    16-byte streams and ALL well-formed 3-symbol CDFs — with and without the
    rANS state invariant.

A hypothesis was REFUTED in the process: I expected `freq * (state >> 16)` to
overflow on an arbitrary stream. It cannot. freq <= 2^16 (the CDF is normalised
to 2^PRECISION) and state>>16 <= 2^48-1, so the product is at most 2^64 - 2^16.
The safety comes from CDF normalisation, not from the state invariant — a
stronger result than the one I set out to prove.

Non-vacuity is mechanical, not argued: each decode harness carries a
kani::cover obligation, discharged only if the decode is actually reachable, so
an over-strong assumption cannot masquerade as a proof. (A deliberately-false
sentinel was run once and failed as required, confirming the checks discriminate
before the cover mechanism replaced it.)

FOUND — the bypass escape in decode() is NOT total. Harness
kani_decode_bypass_escape_is_total fails, and the failures are the finding:
  - rans.rs:77  shift left with overflow: n_bypass is stream-controlled, so
    j*BYPASS_PRECISION reaches 32 on a u32. Panics in debug, masks in release —
    the same bitstream decoding two ways depending on build profile.
  - rans.rs:81  add with overflow on `value += max_value`.
  - renorm      slice OOB panic reading words[off..off+4] past the buffer.
  - rans.rs:70  unwinding assertion: the `while val == MAX_BYPASS_VAL` loop is
    stream-controlled and unbounded.
All four are reachable from a malformed or adversarial bitstream and none are
visible to a conformance matrix that only decodes well-formed vectors. Left
unfixed in this commit so the proof and the defect land together; the fix must
be a no-op on well-formed streams and is verified against the conformance
vectors separately.

Also: wai-rs/Cargo.toml had two multi-line inline tables, which are invalid per
TOML 1.0 (inline tables must be single-line). Cargo tolerates them; the
verifier's stricter parser refuses. Joined onto single lines — semantically
identical, `cargo metadata` unchanged.

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
Fixes the defects reported in the previous commit, and proves both halves: the
verifier now discharges the bypass harness, and the conformance vectors still
decode byte-identically.

The defects shared one root cause: in the bypass escape, the run length and the
shift distance are read FROM THE STREAM, so a malformed bitstream drove them
out of range. Each fix is a no-op on a well-formed stream, because a conforming
encoder never emits the values that trigger them:

  - shift overflow (rans.rs:77). raw_val is 32 bits and each group carries 4,
    so at most 8 groups can contribute. n_bypass is now clamped to that. A
    shift of 32+ on a u32 panics in debug and masks in release — the same
    bytes decoding two ways depending on how the sink was compiled, which is
    precisely the byte-exactness claim failing.
  - add overflow on `value += max_value` and on `value + offset` — now
    saturating.
  - slice OOB in renorm(): reads past the buffer on an exhausted stream. Now
    guarded, setting an `exhausted` flag (exposed as is_exhausted()) instead of
    panicking a sink that was handed untrusted bytes.
  - unbounded `while val == MAX_BYPASS_VAL`: stream-controlled, so it need not
    terminate. Now bounded by the same 8-group limit and by `exhausted`.

Also made decode() total for a malformed CDF argument (cdf_len < 2 would
underflow `cdf_len - 1`; cdf_len > cdf.len() would index out of bounds) — a
caller-contract violation a conforming codec never produces.

VERIFIED BOTH WAYS:
  - Kani: 4 harnesses, 601 checks, 0 failures — including
    kani_decode_bypass_escape_is_total, which failed before this commit.
  - Behaviour preserved: byte-exact-conformance + wai-rs neural_int (the rANS
    round-trip) = 139 tests, 0 failures. The fix changes nothing a conforming
    encoder can produce.

Scope, stated honestly: these are bounded proofs (3-symbol CDF with symbolic
interior, 16- and 64-byte streams, unwind 8/20), not unbounded ones, and they
cover the stream-controlled paths. decode_categorical's CDF argument is still
assumed well-formed — it comes from internal tables, not the wire.

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
Makes the verification continuous rather than a one-off, and writes down what
it does and does not claim.

- .github/workflows/wai-formal-verification.yml: runs `cargo kani` over
  wai/wai-verify on the linux runner, fired by changes to the harnesses OR to
  the verified source (wai-rs/src/rans.rs) — a source change that regresses
  totality must not be able to merge green. Kani's pinned nightly and CBMC are
  cached on the verifier version. Follows the repo's runner idiom (runs-on:
  linux, rustup via curl; the toolchain action is unusable without rustup).
- SPEC §7 "Machine-checked totality (informative)": states the property
  (arithmetic totality, because overflow panics in debug and wraps in release,
  so an overflowing decoder is two implementations), what is proved today, why
  it is not redundant with the sampling matrix, and the bounds — small symbolic
  CDFs, fixed-length streams, explicit unwind limits, internal CDFs still
  assumed well-formed. Bounded is not universal and the text says so.

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
Extends the machine-checked half to the primitive SPEC §7 names as the
replicate-soundness hinge: a bucket that flips selects a different CDF and
desyncs the rest of the stream.

Proved for det_build_index:
  - the returned index always addresses a real scale-table entry;
  - the bucketing is MONOTONE in sigma — a larger sigma never selects a smaller
    bucket. The doc comment claimed this ("index rises with sigma"); it is now a
    theorem. It is proved for an ARBITRARY edge table rather than only an
    ascending one, because the property follows from counting rather than from
    sortedness — so it does not rest on a precondition a caller might not
    maintain. A non-monotone bucketing would mis-order the table without ever
    panicking, which round-trip tests on well-formed vectors would not reliably
    surface.
  - the singleton table degenerates correctly to one bucket.

Suite now 7 harnesses / 895 checks, 0 failures. CI watches int_entropy.rs so a
change there cannot regress the property and merge green.

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
Extends the machine-checked half to the integer transformer kernels on the
JPEG-AI path — the largest remaining arithmetic surface.

PROVED for softmax:
  - total over the whole fixed-point path: the ln2 reduction, the i128
    polynomial multiplies, the shift by q, and the division;
  - the output sums to EXACTLY 2^PROB_FRAC, with no negative probability. The
    function asserted this in a comment ("give the whole remainder to the
    largest element so the distribution sums to EXACTLY 2^PROB_FRAC"); it is now
    a theorem. It is load-bearing: these probabilities become a CDF, and a
    denormalised CDF makes the entropy decode select the wrong interval and
    desync the stream.

EXPOSED — the `sum == 0` uniform fallback would BREAK that invariant if it ever
fired: n * ((1<<PROB_FRAC)/n) equals 1<<PROB_FRAC only when n divides it (n = 3
gives 65_535, not 65_536). The checker marks the branch UNREACHABLE (the argmax
element always has neg = 0, so exps[argmax] = c0 > 0 and sum > 0), so the
invariant holds today — but by unreachability, not by construction. Recorded at
the site: any change to the exp reduction that lets it fire must distribute the
remainder the way the tail of the function does. No behaviour change here; this
is the class of defect that panics nothing and fails no well-formed test.

Honest scope: the normalisation proof is the two-logit case over ±2^20. Three
symbolic logits over ±2^40 did not close in twenty minutes of propositional
reduction — each element costs an i128 polynomial and an i128 division. The
arity and bound are written into the harness doc rather than quietly tuned until
something passed, and the solver (kissat) is pinned on the harness so CI
reproduces the result without a flag.

Suite now 9 harnesses / 2285 checks, 0 failures, across rans + int_entropy +
int_transform. CI watches all three sources.

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
Extends the machine-checked half across the remaining reachable kernels, and —
more usefully — writes down the coverage boundary instead of listing only wins.

PROVED (conditional results, stated as such):
  - matmul: the accumulation is total for fixed-point operands within ±2^31 at
    Q16. This is NOT "matmul is safe": the product is formed in i128, truncated
    to i64, then accumulated with a plain `+=`, which genuinely does overflow for
    large enough operands. Nothing in the signature constrains magnitude, so
    every caller inherited that safe-operating range silently. The harness turns
    an unstated contract into a written, checked precondition — it is not filed
    as a defect, because it is not one.
  - layernorm: total at ±2^10 — BELOW realistic Q16 activation magnitude. At
    ±2^20 the instance did not close in 25 minutes. The guarded divide (`.max(1)`
    on both radicand and root) and the surrounding arithmetic hold for small
    operands; this does not establish the kernel over its working range and the
    harness doc says so. The obstacle is `isqrt` over a symbolic u128 — a limit
    of bounded model checking, not a property of the code.

SPEC §7 now records the boundary: layernorm's bound is below working range, and
attention, linear, igdn and the composed TransformerBlock are NOT COVERED AT
ALL. A verification section that enumerates only successes invites the wrong
inference — that the integer core is proved, full stop. What is true is
narrower: four kernels carry machine-checked properties, one only at toy
magnitudes, and the largest composed pieces are untouched.

Suite: 11 harnesses / 3447 checks / 0 failures, whole run comfortably inside the
per-harness cap, so it is viable as a merge gate. CI already watches all three
verified sources.

Co-Authored-By: Claude Opus 5 <[email protected]>
verify(wai): separate the ssai decision policy so it can be checked — and record what would not close
Some checks failed
standards workspaces build + test / eoc-rs (pull_request) Successful in 2m19s
standards workspaces build + test / aac-rs (pull_request) Successful in 1m3s
standards workspaces build + test / jcp-rs (pull_request) Successful in 1m13s
standards workspaces build + test / joule-code-rs (pull_request) Successful in 57s
standards workspaces build + test / proof-rs (pull_request) Successful in 1m11s
standards workspaces build + test / sandbox-rs (pull_request) Successful in 2m2s
standards workspaces build + test / jouleclaw-rs (pull_request) Successful in 3m55s
standards workspaces build + test / joulecontract-rs (pull_request) Successful in 46s
standards workspaces build + test / map-rs (pull_request) Successful in 40s
standards workspaces build + test / smart-byte-rs (pull_request) Successful in 2m32s
wai cross-architecture byte-equality / linux-x86_64 (pull_request) Successful in 14s
standards workspaces build + test / mesh-rs (pull_request) Successful in 34s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 30s
WAI conformance / cross-arch byte-equality · linux (pull_request) Successful in 14s
standards workspaces build + test / openpay (pull_request) Successful in 2m19s
wai cross-architecture byte-equality / linux-aarch64 (pull_request) Successful in 24s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 58s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 23s
wai formal verification (integer core) / kani (pull_request) Successful in 3m28s
standards workspaces build + test / joule-ui-rs (pull_request) Successful in 10m32s
standards workspaces build + test / arl-rs (pull_request) Failing after 38m8s
standards workspaces build + test / jouledesk-rs (pull_request) Has been cancelled
standards workspaces build + test / joulehook-rs (pull_request) Successful in 9m38s
standards workspaces build + test / sense-rs (pull_request) Successful in 9m11s
wai cross-architecture byte-equality / macos-arm64 (reference) (pull_request) Successful in 17s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 58s
WAI conformance / cross-arch byte-equality · macos (pull_request) Successful in 19s
wai cross-architecture byte-equality / windows-x86_64 (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · windows (pull_request) Has been cancelled
WAI conformance / cross-arch byte-equality · windows (pull_request) Has been cancelled
fa69ab5ec2
Splits the pure decision policy out of the signing layer (new
wai_video_policy.rs: AdCandidate, Impression, decide, billable_spend), leaving
wai_video_ssai to own the blake3/Ed25519 receipt and re-export the types so the
public surface is unchanged. Behaviour-preserving: all 25 OTT tests pass,
including the three that cross the new boundary.

WHY THE REFACTOR, rather than the cheaper route. The OTT modules import
ed25519_dalek, GrantRef and merkle_root, whose chain runs down into
world::{op, replay}. Kani could stub that away — decide() never touches it, so a
proof would arguably still be sound. But that is the "stand-in closing a goal
nothing decided" pattern this codebase has already been bitten by three times,
and getting it wrong is silent. Separating pure policy from the signing layer
costs a refactor and buys a proof with no stand-ins near it. It is also the same
shape that makes byte-exact-conformance possible.

PROVED: a fresh decision bills nothing until its beacons arrive (1602 checks),
so a fill can never be mistaken for delivery.

NOT PROVED, and recorded in the source rather than quietly dropped: that decide
never proposes a fill exceeding the funds, the avail duration or the slot count.
Three configurations, none closed —
  3 candidates, all symbolic ................ timed out 600s
  2 candidates, all symbolic ................ timed out 900s
  2 candidates, durations concrete .......... timed out 600s
The cost is not the budget arithmetic, which is trivial: decide sorts by
`ad_id: String`, so the model carries memcmp plus the Vec/raw_vec/Layout
machinery. The plumbing explodes, not the logic. The harness was REMOVED rather
than shrunk to a one-candidate pod, which would pass while establishing nothing
— no tie-break, no slot contention, a degenerate case dressed as a theorem.

So SPEC §7 now states the ssai decision policy is TEST-BACKED, NOT PROOF-BACKED
(wai_video_ssai::tests::overspend_cannot_be_signed covers it concretely), and
names the real paths forward: a decision that does not sort on a heap-allocated
key, or a deductive verifier (Creusot/Verus) rather than a bounded model checker.

Suite: 12 harnesses / 5049 checks / 0 failures. CI watches wai_video_policy.rs.

Co-Authored-By: Claude Opus 5 <[email protected]>
fix(wai): declare the world dependency video_manifest always had
Some checks failed
standards workspaces build + test / joulecontract-rs (pull_request) Successful in 36s
standards workspaces build + test / map-rs (pull_request) Successful in 33s
standards workspaces build + test / mesh-rs (pull_request) Successful in 29s
jouleclaw public surface must stay documented / Public-surface audit (jouleclaw-rs) (pull_request) Successful in 59s
no-vanity-metrics / Scan committed Markdown for vanity metrics (pull_request) Successful in 3s
standards workspaces build + test / openpay (pull_request) Successful in 1m20s
wai cross-architecture byte-equality / linux-aarch64 (pull_request) Successful in 21s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 37s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 19s
standards workspaces build + test / eoc-rs (pull_request) Successful in 1m47s
standards workspaces build + test / jcp-rs (pull_request) Successful in 1m14s
standards workspaces build + test / proof-rs (pull_request) Successful in 1m12s
standards workspaces build + test / sandbox-rs (pull_request) Successful in 2m0s
standards workspaces build + test / smart-byte-rs (pull_request) Successful in 2m34s
wai cross-architecture byte-equality / linux-x86_64 (pull_request) Successful in 14s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 30s
WAI conformance / cross-arch byte-equality · linux (pull_request) Successful in 14s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 40s
wai formal verification (integer core) / kani (pull_request) Successful in 3m52s
standards workspaces build + test / arl-rs (pull_request) Successful in 10m5s
standards workspaces build + test / joule-ui-rs (pull_request) Successful in 10m24s
standards workspaces build + test / jouledesk-rs (pull_request) Successful in 9m55s
standards workspaces build + test / joulehook-rs (pull_request) Successful in 10m8s
standards workspaces build + test / sense-rs (pull_request) Successful in 10m31s
wai cross-architecture byte-equality / macos-arm64 (reference) (pull_request) Successful in 32s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 1m15s
WAI conformance / cross-arch byte-equality · macos (pull_request) Successful in 19s
wai cross-architecture byte-equality / windows-x86_64 (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · windows (pull_request) Has been cancelled
WAI conformance / cross-arch byte-equality · windows (pull_request) Has been cancelled
090d97b415
The merge with main compiled cleanly and then failed to build — main split the
quantum stack into its own `wai-quantum` crate, changing `quantum_ops` from
`["world"]` to `["dep:wai-quantum", "wai-quantum/quantum_ops"]`.

That surfaced a latent defect in the video capabilities rather than in the
restructure: every receipt module calls `crate::world:🧾:merkle_root`,
but `video_manifest` only ever declared `quantum_ops` and relied on `world`
arriving transitively. It worked by circumstance and broke the moment the
transitive path moved. Now declared explicitly.

Same shape as the other findings on this branch: something true by accident
rather than by construction, invisible until the accident changed.

Verified on the merged tree: video capabilities 94 passed / 0 failed, and the
Kani suite still 12 harnesses / 5049 checks / 0 failures — the merge did not
perturb any proved property.

Co-Authored-By: Claude Opus 5 <[email protected]>
Merge remote-tracking branch 'origin/main' into feat/wai-video-workflow
Some checks failed
standards workspaces build + test / joulecontract-rs (pull_request) Successful in 38s
standards workspaces build + test / map-rs (pull_request) Successful in 32s
standards workspaces build + test / mesh-rs (pull_request) Successful in 28s
standards workspaces build + test / openpay (pull_request) Successful in 1m38s
wai cross-architecture byte-equality / linux-aarch64 (pull_request) Successful in 21s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 55s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 20s
jouleclaw public surface must stay documented / Public-surface audit (jouleclaw-rs) (pull_request) Successful in 1m0s
no-vanity-metrics / Scan committed Markdown for vanity metrics (pull_request) Successful in 4s
standards workspaces build + test / eoc-rs (pull_request) Successful in 1m53s
standards workspaces build + test / jcp-rs (pull_request) Successful in 1m20s
standards workspaces build + test / proof-rs (pull_request) Successful in 1m15s
standards workspaces build + test / sandbox-rs (pull_request) Successful in 2m9s
standards workspaces build + test / smart-byte-rs (pull_request) Successful in 2m43s
wai cross-architecture byte-equality / linux-x86_64 (pull_request) Successful in 17s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 41s
WAI conformance / cross-arch byte-equality · linux (pull_request) Successful in 16s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 1m3s
wai formal verification (integer core) / kani (pull_request) Successful in 4m50s
standards workspaces build + test / arl-rs (pull_request) Successful in 2m22s
standards workspaces build + test / joule-ui-rs (pull_request) Successful in 2m12s
standards workspaces build + test / jouledesk-rs (pull_request) Successful in 2m30s
standards workspaces build + test / joulehook-rs (pull_request) Successful in 2m15s
standards workspaces build + test / sense-rs (pull_request) Successful in 2m7s
wai cross-architecture byte-equality / macos-arm64 (reference) (pull_request) Successful in 13s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 46s
WAI conformance / cross-arch byte-equality · macos (pull_request) Successful in 15s
wai cross-architecture byte-equality / windows-x86_64 (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · windows (pull_request) Has been cancelled
WAI conformance / cross-arch byte-equality · windows (pull_request) Has been cancelled
2b9de9595f
# Conflicts:
#	wai/wai-rs/Cargo.lock
Merge remote-tracking branch 'origin/main' into feat/wai-video-workflow
Some checks failed
standards workspaces build + test / jouleclaw-rs (pull_request) Successful in 2m5s
standards workspaces build + test / aac-rs (pull_request) Successful in 38s
standards workspaces build + test / jcp-rs (pull_request) Successful in 1m17s
standards workspaces build + test / joule-code-rs (pull_request) Successful in 39s
standards workspaces build + test / arl-rs (pull_request) Successful in 3m31s
standards workspaces build + test / joulecontract-rs (pull_request) Successful in 35s
standards workspaces build + test / proof-rs (pull_request) Successful in 1m10s
standards workspaces build + test / map-rs (pull_request) Successful in 31s
standards workspaces build + test / mesh-rs (pull_request) Successful in 25s
standards workspaces build + test / sandbox-rs (pull_request) Successful in 2m6s
standards workspaces build + test / openpay (pull_request) Successful in 1m31s
wai cross-architecture byte-equality / linux-aarch64 (pull_request) Successful in 21s
standards workspaces build + test / joule-ui-rs (pull_request) Successful in 3m22s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 48s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 16s
standards workspaces build + test / smart-byte-rs (pull_request) Successful in 2m34s
wai cross-architecture byte-equality / linux-x86_64 (pull_request) Successful in 14s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 34s
WAI conformance / cross-arch byte-equality · linux (pull_request) Successful in 14s
standards workspaces build + test / jouledesk-rs (pull_request) Successful in 3m17s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 41s
wai formal verification (integer core) / kani (pull_request) Successful in 4m15s
standards workspaces build + test / joulehook-rs (pull_request) Successful in 9m16s
standards workspaces build + test / sense-rs (pull_request) Successful in 5m41s
wai cross-architecture byte-equality / macos-arm64 (reference) (pull_request) Successful in 16s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 57s
WAI conformance / cross-arch byte-equality · macos (pull_request) Successful in 15s
wai cross-architecture byte-equality / windows-x86_64 (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · windows (pull_request) Has been cancelled
WAI conformance / cross-arch byte-equality · windows (pull_request) Has been cancelled
25a0b2ce70
Merge origin/main into feat/wai-video-workflow
Some checks failed
standards workspaces build + test / aac-rs (pull_request) Successful in 36s
standards workspaces build + test / jcp-rs (pull_request) Successful in 1m17s
standards workspaces build + test / joule-code-rs (pull_request) Successful in 41s
standards workspaces build + test / proof-rs (pull_request) Successful in 1m10s
standards workspaces build + test / joulecontract-rs (pull_request) Successful in 37s
standards workspaces build + test / arl-rs (pull_request) Successful in 4m31s
standards workspaces build + test / map-rs (pull_request) Successful in 55s
standards workspaces build + test / mesh-rs (pull_request) Successful in 31s
standards workspaces build + test / sandbox-rs (pull_request) Successful in 2m6s
standards workspaces build + test / openpay (pull_request) Successful in 1m49s
wai cross-architecture byte-equality / linux-aarch64 (pull_request) Successful in 21s
standards workspaces build + test / smart-byte-rs (pull_request) Successful in 2m28s
wai cross-architecture byte-equality / linux-x86_64 (pull_request) Successful in 14s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 1m8s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 20s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 1m8s
WAI conformance / cross-arch byte-equality · linux (pull_request) Successful in 14s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 40s
standards workspaces build + test / joule-ui-rs (pull_request) Successful in 9m40s
wai formal verification (integer core) / kani (pull_request) Successful in 3m48s
standards workspaces build + test / jouledesk-rs (pull_request) Successful in 2m49s
standards workspaces build + test / joulehook-rs (pull_request) Successful in 3m50s
standards workspaces build + test / sense-rs (pull_request) Successful in 11m17s
standards workspaces build + test / macOS energy backend (jcp-energy) (pull_request) Successful in 4m21s
wai cross-architecture byte-equality / macos-arm64 (reference) (pull_request) Successful in 19s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 1m16s
WAI conformance / cross-arch byte-equality · macos (pull_request) Successful in 18s
wai cross-architecture byte-equality / windows-x86_64 (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · windows (pull_request) Has been cancelled
WAI conformance / cross-arch byte-equality · windows (pull_request) Has been cancelled
491d9b7dc0
Brings the OER/2 receipt ingestion and the accessibility-standard updates from main into the video-workflow branch, so the stacked WAI work that follows builds against current main.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
wai: state what each determinism tier guarantees, and make replicate mean it
Some checks failed
standards workspaces build + test / mesh-rs (pull_request) Successful in 26s
no-vanity-metrics / Scan committed Markdown for vanity metrics (pull_request) Successful in 3s
standards workspaces build + test / openpay (pull_request) Successful in 1m18s
wai cross-architecture byte-equality / linux-aarch64 (pull_request) Successful in 16s
standards workspaces build + test / eoc-rs (pull_request) Successful in 1m48s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 49s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 15s
standards workspaces build + test / jcp-rs (pull_request) Successful in 1m17s
standards workspaces build + test / proof-rs (pull_request) Successful in 1m10s
standards workspaces build + test / sandbox-rs (pull_request) Successful in 2m6s
standards workspaces build + test / smart-byte-rs (pull_request) Successful in 2m28s
wai cross-architecture byte-equality / linux-x86_64 (pull_request) Successful in 15s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 1m9s
WAI conformance / cross-arch byte-equality · linux (pull_request) Successful in 14s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 40s
wai formal verification (integer core) / kani (pull_request) Successful in 3m51s
WAI neural decoders end-to-end / synthetic fixtures → Rust decode → reference (±4) (pull_request) Failing after 1m11s
WAI neural sink gates / model-free refusals of the neural sink (pull_request) Successful in 26s
standards workspaces build + test / arl-rs (pull_request) Successful in 3m55s
standards workspaces build + test / joule-ui-rs (pull_request) Successful in 2m26s
standards workspaces build + test / jouledesk-rs (pull_request) Successful in 2m43s
standards workspaces build + test / joulehook-rs (pull_request) Successful in 2m46s
standards workspaces build + test / sense-rs (pull_request) Successful in 2m36s
standards workspaces build + test / macOS energy backend (jcp-energy) (pull_request) Failing after 2m29s
wai cross-architecture byte-equality / macos-arm64 (reference) (pull_request) Successful in 13s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 56s
WAI conformance / cross-arch byte-equality · macos (pull_request) Successful in 13s
wai cross-architecture byte-equality / windows-x86_64 (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · windows (pull_request) Has been cancelled
WAI conformance / cross-arch byte-equality · windows (pull_request) Has been cancelled
48426dd890
SPEC §7 required an integer decode for `intent = replicate` in one paragraph
and accepted entropy-consistency in another. Resolved in one direction:

- Over a neural capability, `replicate` promises `decode-equivalence` — the
  whole decode to the final medium reproduces on every conforming sink.
  `entropy-consistency` (the decoded symbols reproduce; later stages may not)
  no longer backs it. The tier is a property of the capability as registered,
  not of one implementation.
- Over a standard codec, `replicate` promises that standard's decoder
  conformance, stated per registry class. `StandardTolerance` covers codecs
  whose standard holds decoders to a criterion around a reference;
  `StandardUnclassified` covers codecs not yet classified.
- `wai.image.jpegai` moves to the new `NeuralEntropyExact` class: its
  entropy decode is integer and exact, its later stages are float. It no longer
  backs `replicate`. This is recorded as a conservative choice pending a
  reading of ISO/IEC 6048-4, not as a finding about that standard.
- The JPEG AI decoders now refuse codestreams outside the configuration they
  implement (other β, model_id, colour transform or LSBS settings) instead of
  decoding them incorrectly, and detect flush-to-zero and round-toward-zero
  float environments.
- `wai wrap` writes `replicate` only over capabilities, and fallbacks, whose
  class a sink accepts unpinned.
- extensions/determinism-tiers.md gains an evidence table stating which
  platforms and CI jobs have exercised each guarantee, including what has not
  run.
- CI: a neural-gates workflow runs the model-free gates, including
  decode_envelope_strict, in an Ubuntu 24.04 image where the `neural` build
  links.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
wai-rs: the JPEG AI exact decoder calls no platform math library, and its output is pinned
Some checks failed
standards workspaces build + test / mesh-rs (pull_request) Successful in 32s
standards workspaces build + test / openpay (pull_request) Successful in 1m50s
wai cross-architecture byte-equality / linux-aarch64 (pull_request) Successful in 21s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 1m0s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 14s
no-vanity-metrics / Scan committed Markdown for vanity metrics (pull_request) Successful in 3s
standards workspaces build + test / eoc-rs (pull_request) Successful in 1m52s
standards workspaces build + test / jcp-rs (pull_request) Successful in 1m21s
standards workspaces build + test / proof-rs (pull_request) Successful in 1m16s
standards workspaces build + test / sandbox-rs (pull_request) Successful in 2m10s
standards workspaces build + test / smart-byte-rs (pull_request) Successful in 2m30s
wai cross-architecture byte-equality / linux-x86_64 (pull_request) Successful in 16s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 1m13s
WAI conformance / cross-arch byte-equality · linux (pull_request) Successful in 14s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 40s
wai formal verification (integer core) / kani (pull_request) Successful in 3m59s
WAI neural decoders end-to-end / synthetic fixtures → Rust decode → reference (±4) (pull_request) Failing after 1m8s
WAI neural sink gates / model-free refusals of the neural sink (pull_request) Successful in 27s
standards workspaces build + test / arl-rs (pull_request) Successful in 2m54s
standards workspaces build + test / joule-ui-rs (pull_request) Successful in 2m19s
standards workspaces build + test / jouledesk-rs (pull_request) Successful in 2m45s
standards workspaces build + test / joulehook-rs (pull_request) Successful in 2m26s
standards workspaces build + test / sense-rs (pull_request) Successful in 2m15s
standards workspaces build + test / macOS energy backend (jcp-energy) (pull_request) Failing after 2m23s
wai cross-architecture byte-equality / macos-arm64 (reference) (pull_request) Successful in 13s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 2m30s
WAI conformance / cross-arch byte-equality · macos (pull_request) Successful in 35s
wai cross-architecture byte-equality / windows-x86_64 (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · windows (pull_request) Has been cancelled
WAI conformance / cross-arch byte-equality · windows (pull_request) Has been cancelled
f96ce04da3
The exact decoder's only math-library calls were `exp` in the gain scaler
and, on some targets, the float-to-integer roundings. Those results could
differ between platform math libraries, so the decoded bytes could differ
between machines.

- `float_repro` provides `exp` and the roundings built only from IEEE-754
  basic operations, so their bits are the same on every conforming target.
  Its unit tests pin their bits over a fixed grid of inputs and compare them
  with the host's own functions.
- Two guards keep the decode path free of math-library calls. Clippy's
  `disallowed_methods` (wai-rs/clippy.toml) is denied in each module on the
  path, however the call is spelled. tests/jpegai_decode_symbols.rs fails if
  the linked decoder imports a C math-library function.
- tests/jpegai_cross_platform.rs pins the decoded bytes of the `jpegai/v1`
  inputs and the bits of the float values reported after each stage. They
  were measured identical on macOS arm64, wasm32-wasip2, Linux arm64 (glibc)
  and Linux x86_64 (glibc, under user-mode emulation). Not measured: macOS
  x86_64, Windows, x86_64 hardware, 32-bit targets. The test skips unless its
  inputs are supplied.
- The gain-scaler margin tool now models the reference software's float32
  arithmetic and corrects `log_k`.
- determinism-tiers' evidence table records the measurement and its limits.
  The registry class of `wai.image.jpegai` is unchanged (NeuralEntropyExact).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
wai: register broadcast and streaming codecs, each licence-classified and never a default
Some checks failed
standards workspaces build + test / mesh-rs (pull_request) Successful in 38s
standards workspaces build + test / openpay (pull_request) Successful in 1m39s
wai cross-architecture byte-equality / linux-aarch64 (pull_request) Successful in 19s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 51s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 16s
no-vanity-metrics / Scan committed Markdown for vanity metrics (pull_request) Successful in 3s
standards workspaces build + test / eoc-rs (pull_request) Successful in 1m53s
standards workspaces build + test / jcp-rs (pull_request) Successful in 1m20s
standards workspaces build + test / proof-rs (pull_request) Successful in 1m14s
standards workspaces build + test / sandbox-rs (pull_request) Successful in 2m9s
standards workspaces build + test / smart-byte-rs (pull_request) Successful in 2m30s
wai cross-architecture byte-equality / linux-x86_64 (pull_request) Successful in 15s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 1m14s
WAI conformance / cross-arch byte-equality · linux (pull_request) Successful in 15s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 39s
wai formal verification (integer core) / kani (pull_request) Successful in 4m23s
WAI neural decoders end-to-end / synthetic fixtures → Rust decode → reference (±4) (pull_request) Failing after 1m8s
WAI neural sink gates / model-free refusals of the neural sink (pull_request) Successful in 26s
standards workspaces build + test / arl-rs (pull_request) Successful in 2m58s
standards workspaces build + test / joule-ui-rs (pull_request) Successful in 2m8s
standards workspaces build + test / jouledesk-rs (pull_request) Successful in 2m29s
standards workspaces build + test / joulehook-rs (pull_request) Successful in 2m43s
standards workspaces build + test / sense-rs (pull_request) Successful in 2m6s
standards workspaces build + test / macOS energy backend (jcp-energy) (pull_request) Failing after 1m56s
wai cross-architecture byte-equality / macos-arm64 (reference) (pull_request) Successful in 11s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 46s
WAI conformance / cross-arch byte-equality · macos (pull_request) Successful in 10s
wai cross-architecture byte-equality / windows-x86_64 (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · windows (pull_request) Has been cancelled
WAI conformance / cross-arch byte-equality · windows (pull_request) Has been cancelled
17b7689f7d
SPEC §5 registers the elementary video and audio bitstreams that distribution
chains carry, as sink-supplied capabilities:
wai.video.{av2,vvc,hevc,avc,vp9,evc,evc.baseline,avs3,lcevc} and
wai.audio.{aac,mpegh,avs3}. Each carries a licence class (royalty-free, or
flagged SEP-pool/proprietary), and no flagged codec can become a default.

- Every capability now has an explicit replicate class, and an "exact" class
  is given only where a recorded basis supports it: a standard that requires
  bit-exact decoder output, or a measured comparison. Elsewhere the class is
  conservative, and the registry says what evidence would raise it.
  wai.mesh.glb is not cross-decoder-exact, because a GLB can embed coded
  textures and compressed geometry. wai.audio.scene answers "not known" until
  its sources are known (is_cross_decoder_exact_with_sources).
- wai.video.lcevc is an enhancement layer, pinned to the ISO/IEC 23094-2
  Annex B byte stream and carried as a companion bound to a base payload
  (SPEC §7.1). Its list of base codecs is WAI's registration, not a limit
  imposed by that standard.
- The companion rules are enforced: a WAI2 companion must be companion-only
  and must bind to a base it applies to (an HDR descriptor to a video payload,
  LCEVC to its registered bases), with negative tests. SPEC §7.1 lists the
  envelopes this makes non-conforming.
- A companion-only fallback closes dispatch at step 5, not step 3, so decode
  and inspect agree (SPEC §4).
- SPEC §8 states what a new registration does to earlier uses of its string,
  and what a MINOR revision may enforce.
- research/media-codec-registry.md records the licence and replicate basis
  for each entry.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
wai: a Prior may declare its artifact's wire form; register NNC and the derived-track operations
Some checks failed
standards workspaces build + test / mesh-rs (pull_request) Successful in 22s
standards workspaces build + test / openpay (pull_request) Successful in 1m9s
wai cross-architecture byte-equality / linux-aarch64 (pull_request) Successful in 15s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 46s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 14s
no-vanity-metrics / Scan committed Markdown for vanity metrics (pull_request) Successful in 3s
standards workspaces build + test / eoc-rs (pull_request) Successful in 1m54s
standards workspaces build + test / jcp-rs (pull_request) Successful in 1m21s
standards workspaces build + test / proof-rs (pull_request) Successful in 1m13s
standards workspaces build + test / sandbox-rs (pull_request) Successful in 2m13s
standards workspaces build + test / smart-byte-rs (pull_request) Successful in 2m42s
wai cross-architecture byte-equality / linux-x86_64 (pull_request) Successful in 19s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 1m18s
WAI conformance / cross-arch byte-equality · linux (pull_request) Successful in 14s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 41s
wai formal verification (integer core) / kani (pull_request) Successful in 4m8s
WAI neural decoders end-to-end / synthetic fixtures → Rust decode → reference (±4) (pull_request) Failing after 1m8s
WAI neural sink gates / model-free refusals of the neural sink (pull_request) Successful in 22s
standards workspaces build + test / arl-rs (pull_request) Successful in 2m1s
standards workspaces build + test / joule-ui-rs (pull_request) Successful in 2m42s
standards workspaces build + test / jouledesk-rs (pull_request) Successful in 2m44s
standards workspaces build + test / joulehook-rs (pull_request) Successful in 2m25s
standards workspaces build + test / sense-rs (pull_request) Successful in 2m22s
standards workspaces build + test / macOS energy backend (jcp-energy) (pull_request) Failing after 2m22s
wai cross-architecture byte-equality / macos-arm64 (reference) (pull_request) Successful in 13s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 1m1s
WAI conformance / cross-arch byte-equality · macos (pull_request) Successful in 14s
wai cross-architecture byte-equality / windows-x86_64 (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · windows (pull_request) Has been cancelled
WAI conformance / cross-arch byte-equality · windows (pull_request) Has been cancelled
efb9186fe9
Prior carriage (extensions/prior-carriage.md):
- A `Prior` may declare the wire form its `sha256` covers, as a registered
  prior-form capability. Absent, the digest covers the artifact as the sink
  registered it; manifests written before the field existed round-trip byte
  for byte. `Prior::new` and `with_form` build priors without a struct
  literal.
- `wai.prior.nnc` registers a network's parameters as an ISO/IEC 15938-17 NNC
  bitstream. `wai.tensor.nnc` is a candidate for general tensor data, not to
  be emitted until pinned to a published edition. Both are licence-classified
  as pooled (royalty status not established).
- Whether every conforming NNC decoder reconstructs the same values is not
  established, so a prior declaring a form is not integer-exact across
  hardware (`Prior::form_preserves_exactness`), and a `replicate` over it is
  refused with that reason.

Derived-track operations (extensions/derived-tracks.md):
- The ISO/IEC 23001-16 derivation operations are registered as capability
  strings, each with a determinism tier. No operation is exact while a sample
  value is converted, an empty input list does not vouch for a derived
  sample, and each executed instance names the inputs it read. The text
  states which parts of 23001-16 were read.

Integration with the registry classes (SPEC §7):
- NNC capabilities are `StandardUnclassified`, and they are added to the SPEC
  §7 class table and to the pinned class and licence lists the registry tests
  check.
- `ReplicateRefusal::Prior` now carries the prior's reason
  (`container::PriorRefusal`: absent, not integer-exact, or a declared form
  not established exact), taken from `replicate_prior_refusal`, so a refusal
  over an integer-exact capability states its real cause. The
  absent-prior wording is unchanged.
- `decode_envelope_strict` checks the registry class first. A class refusal
  keeps the registry's wording; a prior refusal reports the prior's reason.
- One `DeterminismTier` type serves the registry and the derivation
  operations, ordered weakest first.
- The neural-gates workflow also watches codecs/prior_form.rs, and describes
  both the class and the form refusals.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
The tests behind WAI's whole-decode claims read inputs from outside the
repository and returned early — reporting a pass — when those inputs were
absent. No workflow supplied them, so the claims were not checked
continuously.

- WAI_REQUIRE_SOTA_VECTORS=1 turns a missing input into a failure. A path
  variable naming a missing or incomplete input fails with or without the
  switch. Local runs without either still skip, and every skip prints a
  banner saying the claim was not verified.
- wai-sota-vectors.yml regenerates the int_hyper vectors from the pretrained
  mbt2018_mean checkpoint (pinned by SHA-256, with a pinned Python stack) and
  runs int_hyper_synth and int_video_sota_keyframe with the switch set. The
  regenerated vectors identify one run, not one machine: the encoder side is
  float.
- wai-jpegai-e2e.yml fetches the pinned JPEG AI inputs from the public models
  root, checks each against a SHA-256 manifest, and runs the whole-decode and
  reconstruction-binding tests with the switch set, requiring each test by
  name and the pinned pixel hash.
- Both jobs fail on any skip banner, and trigger on the kernels and float
  helpers the decode imports.
- The int_hyper claims are stated as the checks CI runs, with its quality
  measured on the pinned image; JPEG AI cross-machine identity is stated as a
  measurement, not a registry-class claim. determinism-tiers §5–§6 record the
  jobs.

Neither workflow has yet run through the forge.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
ci(wai): run the JPEG AI cross-platform pinned-output test in the whole-decode job
Some checks failed
wai cross-architecture byte-equality / linux-aarch64 (pull_request) Successful in 15s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 1m1s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 16s
no-vanity-metrics / Scan committed Markdown for vanity metrics (pull_request) Successful in 3s
standards workspaces build + test / eoc-rs (pull_request) Successful in 1m49s
standards workspaces build + test / jcp-rs (pull_request) Successful in 1m25s
standards workspaces build + test / proof-rs (pull_request) Successful in 1m16s
standards workspaces build + test / sandbox-rs (pull_request) Successful in 2m7s
standards workspaces build + test / smart-byte-rs (pull_request) Successful in 2m29s
wai cross-architecture byte-equality / linux-x86_64 (pull_request) Successful in 15s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 1m14s
WAI conformance / cross-arch byte-equality · linux (pull_request) Successful in 14s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 41s
wai formal verification (integer core) / kani (pull_request) Successful in 3m56s
WAI JPEG-AI whole decode (pinned inputs, required) / fetch pinned JPEG-AI inputs → whole decode + pixel hash, required (pull_request) Successful in 1m12s
WAI neural decoders end-to-end / synthetic fixtures → Rust decode → reference (±4) (pull_request) Failing after 1m7s
WAI neural sink gates / model-free refusals of the neural sink (pull_request) Successful in 26s
WAI mbt2018_mean integer decode (regenerated vectors) / regenerate mbt2018_mean integer vectors → Rust decode, required (pull_request) Successful in 2m34s
standards workspaces build + test / arl-rs (pull_request) Successful in 5m15s
standards workspaces build + test / joule-ui-rs (pull_request) Successful in 2m26s
standards workspaces build + test / jouledesk-rs (pull_request) Successful in 2m29s
standards workspaces build + test / joulehook-rs (pull_request) Successful in 2m22s
standards workspaces build + test / sense-rs (pull_request) Successful in 2m25s
standards workspaces build + test / macOS energy backend (jcp-energy) (pull_request) Failing after 2m19s
wai cross-architecture byte-equality / macos-arm64 (reference) (pull_request) Successful in 13s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 1m1s
WAI conformance / cross-arch byte-equality · macos (pull_request) Successful in 13s
wai cross-architecture byte-equality / windows-x86_64 (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · windows (pull_request) Has been cancelled
WAI conformance / cross-arch byte-equality · windows (pull_request) Has been cancelled
7c74fd3979
The pinned-output test (tests/jpegai_cross_platform.rs) needs the same
inputs the whole-decode job already fetches and checks, but no job ran it.
The job now runs it with the other two tests, requires it by name, and
triggers on changes to it. determinism-tiers §6 and the CHANGELOG say so.

Verified locally with the job's own script and the pinned inputs: all three
required tests ran and passed, the pinned pixel hash was checked, and no test
printed a skip banner.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
WAI's integer decoders ran scalar, single-threaded loops, and no throughput
figure existed for them. Integer arithmetic is exact, so the work can be
re-partitioned across lanes and threads without changing any result, as long
as each output element's arithmetic and overflow behaviour are unchanged.

- src/int_kernels.rs holds the fast convolution, transposed-convolution,
  matmul and elementwise kernels. Each gives the same integer as the scalar
  reference for every output element. Threading uses std:🧵:scope and
  is not used on wasm32.
- A fast kernel runs only where its own arithmetic cannot overflow and the
  reference can size its output; operands outside that bound, and geometries
  where the padded input outgrows the reference's proportion, are handed to
  the reference kernel. With overflow checks on, the fast path panics where
  the reference panics; with them off, it returns the same integers.
- Equivalence is tested, not argued: every committed integer-decoder vector
  is decoded under the reference and under each fast policy against its
  frozen hash (tests/int_kernels_vectors.rs), edge geometry runs through the
  public decoders (tests/int_kernels_geometry.rs), and wai-conformance runs
  both in dev and release profiles on every leg. The Kani harnesses are
  unchanged and still verify.
- wai_decode_bench times reference and fast decodes interleaved in one
  process, best of N. research/decode-throughput.md records the measured
  figures, the machine and the method, and which benchmarked vectors are
  trained models; the largest gain is on the int_hyper synthesis topology
  (synthetic weights).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
wai-rs: hold the fast integer kernels to the JPEG AI decode path's math-library guard
Some checks failed
wai cross-architecture byte-equality / linux-aarch64 (pull_request) Successful in 23s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 1m35s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 21s
no-vanity-metrics / Scan committed Markdown for vanity metrics (pull_request) Successful in 3s
standards workspaces build + test / eoc-rs (pull_request) Successful in 1m48s
standards workspaces build + test / jcp-rs (pull_request) Successful in 1m18s
standards workspaces build + test / proof-rs (pull_request) Successful in 1m12s
standards workspaces build + test / sandbox-rs (pull_request) Successful in 2m8s
standards workspaces build + test / smart-byte-rs (pull_request) Successful in 2m30s
wai cross-architecture byte-equality / linux-x86_64 (pull_request) Successful in 22s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 2m4s
WAI conformance / cross-arch byte-equality · linux (pull_request) Successful in 24s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 43s
wai formal verification (integer core) / kani (pull_request) Successful in 4m28s
WAI JPEG-AI whole decode (pinned inputs, required) / fetch pinned JPEG-AI inputs → whole decode + pixel hash, required (pull_request) Successful in 57s
WAI neural decoders end-to-end / synthetic fixtures → Rust decode → reference (±4) (pull_request) Failing after 1m9s
WAI neural sink gates / model-free refusals of the neural sink (pull_request) Successful in 25s
WAI mbt2018_mean integer decode (regenerated vectors) / regenerate mbt2018_mean integer vectors → Rust decode, required (pull_request) Successful in 2m30s
standards workspaces build + test / arl-rs (pull_request) Successful in 5m20s
standards workspaces build + test / joule-ui-rs (pull_request) Successful in 2m38s
standards workspaces build + test / jouledesk-rs (pull_request) Successful in 2m16s
standards workspaces build + test / joulehook-rs (pull_request) Successful in 1m57s
standards workspaces build + test / sense-rs (pull_request) Successful in 2m4s
standards workspaces build + test / macOS energy backend (jcp-energy) (pull_request) Failing after 2m9s
wai cross-architecture byte-equality / macos-arm64 (reference) (pull_request) Successful in 25s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 2m14s
WAI conformance / cross-arch byte-equality · macos (pull_request) Successful in 20s
wai cross-architecture byte-equality / windows-x86_64 (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · windows (pull_request) Has been cancelled
WAI conformance / cross-arch byte-equality · windows (pull_request) Has been cancelled
1c2af088fb
jpegai_synthesis and int_transformer now run their loops through
int_kernels, so int_kernels is on the JPEG AI exact decode path. Every other
module on that path denies clippy's disallowed_methods (wai-rs/clippy.toml)
so that no platform math-library call can enter it; int_kernels now does too.
It calls none of the listed methods, so this changes no code, only makes the
guard cover the whole path it describes.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
wai: on-chip counters and calibrated instruments are separate energy classes, and every joule-carrying receipt can say which
Some checks failed
WAI energy receipts / energy receipts · linux (pull_request) Successful in 39s
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 52s
WAI neural decoders end-to-end / synthetic fixtures → Rust decode → reference (±4) (pull_request) Failing after 1m7s
standards workspaces build + test / jouleclaw-rs (pull_request) Successful in 6m49s
WAI neural sink gates / model-free refusals of the neural sink (pull_request) Successful in 24s
WAI mbt2018_mean integer decode (regenerated vectors) / regenerate mbt2018_mean integer vectors → Rust decode, required (pull_request) Successful in 2m28s
standards workspaces build + test / aac-rs (pull_request) Successful in 3m25s
standards workspaces build + test / joule-code-rs (pull_request) Successful in 3m46s
standards workspaces build + test / joulecontract-rs (pull_request) Successful in 1m22s
standards workspaces build + test / map-rs (pull_request) Successful in 2m16s
standards workspaces build + test / mesh-rs (pull_request) Successful in 2m3s
standards workspaces build + test / openpay (pull_request) Successful in 18m29s
wai cross-architecture byte-equality / linux-aarch64 (pull_request) Successful in 1m58s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Failing after 7s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Failing after 7s
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Failing after 8s
standards workspaces build + test / arl-rs (pull_request) Successful in 3m49s
standards workspaces build + test / joule-ui-rs (pull_request) Successful in 3m19s
standards workspaces build + test / jouledesk-rs (pull_request) Successful in 3m45s
standards workspaces build + test / joulehook-rs (pull_request) Successful in 3m17s
standards workspaces build + test / sense-rs (pull_request) Successful in 4m0s
standards workspaces build + test / macOS energy backend (jcp-energy) (pull_request) Successful in 3m42s
wai cross-architecture byte-equality / macos-arm64 (reference) (pull_request) Successful in 27s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 2m43s
WAI conformance / cross-arch byte-equality · macos (pull_request) Successful in 28s
WAI energy receipts / energy receipts · macos (pull_request) Successful in 1m14s
wai cross-architecture byte-equality / windows-x86_64 (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · windows (pull_request) Has been cancelled
WAI conformance / cross-arch byte-equality · windows (pull_request) Has been cancelled
d009db9087
The single `HwShunt` acquisition class covered both an on-chip vendor
counter (RAPL, NVML, SMC, IOReport) and an external calibrated shunt. They
are different evidence: a calibrated instrument's uncertainty is traceable to
a calibration, while a counter is a vendor's reading whose error the vendor
states (RAPL readings are deliberately noised when SGX or TDX is enabled,
per security advisory INTEL-SA-00389).

- extensions/energy-measurement.md §2 splits hardware evidence into
  `OnChipCounter` and `CalibratedInstrument`, each with a required declared
  uncertainty (relative error and integration window). IOReport is an
  on-chip counter, like RAPL and NVML. `HwShunt` stays readable as the legacy
  class, ranked below both, and is not sealed into a new WAI receipt.
- Every receipt family that carries joules — video, world, film, reel,
  haptic, score, splat4d, audio scene, ternary, provenance and the wai-quantum
  receipts — can carry its class. The label is additive: every committed
  signed vector still verifies, and the signed bytes of unlabelled and
  legacy-labelled receipts are pinned by tests. A sealed figure declares its
  1 µJ resolution, and the floor is stated as the rule verified (0.5/√3 µJ).
- The acquisition rules are scoped to the receipt profiles WAI defines, and
  the text says what enforces each one.
- Meters open their window from rest, report an all-zero power reader as
  unusable rather than clean, and state the running-window count model as
  conservative.
- oer-receipts.md maps OER's evidential grade onto the refined classes. The
  rule that a producer must not grade `measured` a figure whose class is
  `Estimator` is kept as settled on main.
- wai-quantum verifies a receipt in either form on every in-tree verify
  path, including wai-quantum-serve's POST /verify.
- CI: wai-energy-receipts.yml runs the energy-class, label and legacy-pin
  tests for wai-rs, wai-quantum and wai-quantum-serve, which no workflow
  enabled before.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Brings in main's OER differential fuzzer (fuzz_differential.py and the wai_oer_diff binary) so the chain is checked against it.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Merge origin/main into feat/wai-video-workflow
Some checks failed
standards workspaces build + test / aac-rs (pull_request) Successful in 35s
standards workspaces build + test / arl-rs (pull_request) Successful in 2m39s
standards workspaces build + test / jcp-rs (pull_request) Successful in 1m18s
standards workspaces build + test / joule-code-rs (pull_request) Successful in 1m8s
standards workspaces build + test / joulecontract-rs (pull_request) Successful in 33s
standards workspaces build + test / proof-rs (pull_request) Successful in 1m9s
standards workspaces build + test / map-rs (pull_request) Successful in 37s
standards workspaces build + test / joule-ui-rs (pull_request) Successful in 2m24s
standards workspaces build + test / mesh-rs (pull_request) Successful in 29s
standards workspaces build + test / sandbox-rs (pull_request) Successful in 2m8s
standards workspaces build + test / jouledesk-rs (pull_request) Successful in 2m35s
standards workspaces build + test / openpay (pull_request) Successful in 2m51s
wai cross-architecture byte-equality / linux-aarch64 (pull_request) Successful in 15s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 49s
standards workspaces build + test / smart-byte-rs (pull_request) Successful in 2m35s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 16s
wai cross-architecture byte-equality / linux-x86_64 (pull_request) Successful in 14s
standards workspaces build + test / joulehook-rs (pull_request) Successful in 2m43s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 1m9s
WAI conformance / cross-arch byte-equality · linux (pull_request) Successful in 14s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 40s
standards workspaces build + test / sense-rs (pull_request) Successful in 3m1s
standards workspaces build + test / macOS energy backend (jcp-energy) (pull_request) Successful in 3m22s
wai cross-architecture byte-equality / macos-arm64 (reference) (pull_request) Successful in 13s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 55s
WAI conformance / cross-arch byte-equality · macos (pull_request) Successful in 16s
wai formal verification (integer core) / kani (pull_request) Successful in 3m49s
wai cross-architecture byte-equality / windows-x86_64 (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · windows (pull_request) Has been cancelled
WAI conformance / cross-arch byte-equality · windows (pull_request) Has been cancelled
d7aa08259a
Brings in main's line-by-line audit of the OER extension against both verifiers (860ead8c, documentation only), so the chain is checked against the extension as settled.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Merge feat/wai-video-workflow into wai/land-02-determinism-tiers
Some checks failed
standards workspaces build + test / mesh-rs (pull_request) Successful in 51s
standards workspaces build + test / openpay (pull_request) Successful in 4m47s
wai cross-architecture byte-equality / linux-aarch64 (pull_request) Successful in 21s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 1m3s
no-vanity-metrics / Scan committed Markdown for vanity metrics (pull_request) Successful in 3s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 20s
standards workspaces build + test / eoc-rs (pull_request) Successful in 1m52s
standards workspaces build + test / jcp-rs (pull_request) Successful in 1m17s
standards workspaces build + test / proof-rs (pull_request) Successful in 1m11s
standards workspaces build + test / sandbox-rs (pull_request) Successful in 2m10s
standards workspaces build + test / smart-byte-rs (pull_request) Successful in 2m35s
wai cross-architecture byte-equality / linux-x86_64 (pull_request) Successful in 18s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 1m14s
WAI conformance / cross-arch byte-equality · linux (pull_request) Successful in 17s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 43s
wai formal verification (integer core) / kani (pull_request) Successful in 4m17s
standards workspaces build + test / arl-rs (pull_request) Successful in 3m36s
WAI neural decoders end-to-end / synthetic fixtures → Rust decode → reference (±4) (pull_request) Failing after 1m5s
WAI neural sink gates / model-free refusals of the neural sink (pull_request) Successful in 23s
standards workspaces build + test / joule-ui-rs (pull_request) Successful in 2m58s
standards workspaces build + test / jouledesk-rs (pull_request) Successful in 5m20s
standards workspaces build + test / joulehook-rs (pull_request) Successful in 4m19s
standards workspaces build + test / sense-rs (pull_request) Successful in 3m30s
standards workspaces build + test / macOS energy backend (jcp-energy) (pull_request) Successful in 3m48s
wai cross-architecture byte-equality / macos-arm64 (reference) (pull_request) Successful in 17s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 1m12s
WAI conformance / cross-arch byte-equality · macos (pull_request) Successful in 26s
wai cross-architecture byte-equality / windows-x86_64 (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · windows (pull_request) Has been cancelled
WAI conformance / cross-arch byte-equality · windows (pull_request) Has been cancelled
7f9b06ded3
Brings in, through the refreshed previous link, main's OER differential fuzzer (54e89b56) and its audit of the OER extension against both verifiers (860ead8c, documentation only), so this link is checked against current main.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Merge wai/land-02-determinism-tiers into wai/land-03-jpegai-no-libm
Some checks failed
standards workspaces build + test / joulecontract-rs (pull_request) Successful in 44s
standards workspaces build + test / jcp-rs (pull_request) Successful in 1m18s
standards workspaces build + test / map-rs (pull_request) Successful in 49s
standards workspaces build + test / mesh-rs (pull_request) Successful in 33s
standards workspaces build + test / proof-rs (pull_request) Successful in 1m12s
standards workspaces build + test / sandbox-rs (pull_request) Successful in 2m7s
standards workspaces build + test / openpay (pull_request) Successful in 2m58s
wai cross-architecture byte-equality / linux-aarch64 (pull_request) Successful in 16s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 57s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 15s
standards workspaces build + test / smart-byte-rs (pull_request) Successful in 2m34s
standards workspaces build + test / arl-rs (pull_request) Successful in 3m2s
wai cross-architecture byte-equality / linux-x86_64 (pull_request) Successful in 14s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 1m13s
WAI conformance / cross-arch byte-equality · linux (pull_request) Successful in 16s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 40s
standards workspaces build + test / joule-ui-rs (pull_request) Successful in 3m10s
wai formal verification (integer core) / kani (pull_request) Successful in 4m11s
standards workspaces build + test / jouledesk-rs (pull_request) Successful in 7m34s
WAI neural decoders end-to-end / synthetic fixtures → Rust decode → reference (±4) (pull_request) Failing after 1m4s
WAI neural sink gates / model-free refusals of the neural sink (pull_request) Successful in 29s
standards workspaces build + test / joulehook-rs (pull_request) Successful in 3m43s
standards workspaces build + test / sense-rs (pull_request) Successful in 3m15s
standards workspaces build + test / macOS energy backend (jcp-energy) (pull_request) Successful in 3m49s
wai cross-architecture byte-equality / macos-arm64 (reference) (pull_request) Successful in 21s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 2m3s
WAI conformance / cross-arch byte-equality · macos (pull_request) Successful in 37s
wai cross-architecture byte-equality / windows-x86_64 (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · windows (pull_request) Has been cancelled
WAI conformance / cross-arch byte-equality · windows (pull_request) Has been cancelled
ef50d5ffdb
Brings in, through the refreshed previous link, main's OER differential fuzzer (54e89b56) and its audit of the OER extension against both verifiers (860ead8c, documentation only), so this link is checked against current main.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Merge wai/land-03-jpegai-no-libm into wai/land-04-codec-registry
Some checks failed
standards workspaces build + test / mesh-rs (pull_request) Successful in 34s
standards workspaces build + test / openpay (pull_request) Successful in 3m36s
wai cross-architecture byte-equality / linux-aarch64 (pull_request) Successful in 19s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 1m38s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 24s
no-vanity-metrics / Scan committed Markdown for vanity metrics (pull_request) Successful in 3s
standards workspaces build + test / eoc-rs (pull_request) Successful in 1m49s
standards workspaces build + test / jcp-rs (pull_request) Successful in 1m17s
standards workspaces build + test / proof-rs (pull_request) Successful in 1m17s
standards workspaces build + test / sandbox-rs (pull_request) Successful in 2m9s
standards workspaces build + test / smart-byte-rs (pull_request) Successful in 2m36s
wai cross-architecture byte-equality / linux-x86_64 (pull_request) Successful in 16s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 1m14s
WAI conformance / cross-arch byte-equality · linux (pull_request) Successful in 14s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 42s
standards workspaces build + test / arl-rs (pull_request) Successful in 2m48s
standards workspaces build + test / joule-ui-rs (pull_request) Successful in 2m27s
standards workspaces build + test / jouledesk-rs (pull_request) Successful in 3m27s
standards workspaces build + test / joulehook-rs (pull_request) Successful in 2m34s
wai formal verification (integer core) / kani (pull_request) Successful in 3m58s
WAI neural decoders end-to-end / synthetic fixtures → Rust decode → reference (±4) (pull_request) Failing after 1m10s
WAI neural sink gates / model-free refusals of the neural sink (pull_request) Successful in 23s
standards workspaces build + test / sense-rs (pull_request) Successful in 2m28s
standards workspaces build + test / macOS energy backend (jcp-energy) (pull_request) Successful in 3m9s
wai cross-architecture byte-equality / macos-arm64 (reference) (pull_request) Successful in 14s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 1m7s
WAI conformance / cross-arch byte-equality · macos (pull_request) Successful in 15s
wai cross-architecture byte-equality / windows-x86_64 (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · windows (pull_request) Has been cancelled
WAI conformance / cross-arch byte-equality · windows (pull_request) Has been cancelled
b72d0926f9
Brings in, through the refreshed previous link, main's OER differential fuzzer (54e89b56) and its audit of the OER extension against both verifiers (860ead8c, documentation only), so this link is checked against current main.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Merge wai/land-04-codec-registry into wai/land-05-prior-nnc
Some checks failed
standards workspaces build + test / mesh-rs (pull_request) Successful in 33s
standards workspaces build + test / openpay (pull_request) Successful in 4m38s
wai cross-architecture byte-equality / linux-aarch64 (pull_request) Successful in 22s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 1m5s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 17s
no-vanity-metrics / Scan committed Markdown for vanity metrics (pull_request) Successful in 3s
standards workspaces build + test / eoc-rs (pull_request) Successful in 1m49s
standards workspaces build + test / jcp-rs (pull_request) Successful in 1m16s
standards workspaces build + test / proof-rs (pull_request) Successful in 1m14s
standards workspaces build + test / sandbox-rs (pull_request) Successful in 2m6s
standards workspaces build + test / smart-byte-rs (pull_request) Successful in 2m34s
wai cross-architecture byte-equality / linux-x86_64 (pull_request) Successful in 15s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 1m13s
WAI conformance / cross-arch byte-equality · linux (pull_request) Successful in 15s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 41s
wai formal verification (integer core) / kani (pull_request) Successful in 3m50s
WAI neural decoders end-to-end / synthetic fixtures → Rust decode → reference (±4) (pull_request) Failing after 1m8s
WAI neural sink gates / model-free refusals of the neural sink (pull_request) Successful in 24s
standards workspaces build + test / arl-rs (pull_request) Successful in 2m55s
standards workspaces build + test / joule-ui-rs (pull_request) Successful in 2m37s
standards workspaces build + test / jouledesk-rs (pull_request) Successful in 3m2s
standards workspaces build + test / joulehook-rs (pull_request) Successful in 2m56s
standards workspaces build + test / sense-rs (pull_request) Successful in 2m51s
standards workspaces build + test / macOS energy backend (jcp-energy) (pull_request) Successful in 2m47s
wai cross-architecture byte-equality / macos-arm64 (reference) (pull_request) Successful in 14s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 1m10s
WAI conformance / cross-arch byte-equality · macos (pull_request) Successful in 14s
wai cross-architecture byte-equality / windows-x86_64 (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · windows (pull_request) Has been cancelled
WAI conformance / cross-arch byte-equality · windows (pull_request) Has been cancelled
69e75214c4
Brings in, through the refreshed previous link, main's OER differential fuzzer (54e89b56) and its audit of the OER extension against both verifiers (860ead8c, documentation only), so this link is checked against current main.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Merge wai/land-05-prior-nnc into wai/land-06-ci-headline-tests
Some checks failed
wai cross-architecture byte-equality / linux-aarch64 (pull_request) Successful in 18s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 1m5s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 17s
no-vanity-metrics / Scan committed Markdown for vanity metrics (pull_request) Successful in 3s
standards workspaces build + test / eoc-rs (pull_request) Successful in 1m47s
standards workspaces build + test / jcp-rs (pull_request) Successful in 1m17s
standards workspaces build + test / proof-rs (pull_request) Successful in 1m11s
standards workspaces build + test / sandbox-rs (pull_request) Successful in 2m7s
standards workspaces build + test / smart-byte-rs (pull_request) Successful in 2m33s
wai cross-architecture byte-equality / linux-x86_64 (pull_request) Successful in 14s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 1m13s
WAI conformance / cross-arch byte-equality · linux (pull_request) Successful in 14s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 41s
wai formal verification (integer core) / kani (pull_request) Successful in 4m3s
WAI JPEG-AI whole decode (pinned inputs, required) / fetch pinned JPEG-AI inputs → whole decode + pixel hash, required (pull_request) Successful in 1m14s
WAI neural decoders end-to-end / synthetic fixtures → Rust decode → reference (±4) (pull_request) Failing after 1m5s
WAI neural sink gates / model-free refusals of the neural sink (pull_request) Successful in 23s
WAI mbt2018_mean integer decode (regenerated vectors) / regenerate mbt2018_mean integer vectors → Rust decode, required (pull_request) Successful in 2m33s
standards workspaces build + test / arl-rs (pull_request) Successful in 2m51s
standards workspaces build + test / joule-ui-rs (pull_request) Successful in 2m25s
standards workspaces build + test / jouledesk-rs (pull_request) Successful in 2m34s
standards workspaces build + test / joulehook-rs (pull_request) Successful in 2m27s
standards workspaces build + test / sense-rs (pull_request) Successful in 2m40s
standards workspaces build + test / macOS energy backend (jcp-energy) (pull_request) Successful in 2m57s
wai cross-architecture byte-equality / macos-arm64 (reference) (pull_request) Successful in 16s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 1m8s
WAI conformance / cross-arch byte-equality · macos (pull_request) Successful in 13s
wai cross-architecture byte-equality / windows-x86_64 (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · windows (pull_request) Has been cancelled
WAI conformance / cross-arch byte-equality · windows (pull_request) Has been cancelled
bfb89415b1
Brings in, through the refreshed previous link, main's OER differential fuzzer (54e89b56) and its audit of the OER extension against both verifiers (860ead8c, documentation only), so this link is checked against current main.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Merge wai/land-06-ci-headline-tests into wai/land-07-int-decode-kernels
Some checks failed
wai cross-architecture byte-equality / linux-aarch64 (pull_request) Successful in 23s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 1m46s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 22s
no-vanity-metrics / Scan committed Markdown for vanity metrics (pull_request) Successful in 3s
standards workspaces build + test / eoc-rs (pull_request) Successful in 1m47s
standards workspaces build + test / jcp-rs (pull_request) Successful in 1m16s
standards workspaces build + test / proof-rs (pull_request) Successful in 1m11s
standards workspaces build + test / sandbox-rs (pull_request) Successful in 2m6s
standards workspaces build + test / smart-byte-rs (pull_request) Successful in 2m34s
wai cross-architecture byte-equality / linux-x86_64 (pull_request) Successful in 23s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 2m3s
WAI conformance / cross-arch byte-equality · linux (pull_request) Successful in 22s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 40s
wai formal verification (integer core) / kani (pull_request) Successful in 4m26s
WAI JPEG-AI whole decode (pinned inputs, required) / fetch pinned JPEG-AI inputs → whole decode + pixel hash, required (pull_request) Successful in 52s
WAI neural decoders end-to-end / synthetic fixtures → Rust decode → reference (±4) (pull_request) Failing after 1m4s
WAI neural sink gates / model-free refusals of the neural sink (pull_request) Successful in 23s
standards workspaces build + test / arl-rs (pull_request) Successful in 2m12s
standards workspaces build + test / joule-ui-rs (pull_request) Successful in 2m6s
WAI mbt2018_mean integer decode (regenerated vectors) / regenerate mbt2018_mean integer vectors → Rust decode, required (pull_request) Successful in 2m34s
standards workspaces build + test / jouledesk-rs (pull_request) Successful in 2m15s
standards workspaces build + test / joulehook-rs (pull_request) Successful in 2m10s
standards workspaces build + test / sense-rs (pull_request) Successful in 1m54s
standards workspaces build + test / macOS energy backend (jcp-energy) (pull_request) Successful in 2m8s
wai cross-architecture byte-equality / macos-arm64 (reference) (pull_request) Successful in 24s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 2m24s
WAI conformance / cross-arch byte-equality · macos (pull_request) Successful in 22s
wai cross-architecture byte-equality / windows-x86_64 (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · windows (pull_request) Has been cancelled
WAI conformance / cross-arch byte-equality · windows (pull_request) Has been cancelled
63e5b4e875
Brings in, through the refreshed previous link, main's OER differential fuzzer (54e89b56) and its audit of the OER extension against both verifiers (860ead8c, documentation only), so this link is checked against current main.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Merge wai/land-07-int-decode-kernels into wai/land-08-energy-classes
Some checks failed
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 50s
no-vanity-metrics / Scan committed Markdown for vanity metrics (pull_request) Successful in 3s
standards workspaces build + test / eoc-rs (pull_request) Successful in 1m47s
standards workspaces build + test / jcp-rs (pull_request) Successful in 1m17s
standards workspaces build + test / proof-rs (pull_request) Successful in 1m13s
standards workspaces build + test / sandbox-rs (pull_request) Successful in 2m7s
standards workspaces build + test / smart-byte-rs (pull_request) Successful in 2m33s
wai cross-architecture byte-equality / linux-x86_64 (pull_request) Successful in 25s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 2m8s
WAI conformance / cross-arch byte-equality · linux (pull_request) Successful in 26s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 45s
WAI energy receipts / energy receipts · linux (pull_request) Successful in 46s
wai formal verification (integer core) / kani (pull_request) Successful in 3m47s
WAI JPEG-AI whole decode (pinned inputs, required) / fetch pinned JPEG-AI inputs → whole decode + pixel hash, required (pull_request) Successful in 53s
WAI neural decoders end-to-end / synthetic fixtures → Rust decode → reference (±4) (pull_request) Failing after 1m6s
WAI neural sink gates / model-free refusals of the neural sink (pull_request) Successful in 23s
WAI mbt2018_mean integer decode (regenerated vectors) / regenerate mbt2018_mean integer vectors → Rust decode, required (pull_request) Successful in 2m27s
standards workspaces build + test / arl-rs (pull_request) Successful in 2m30s
standards workspaces build + test / joule-ui-rs (pull_request) Successful in 2m24s
standards workspaces build + test / jouledesk-rs (pull_request) Successful in 2m45s
standards workspaces build + test / joulehook-rs (pull_request) Successful in 2m27s
standards workspaces build + test / sense-rs (pull_request) Successful in 2m19s
standards workspaces build + test / macOS energy backend (jcp-energy) (pull_request) Successful in 2m21s
wai cross-architecture byte-equality / macos-arm64 (reference) (pull_request) Successful in 25s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 2m31s
WAI conformance / cross-arch byte-equality · macos (pull_request) Successful in 19s
WAI energy receipts / energy receipts · macos (pull_request) Successful in 1m9s
wai cross-architecture byte-equality / windows-x86_64 (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · windows (pull_request) Has been cancelled
WAI conformance / cross-arch byte-equality · windows (pull_request) Has been cancelled
16e6bde20c
Brings in, through the refreshed previous link, main's OER differential fuzzer (54e89b56) and its audit of the OER extension against both verifiers (860ead8c, documentation only), so this link is checked against current main.

The OER extension now carries both main's audit and this link's statement that an OER/2 receipt carries an evidential grade and no acquisition class; the two edits touch different sections.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
The float wai.neural.mlicpp decodes correctly only while its encoder evaluates
the entropy network bit-identically to the decoder. Its validation run, with the
encoder at the runtime's default thread count and the decoder single-threaded,
put one scale on the other side of a table edge at symbol 416 of 12,288 and
decoded garbage from there. Matching the execution settings fixes that run, but
it stays a convention between two implementations. int_mlicpp makes the
agreement a property of the arithmetic: the hyper-decoder, the entropy network
re-run before each of the 2*K channel-slice x checkerboard passes, and the
synthesis are all integer networks, so every decoder derives the encoder's scale
bucket for every element, on any platform and at any thread count.

- wai-rs/src/int_mlicpp.rs: the decoder (a WIM1 payload; a one-file WMB1 model
  bundle, so a prior's SHA-256 pins every network and table), built from
  int_hyper_synth's networks, int_entropy's bucketing and the rANS decoder.
- Totality. Before the decode allocates anything, each network's shapes are
  derived from its layer geometry (the new int_hyper_synth::net_shape, which
  shares its geometry with the checked run), and a header whose shapes the
  model does not produce, or on which any network would form a buffer over
  Header::MAX_TENSOR (2^26) elements, is refused. Latents go through
  int_entropy::dequantize (sym * 2^frac + base, None where i64 cannot hold it;
  Kani harness), and every network through int_hyper_synth::run_net_checked
  (run_net layer by layer, only while no value can leave its type). So a decode
  returns an image or an error for any payload, the same one with and without
  overflow checks.
- IntModel::from_bytes, the compact network form every integer neural decoder
  loads, is total on damaged bytes: it no longer reserves for the layer count it
  reads before checking the bytes hold that many (about 480 GB for 2^32 - 1),
  and forms layer sizes and read offsets in checked arithmetic (they overflowed
  a 32-bit usize).
- run_net and decode share a per-layer function and to_rgb8; every committed
  vector still reproduces its hash.
- Registry: NeuralIntegerExact, Lossy, royalty-free (the decoder is this crate's;
  the patent status of the techniques was not examined). A new registry test
  records the basis of every NeuralIntegerExact capability.
- The neural dispatch decodes it and re-checks a pinned prior against the exact
  bytes it decodes with.
- tools/wai_int_mlicpp_export.py writes the committed vector
  tests/vectors/int_mlicpp/. Its weights are synthetic and seeded (no trained
  model is available), so the vector shows decode-equivalence and nothing about
  compression quality.
- Tests: tests/int_mlicpp.rs (the pinned image, bucket and symbol hashes under
  every kernel policy and thread count; one unit in each of four chosen
  parameters, one per value path, changes the image; damaged payloads never
  panic), tests/int_mlicpp_preflight.rs (a counting global allocator: refusing
  a header the model cannot fit, or parsing a damaged network, allocates a few
  KB at most; the decoder without the pre-flight fails it, and aborts on a
  3.4 PB allocation for a synthesis wider than the cap), a byte-exact-conformance
  golden, a neural dispatch test and unit tests. CI runs them on the conformance
  matrix in both profiles, on the byte-equality matrix, and in neural-gates.
- Evidence: all of the above pass, and the pinned hashes reproduce, on macOS
  arm64 and on wasm32-wasip2 under wasmtime 49.0.1, in dev and release. x86_64
  was not measured here (no x86_64 translation layer is installed); the Linux
  legs come from the byte-exact matrix, and the Windows runner is offline.
- SPEC 5 and 7, the README, determinism-tiers 3, 5 and 6, and the CHANGELOG
  record it.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
wai-web: refresh Cargo.lock for wai-quantum 0.3.21
Some checks failed
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 45s
no-vanity-metrics / Scan committed Markdown for vanity metrics (pull_request) Successful in 3s
standards workspaces build + test / eoc-rs (pull_request) Successful in 1m48s
standards workspaces build + test / jcp-rs (pull_request) Successful in 1m20s
standards workspaces build + test / proof-rs (pull_request) Successful in 1m11s
standards workspaces build + test / sandbox-rs (pull_request) Successful in 2m9s
standards workspaces build + test / smart-byte-rs (pull_request) Successful in 2m34s
wai cross-architecture byte-equality / linux-x86_64 (pull_request) Successful in 23s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 2m16s
WAI conformance / cross-arch byte-equality · linux (pull_request) Successful in 23s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 41s
WAI energy receipts / energy receipts · linux (pull_request) Successful in 39s
standards workspaces build + test / arl-rs (pull_request) Successful in 1m47s
wai formal verification (integer core) / kani (pull_request) Successful in 3m44s
standards workspaces build + test / joule-ui-rs (pull_request) Successful in 2m0s
WAI JPEG-AI whole decode (pinned inputs, required) / fetch pinned JPEG-AI inputs → whole decode + pixel hash, required (pull_request) Successful in 53s
WAI neural decoders end-to-end / synthetic fixtures → Rust decode → reference (±4) (pull_request) Failing after 1m6s
standards workspaces build + test / jouledesk-rs (pull_request) Successful in 1m53s
WAI neural sink gates / model-free refusals of the neural sink (pull_request) Successful in 23s
standards workspaces build + test / joulehook-rs (pull_request) Successful in 2m8s
WAI mbt2018_mean integer decode (regenerated vectors) / regenerate mbt2018_mean integer vectors → Rust decode, required (pull_request) Successful in 2m30s
standards workspaces build + test / sense-rs (pull_request) Successful in 1m52s
standards workspaces build + test / macOS energy backend (jcp-energy) (pull_request) Successful in 1m50s
wai cross-architecture byte-equality / macos-arm64 (reference) (pull_request) Successful in 21s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 2m21s
WAI conformance / cross-arch byte-equality · macos (pull_request) Successful in 22s
WAI energy receipts / energy receipts · macos (pull_request) Successful in 58s
wai cross-architecture byte-equality / windows-x86_64 (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · windows (pull_request) Has been cancelled
WAI conformance / cross-arch byte-equality · windows (pull_request) Has been cancelled
df0c0dfb29
main's wai-web/Cargo.lock still records the path dependency wai-quantum at
0.3.18; its Cargo.toml has said 0.3.21 since f0591f1b, so any --locked build
of wai-web refuses to start. The refresh changes only that version line.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
wai: square the deviations in the energy statistics without powi
Some checks failed
standards workspaces build + test / proof-rs (pull_request) Successful in 1m15s
standards workspaces build + test / openpay (pull_request) Successful in 1m33s
wai cross-architecture byte-equality / linux-aarch64 (pull_request) Successful in 30s
standards workspaces build + test / joule-ui-rs (pull_request) Successful in 3m45s
standards workspaces build + test / sandbox-rs (pull_request) Successful in 2m10s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 2m12s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 31s
standards workspaces build + test / smart-byte-rs (pull_request) Successful in 2m32s
wai cross-architecture byte-equality / linux-x86_64 (pull_request) Successful in 22s
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 1m1s
standards workspaces build + test / jouledesk-rs (pull_request) Successful in 3m42s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 2m5s
WAI conformance / cross-arch byte-equality · linux (pull_request) Successful in 22s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 42s
WAI energy receipts / energy receipts · linux (pull_request) Successful in 40s
standards workspaces build + test / joulehook-rs (pull_request) Successful in 5m2s
wai formal verification (integer core) / kani (pull_request) Successful in 3m48s
WAI JPEG-AI whole decode (pinned inputs, required) / fetch pinned JPEG-AI inputs → whole decode + pixel hash, required (pull_request) Successful in 56s
WAI neural decoders end-to-end / synthetic fixtures → Rust decode → reference (±4) (pull_request) Failing after 1m9s
WAI neural sink gates / model-free refusals of the neural sink (pull_request) Successful in 26s
standards workspaces build + test / sense-rs (pull_request) Successful in 7m53s
standards workspaces build + test / macOS energy backend (jcp-energy) (pull_request) Successful in 4m27s
wai cross-architecture byte-equality / macos-arm64 (reference) (pull_request) Successful in 41s
WAI mbt2018_mean integer decode (regenerated vectors) / regenerate mbt2018_mean integer vectors → Rust decode, required (pull_request) Successful in 2m36s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 4m51s
WAI conformance / cross-arch byte-equality · macos (pull_request) Successful in 1m1s
WAI energy receipts / energy receipts · macos (pull_request) Successful in 11m19s
wai cross-architecture byte-equality / windows-x86_64 (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · windows (pull_request) Has been cancelled
WAI conformance / cross-arch byte-equality · windows (pull_request) Has been cancelled
e709627da3
The linux-arm64 leg of wai-conformance failed from this link on: the JPEG AI
decoder's symbol guard (tests/jpegai_decode_symbols.rs) found __powidf2, the
compiler builtin behind f64::powi, defined in its executable. Nothing calls
it there: in the executable built in the runner's own image, no instruction
branches to it, no relocation refers to it and no address is formed for it.
It is the case the test's documentation describes for floor on x86_64 Linux:
GNU ld keeps a compiler-builtin definition that a removed section referred
to. The references were the two sample-variance loops this link added,
energy_class::bracket_relative_uncertainty and energy_burst::sample_sd,
which squared with powi(2).

They now multiply the deviation by itself. For an exponent of 2, __powidf2
returns exactly d * d, so every figure is unchanged. In the runner's image
(catthehacker/ubuntu:act-22.04, arm64, rustc 1.98.0) the guard fails before
this change and passes after it, with no __powidf2 in the executable. On macOS
arm64: the guard, and wai-energy-receipts' three suites with --locked, pass.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Merge wai/land-08-energy-classes into wai/land-09-int-mlicpp
Some checks failed
standards workspaces build + test / proof-rs (pull_request) Successful in 1m11s
wai cross-architecture byte-equality / linux-aarch64 (pull_request) Successful in 30s
standards workspaces build + test / sandbox-rs (pull_request) Successful in 2m8s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 2m31s
standards workspaces build + test / smart-byte-rs (pull_request) Successful in 2m34s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 31s
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 1m11s
wai cross-architecture byte-equality / linux-x86_64 (pull_request) Successful in 26s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 2m21s
WAI conformance / cross-arch byte-equality · linux (pull_request) Successful in 22s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 42s
WAI energy receipts / energy receipts · linux (pull_request) Successful in 38s
standards workspaces build + test / arl-rs (pull_request) Successful in 2m55s
wai formal verification (integer core) / kani (pull_request) Successful in 3m56s
WAI JPEG-AI whole decode (pinned inputs, required) / fetch pinned JPEG-AI inputs → whole decode + pixel hash, required (pull_request) Successful in 55s
WAI neural decoders end-to-end / synthetic fixtures → Rust decode → reference (±4) (pull_request) Failing after 1m6s
standards workspaces build + test / joule-ui-rs (pull_request) Successful in 4m38s
WAI neural sink gates / model-free refusals of the neural sink (pull_request) Successful in 23s
standards workspaces build + test / jouledesk-rs (pull_request) Successful in 3m15s
WAI mbt2018_mean integer decode (regenerated vectors) / regenerate mbt2018_mean integer vectors → Rust decode, required (pull_request) Successful in 2m32s
standards workspaces build + test / joulehook-rs (pull_request) Successful in 4m3s
standards workspaces build + test / sense-rs (pull_request) Successful in 5m23s
standards workspaces build + test / macOS energy backend (jcp-energy) (pull_request) Successful in 3m47s
wai cross-architecture byte-equality / macos-arm64 (reference) (pull_request) Successful in 28s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 2m56s
WAI conformance / cross-arch byte-equality · macos (pull_request) Successful in 27s
WAI energy receipts / energy receipts · macos (pull_request) Successful in 1m12s
wai cross-architecture byte-equality / windows-x86_64 (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · windows (pull_request) Has been cancelled
WAI conformance / cross-arch byte-equality · windows (pull_request) Has been cancelled
1ff33b7fe6
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!111
No description provided.