WAI delivery bindings: secure-objects AAD in receipts (MOQT 22/18/16), CMSD read, steering named to CDNs, live C2PA signing #458
Closed
dcharlot
wants to merge 16 commits from
wai/delivery-bindings into main
pull from: wai/delivery-bindings
merge into: Transaction-Science:main
Transaction-Science:main
Transaction-Science:wai/quantum-parse-depth
Transaction-Science:wai/quantum-cli-energy-estimate
Transaction-Science:wai/quantum-planner-contract
Transaction-Science:wai/quantum-landscape-capacity
Transaction-Science:wai/quantum-wasmq
Transaction-Science:wai/quantum-synth-rz-reference
Transaction-Science:wai/quantum-estimate-reaction-clock
Transaction-Science:wai/quantum-landscape-fpga
Transaction-Science:wai/quantum-reader-scaling
Transaction-Science:jouleclaw/north-decode-speed
Transaction-Science:wai/quantum-landscape-gpu
Transaction-Science:wai/quantum-cross-simulator-corpus
Transaction-Science:wai/quantum-writer
Transaction-Science:wai/quantum-check-exercise
Transaction-Science:wai/quantum-landscape-emulator
Transaction-Science:ci/quantum-archive-mtime
Transaction-Science:ci/gate-pool
Transaction-Science:wai/quantum-published-architecture-check
Transaction-Science:wai/quantum-receipt-fields
Transaction-Science:wai/quantum-cloud-tasks
Transaction-Science:ci/quantum-emulator-in-job
Transaction-Science:wai/quantum-service-write
Transaction-Science:fix/fake-stack-reverse-lookup
Transaction-Science:ci/energy-hardware-fetch-by-sha
Transaction-Science:wai/quantum-namespace
Transaction-Science:wai/conform-output
Transaction-Science:wai/neural-corpus-licence
Transaction-Science:wai/compact-return-profile
Transaction-Science:wai/det-module-profile
Transaction-Science:wai/carousel-monotone-inband
Transaction-Science:wai/toolchain-keys
Transaction-Science:fix/fake-stack-no-reverse-lookup
Transaction-Science:fix/origin-503-reset
Transaction-Science:wai/timeliness-ladder-scheduler
Transaction-Science:wai/marks
Transaction-Science:test/relay-loop-port-race
Transaction-Science:sandbox/proof-tee-msr
Transaction-Science:meters/clippy-clean
Transaction-Science:wai/det-module-checkers
Transaction-Science:ci/neural-pin-and-windows-byte-equality
Transaction-Science:mesh-meter/smc
Transaction-Science:wai/ad-consent-supply-chain
Transaction-Science:wai/toolchain-fixes
Transaction-Science:wai/hls-cues-delivery-decision
Transaction-Science:wai/prior-carriage-spec
Transaction-Science:wai/det-source-fixes
Transaction-Science:wai/one-way-delivery
Transaction-Science:chore/shared-append-points-files
Transaction-Science:mesh-meter/min-window
Transaction-Science:jcp-energy/rapl-msr
Transaction-Science:jouleclaw-energy/rapl-msr
Transaction-Science:mesh/ingest-reconcile-2
Transaction-Science:eoc-meter/rapl-msr
Transaction-Science:proof-cascade/rapl-msr
Transaction-Science:sandbox-meter/rapl-msr
Transaction-Science:jouleclaw-energy/smc-consumers
Transaction-Science:wai/quantum-llms-names
Transaction-Science:jouleclaw-energy/smc-system
Transaction-Science:wai/quantum-contract-baselines-0.8.1
Transaction-Science:wai/wave-a
Transaction-Science:wai/co-floor-schedule-change
Transaction-Science:wai/quantum-release-0.8.1
Transaction-Science:mesh/ingest-reconcile
Transaction-Science:wai/quantum-service-tasks
Transaction-Science:wai/quantum-service-rerun
Transaction-Science:mesh/decision-training-provenance
Transaction-Science:test/timing-under-load
Transaction-Science:wai/inspect-carousel-holdings-b
Transaction-Science:wai/quantum-optimize-resume-2
Transaction-Science:chore/rust-latest-stable
Transaction-Science:energy-compare/prereg
Transaction-Science:test/relay-door-race
Transaction-Science:wai/quantum-cli-provider-tasks
Transaction-Science:wai/quantum-service-idempotency-2
Transaction-Science:wai/contribution-link-magic
Transaction-Science:wai/inspect-carousel-holdings
Transaction-Science:wai/carousel-schedule
Transaction-Science:ci/gates-off-arm64-r2
Transaction-Science:ci/proof-shards-to-96
Transaction-Science:ci/drop-msrv-floor
Transaction-Science:ci/proof-gate-sigpipe
Transaction-Science:wai/quantum-studio-service-retry
Transaction-Science:wai/holdings
Transaction-Science:wai/media-inspect
Transaction-Science:ci/gates-off-arm64
Transaction-Science:wai/quantum-optimize-resume
Transaction-Science:wai/quantum-service-idempotency
Transaction-Science:wai/quantum-desktop-0.1.2
Transaction-Science:chore/rust-1.99.1-now
Transaction-Science:wai/tariff-v6-b
Transaction-Science:wai/quantum-provider-jobs-2
Transaction-Science:jcp/replay-class
Transaction-Science:wai/quantum-provider-jobs
Transaction-Science:relay/fanout-shards
Transaction-Science:wai/avs3-probe-panic
Transaction-Science:sense/injected-observation
Transaction-Science:room/draw-on-new-frame
Transaction-Science:sandbox/transcript-continuation
Transaction-Science:relay/fanout-load
Transaction-Science:wai/quantum-desktop-0.1.1-b
Transaction-Science:chore/rust-1.99.1-on-main
Transaction-Science:wai/upscale-tonemap-door
Transaction-Science:wai/tariff-v6
Transaction-Science:wai/quantum-desktop-0.1.1
Transaction-Science:wai/third-party-hop
Transaction-Science:chore/rust-1.99.1-current
Transaction-Science:sec/zip-extract-abort
Transaction-Science:wai/quantum-desktop-read-only-volume
Transaction-Science:joulespec/applied
Transaction-Science:wai/quantum-desktop-update-key
Transaction-Science:wai/quantum-contract-baselines-0.8.0
Transaction-Science:joulespec/e4-bridge
Transaction-Science:wai/route-outputs
Transaction-Science:wai/quantum-release-0.8.0
Transaction-Science:joulespec/self-conformance
Transaction-Science:sec/crypto-bigint-unyanked
Transaction-Science:joulespec/research-pass
Transaction-Science:joulespec/standard-v0.1
Transaction-Science:wai/quantum-registration
Transaction-Science:wai/quantum-gpu-resident
Transaction-Science:wai/quantum-scale-out
Transaction-Science:wai/ledger-physics
Transaction-Science:wai/quantum-variational
Transaction-Science:wai/quantum-interchange
Transaction-Science:wai/route-physics
Transaction-Science:wai/ledger-work-priced
Transaction-Science:ci/arm64-no-debuginfo
Transaction-Science:wai/quantum-pulse
Transaction-Science:wai/quantum-desktop-release
Transaction-Science:test/srt-burst-mid-stream
Transaction-Science:sec/wasmtime-49.0.5
Transaction-Science:wai/routed-jobs-ledger
Transaction-Science:wai/routed-jobs
Transaction-Science:wai/fast-channel-guide
Transaction-Science:ci/quantum-set-path-skip-linux
Transaction-Science:scripts/public-text-checks-cover-oer
Transaction-Science:wai/fast-statement-check
Transaction-Science:proof/ioreport-same-subscription
Transaction-Science:wai/fast-revenue-share
Transaction-Science:wai/relay-ws-close-drain-2
Transaction-Science:wai/quantum-members-on-the-studio
Transaction-Science:ci/macos-x86_64-on-intel
Transaction-Science:wai/relay-ws-close-drain
Transaction-Science:wai/quantum-py-on-index
Transaction-Science:wai/quantum-npm-package
Transaction-Science:wai/flake-fixes-relay-energy
Transaction-Science:wai/installer-version-test
Transaction-Science:wai/quantum-cli-0.2.2
Transaction-Science:hotfix/room-empty-on-91cfa9d0
Transaction-Science:room/viewer-of-an-empty-room
Transaction-Science:wai/quantum-mcp-registry
Transaction-Science:wai/install-0.4.0
Transaction-Science:wai/quantum-baselines-0.7.0
Transaction-Science:wai/release-0.4.0
Transaction-Science:wai/quantum-wave5b
Transaction-Science:wai/ops-catalogue
Transaction-Science:wai/quantum-wave5
Transaction-Science:wai/studio-web
Transaction-Science:wai/breaking-conform
Transaction-Science:wai/quantum-ecosystem
Transaction-Science:wai/quantum-qsynth
Transaction-Science:wai/quantum-qasm3
Transaction-Science:wai/quantum-qlsp
Transaction-Science:wai/quantum-qbyoq
Transaction-Science:wai/fleet
Transaction-Science:wai/quantum-qpy
Transaction-Science:wai/quantum-qdoor
Transaction-Science:wai/relay-ws-ping
Transaction-Science:wai/dvr-windows-positional
Transaction-Science:wai/quantum-study-2
Transaction-Science:fix/srt-tests-first-send-losses
Transaction-Science:wai/quantum-study
Transaction-Science:wai/create-2
Transaction-Science:wai/dx-agent-mcp-2
Transaction-Science:wai/dx-a-examples-2
Transaction-Science:fix/srt-close-after-drain
Transaction-Science:wai/dx-a-examples
Transaction-Science:wai/create
Transaction-Science:train/wai-e
Transaction-Science:wai/dx-agent-mcp
Transaction-Science:wai/quantum-converge
Transaction-Science:wai/quantum-taste-r2
Transaction-Science:wai/sdk-native-apple
Transaction-Science:wai/quantum-taste
Transaction-Science:wai/quantum-novelty
Transaction-Science:wai/quantum-locks-r2
Transaction-Science:wai/messaging-calls
Transaction-Science:sec/zstd-avx2-2026-10-26
Transaction-Science:sec/zstd-2026-10-26
Transaction-Science:wai/remote-input-seal
Transaction-Science:wai/quantum-locks
Transaction-Science:wai/room-remote
Transaction-Science:wai/sdk-native-android
Transaction-Science:sec/allow-reasons-verified
Transaction-Science:wai/quantum-studio-origin-words
Transaction-Science:ci/compile-once
Transaction-Science:wai/ingest-srt-rist
Transaction-Science:wai/encode-avc-hevc
Transaction-Science:wai/world-on-moq
Transaction-Science:wai/remote-desktop
Transaction-Science:train/pack-stack
Transaction-Science:wai/ingest-ertmp-scte104
Transaction-Science:wai/quantum-0.6.15-history
Transaction-Science:wai/quantum-studio-workbench
Transaction-Science:wai/quantum-attributed-history
Transaction-Science:ci/energy-step-retry
Transaction-Science:wai/quantum-0.6.15
Transaction-Science:wai/relay-cascade
Transaction-Science:wai/audit-kit
Transaction-Science:wai/receipt-ledger
Transaction-Science:chore/rust-1.99.1
Transaction-Science:wai/ssai-stitched
Transaction-Science:wai/key-release
Transaction-Science:wai/quantum-discover
Transaction-Science:wai/quantum-qasm-generators
Transaction-Science:wai/int-decode-fast
Transaction-Science:train/wai-c
Transaction-Science:wai/quantum-service-client-identity
Transaction-Science:wai/energy-honesty
Transaction-Science:fix/floor-input-chain-order
Transaction-Science:wai/energy-sink-metering
Transaction-Science:wai/energy-truth
Transaction-Science:train/live-room-d
Transaction-Science:sec/unsound-bumps-2026-10
Transaction-Science:fix/quick-xml-normalized-value
Transaction-Science:sec/after-443-b
Transaction-Science:wai/energy-waste
Transaction-Science:sec/ci-python-pins
Transaction-Science:wai/determinism-cost
Transaction-Science:wai/gpu-int-tier
Transaction-Science:sec/after-443-2026-10-22
Transaction-Science:sec/advisory-sweep-2026-10
Transaction-Science:sec/rust-advisories-2026-10
Transaction-Science:wai/avatar-telepresence
Transaction-Science:wai/ops-npu
Transaction-Science:wai/registrations-b3r
Transaction-Science:wai/scene-priors
Transaction-Science:sec/rustsec-2026-10
Transaction-Science:fix/x402-refuse-unimplemented-scheme
Transaction-Science:fix/passport-no-espr
Transaction-Science:train/wai-2026-10-22
Transaction-Science:wai/cross-fabric
Transaction-Science:fix/eoc-route-cheapest
Transaction-Science:fix/backend-apple-lints
Transaction-Science:feat/tdx-hardware-check
Transaction-Science:wai/pq-receipts
Transaction-Science:wai/dred-exact
Transaction-Science:train/live-room
Transaction-Science:wai/soft-binding-evidence
Transaction-Science:wai/co-watch
Transaction-Science:wai/gain-maps
Transaction-Science:wai/splat-exact
Transaction-Science:wai/telemetry-aggregate
Transaction-Science:wai/exact-upscale
Transaction-Science:wai/quantum-0.6.14
Transaction-Science:wai/pack-efficiency
Transaction-Science:wai/synthesis-mark
Transaction-Science:wai/exploration
Transaction-Science:wai/ad-presentation
Transaction-Science:wai/mark-sync
Transaction-Science:fix/loader-gguf-lints
Transaction-Science:wai/access-services
Transaction-Science:wai/co-performance-live
Transaction-Science:fix/sandbox-vector-drift
Transaction-Science:fix/e2e-window-wait
Transaction-Science:wai/influence
Transaction-Science:wai/pp-admission
Transaction-Science:wai/takedown
Transaction-Science:fix/routing-plan-carries-its-class
Transaction-Science:wai/quantum-codesign-lens
Transaction-Science:wai/shared-lists
Transaction-Science:feat/tdx-pck-chain
Transaction-Science:wai/settlement
Transaction-Science:joule-moq/multi-draft
Transaction-Science:wai/browser-binding
Transaction-Science:wai/bearers
Transaction-Science:feat/sandbox-hardware-check
Transaction-Science:wai/direction
Transaction-Science:wai/co-performance
Transaction-Science:wai/age-assurance
Transaction-Science:fix/dash-bounds-interleave
Transaction-Science:wai/quantum-codesign
Transaction-Science:wai/contribution
Transaction-Science:feat/sandbox-tdx-run-path
Transaction-Science:fix/track-kind-name
Transaction-Science:wai/ietf-draft
Transaction-Science:feat/sandbox-run-flow
Transaction-Science:wai/ai-usage
Transaction-Science:feat/jcp-wire-evidence
Transaction-Science:wai/synthesis
Transaction-Science:wai/quantum-branching-threads-pinned
Transaction-Science:feat/sandbox-run-binding
Transaction-Science:fix/wt-close-linger
Transaction-Science:fix/routing-joules-is-an-estimator
Transaction-Science:feat/jcp-window-caveat
Transaction-Science:fix/attest-vendor-offsets
Transaction-Science:wai/deriving-edge
Transaction-Science:wai/c2pa-live
Transaction-Science:fix/mesh-energy-span-scope
Transaction-Science:feat/compliance-product-liability
Transaction-Science:feat/mesh-weights-change-record
Transaction-Science:wai/ops-gpu
Transaction-Science:feat/receipts-bind-the-output
Transaction-Science:wai/quantum-cli-formulae-private
Transaction-Science:wai/quantum-cli-release-static
Transaction-Science:fix/gguf-cast-alignment
Transaction-Science:joule-moq/e2e-service-seek
Transaction-Science:wai/quantum-0612-land
Transaction-Science:joule-moq/e2ee-web
Transaction-Science:fix/kv-cache-attn-layer-count
Transaction-Science:feat/metal-ratchet
Transaction-Science:wai/quantum-tn-restarts
Transaction-Science:wai/quantum-studio-svg
Transaction-Science:wai/quantum-cli-release
Transaction-Science:fix/efficiency-keeps-coverage
Transaction-Science:fix/joule-code-conformance-header
Transaction-Science:wai/quantum-four-surfaces
Transaction-Science:joule-moq/wt-session-close
Transaction-Science:wai/quantum-engine-studio
Transaction-Science:wai/live-ads
Transaction-Science:wai/quantum-studio
Transaction-Science:wai/quantum-engine-browser
Transaction-Science:wai/quantum-engine
Transaction-Science:wai/live-watermark
Transaction-Science:feat/c27-flow-conformance
Transaction-Science:wai/quantum-one-front-end
Transaction-Science:joule-moq/dvr
Transaction-Science:fix/claims-grounded-by-their-own-citations
Transaction-Science:fix/nvml-low-counter-not-a-reading
Transaction-Science:wai/quantum-one-parser
Transaction-Science:fix/jouleclaw-energy-doc-links
Transaction-Science:feat/c25-single-writer-conformance
Transaction-Science:wai/quantum-exact-phase
Transaction-Science:fix/jcp-wire-retry-and-single-writer
Transaction-Science:wai/quantum-0.6.8
Transaction-Science:fix/mesh-journal-single-writer
Transaction-Science:fix/journal-single-writer
Transaction-Science:wai/quantum-sv-thread-floor
Transaction-Science:wai/e2ee
Transaction-Science:debug/branching-determinism
Transaction-Science:fix/cited-item-authority
Transaction-Science:wai/quantum-tn-split-0.6.7
Transaction-Science:wai/quantum-service-cutrank-pr
Transaction-Science:fix/gpu-counter-under-reports
Transaction-Science:wai/quantum-tn-split
Transaction-Science:wai/quantum-service-cutrank
Transaction-Science:wai/quantum-cutrank-0.6.6
Transaction-Science:fix/jcp-gateway-flow-checks-whole-request
Transaction-Science:wai/quantum-dynamic-examples
Transaction-Science:wai/quantum-dynamic-circuits
Transaction-Science:fix/jcp-gateway-gates-tasks-and-mrtr
Transaction-Science:wai/moderation
Transaction-Science:joule-moq/room-live
Transaction-Science:wai/quantum-cutrank
Transaction-Science:wai/quantum-service-energy
Transaction-Science:ci/lean-triggers
Transaction-Science:wai/steering
Transaction-Science:fix/rapl-permission-vs-absent
Transaction-Science:feat/pool-energy-accounted-scheduling
Transaction-Science:joule-moq/ingest
Transaction-Science:joule-moq/harden
Transaction-Science:wai/live-metering
Transaction-Science:tidy/safe-lints
Transaction-Science:wai/quantum-0.6.4-pr
Transaction-Science:aac/release
Transaction-Science:joule-moq/web
Transaction-Science:wai/d2c-m7b
Transaction-Science:jouleclaw/jcs-ecmascript-numbers
Transaction-Science:wai/quantum-service
Transaction-Science:fix/efficiency-outcome-anchor-prior-art
Transaction-Science:fix/joulehook-budget-survives-the-process
Transaction-Science:joule-moq/relay
Transaction-Science:fix/jouleclaw-nvml-sampling-floor
Transaction-Science:tidy/clippy-sweep
Transaction-Science:wai/quantum-0.6.4
Transaction-Science:wai/quantum-noisy-clifford
Transaction-Science:fix/sandbox-s7-audit-trail-survives-restart
Transaction-Science:wai/d2c-m8
Transaction-Science:wai/timed-text
Transaction-Science:wai/live-record
Transaction-Science:wai/d2c-m7a
Transaction-Science:fix/joule-code-joulecontract-no-fabricated-discharge
Transaction-Science:fix/jcp-gateway-replays-its-own-receipts
Transaction-Science:wai/tensor-engine-device-compile
Transaction-Science:wai/live-compose
Transaction-Science:fix/openpay-audit-log-survives-restart
Transaction-Science:fix/jcp-efficiency-undefined-ratio-is-not-zero
Transaction-Science:fix/jcp-trace-undefined-ratio-is-not-zero
Transaction-Science:fix/joulehook-unrecognised-payload-fails-closed
Transaction-Science:wai/capture-take
Transaction-Science:fix/jwp-zstd-decompression-cap
Transaction-Science:fix/openpay-sca-exemption-eur-caps
Transaction-Science:fix/openpay-screening-unrun-is-not-clear
Transaction-Science:wai/live-rooms
Transaction-Science:joule-moq/draft-22
Transaction-Science:wai/quantum-wmma
Transaction-Science:wai/live-events
Transaction-Science:wai/quantum-tensor-cores
Transaction-Science:fix/process-gpu-oracle-pid-time
Transaction-Science:wai/d2c-m6
Transaction-Science:wai/d2c-m5
Transaction-Science:wai/bounds-pass-speed
Transaction-Science:wai/quantum-dataflow-vector
Transaction-Science:wai/o23-loaded-set-cache
Transaction-Science:wai/d2c-m4
Transaction-Science:wai/quantum-npu
Transaction-Science:ci/balance-linux-pools
Transaction-Science:wai/d2c-m3
Transaction-Science:wai/quantum-0.5.0
Transaction-Science:fix/meter-freshness-note
Transaction-Science:wai/d2c-m2-m3
Transaction-Science:wai/extension-duration-limits
Transaction-Science:ci/one-job-for-repo-checks
Transaction-Science:wai/coverage-fuzzing
Transaction-Science:wai/decode-output-limits
Transaction-Science:sandbox/bind-egress-credentials
Transaction-Science:wai/quantum-processors-ci
Transaction-Science:wai/quantum-webgpu-windows
Transaction-Science:wai/quantum-sv-gpu
Transaction-Science:wai/quantum-samplers
Transaction-Science:ci/build-what-changes
Transaction-Science:wai/d7-titles-slice
Transaction-Science:ci/gate-on-pr-diff
Transaction-Science:fix/eoc-meter-gpu-freshness
Transaction-Science:ci/checks-on-arm64
Transaction-Science:mesh/bind-weights-and-precision
Transaction-Science:wai/quantum-every-processor
Transaction-Science:wai/d2c-decoders-on-ops
Transaction-Science:fix/clippy-sweep
Transaction-Science:ci/tests-are-run
Transaction-Science:wai/d7-text-and-browser
Transaction-Science:fix/spec-citations-resolve
Transaction-Science:wai/quantum-run-meter
Transaction-Science:wai/quantum-serve-limits
Transaction-Science:fix/tree-energy-reap-under-load
Transaction-Science:wai/security-gaps
Transaction-Science:fix/in-process-self-read-fold
Transaction-Science:fix/rapl-probe-test-in-step
Transaction-Science:ci/lockfiles-current
Transaction-Science:wai/d2b-bounds
Transaction-Science:wai-quantum-fabric-energy
Transaction-Science:fix/grade-labels-and-windows
Transaction-Science:wai-quantum-webgpu-tile
Transaction-Science:fix/model-based-means-calibrated
Transaction-Science:wai/d7-5-stroke-set
Transaction-Science:wai-quantum-webgpu
Transaction-Science:fix/uncalibrated-model-is-estimate
Transaction-Science:wai/d7-4-vector-checker
Transaction-Science:wai/w4-4-staged-packages
Transaction-Science:wai/d1-record-true
Transaction-Science:wai/d7-3-vector-raster
Transaction-Science:wai/d7-2-vector-formats
Transaction-Science:wai/d7-1-graphics-text
Transaction-Science:feat/tree-delegated-energy
Transaction-Science:feat/meter-model-subprocesses
Transaction-Science:feat/meter-solver-subprocesses
Transaction-Science:fix/no-fabricated-readings
Transaction-Science:revive/joule-code-pack-test
Transaction-Science:wai/reach-builds
Transaction-Science:wai/generate-score-cli
Transaction-Science:revive/jcp-receipt-orphan-doc
Transaction-Science:fix/tree-energy-setup-race
Transaction-Science:sandbox/meter-delta-read
Transaction-Science:wai-quantum-circuit2
Transaction-Science:wai/d2a-operators-crate
Transaction-Science:wai/w3-3-http-receipts
Transaction-Science:wai/d2a-operators-text
Transaction-Science:chore/licence-files-match
Transaction-Science:ci/hygiene-comment
Transaction-Science:feat/gateway-upstream-energy
Transaction-Science:feat/mesh-fidelity-provenance
Transaction-Science:energy/gpu-plausibility-magnitude
Transaction-Science:wai-quantum-fabric
Transaction-Science:feat/orchestrate-journal
Transaction-Science:mesh-meter/process-span
Transaction-Science:wai-quantum-nqs-rectangle
Transaction-Science:fix/wai-burst-race-assertion
Transaction-Science:wai-quantum-nqs-pointgroup
Transaction-Science:ci/pr-diff-path-gate
Transaction-Science:feat/revocation-freshness
Transaction-Science:feat/policy-digest
Transaction-Science:feat/checkpoint-energy
Transaction-Science:wai/w5-4-measure-web
Transaction-Science:wai/strict-ed25519
Transaction-Science:fix/gpu-plausibility-magnitude
Transaction-Science:ci/energy-tests-load-independent
Transaction-Science:wai-quantum-nqs-symmetry
Transaction-Science:wai/audio-provenance
Transaction-Science:fix/energy-tick-floor-proof-sandbox
Transaction-Science:wai/w3-4-playlists-abr
Transaction-Science:wai/w1-6-moq-layers
Transaction-Science:wai/w5-3-session-claim
Transaction-Science:wai/w4-3-packages
Transaction-Science:wai/w1-5-stage-receipts
Transaction-Science:wai/w3-http-delivery
Transaction-Science:wai/w5-staged-measurement
Transaction-Science:wai/w4-wai-pack
Transaction-Science:feat/transparency-log
Transaction-Science:energy/load-robust-tests
Transaction-Science:wai/land-18-staged-browser
Transaction-Science:ci/workflow-guard
Transaction-Science:ci/energy-hardware-linux-hw
Transaction-Science:ci/concurrency-groups
Transaction-Science:feat/mcp-extensions
Transaction-Science:jcp-energy/npu-needs-proof
Transaction-Science:jouleclaw-energy/apple-gpu-share
Transaction-Science:fix/ap2-mandate-authority
Transaction-Science:feat/decision-models
Transaction-Science:wai/land-17-staged-delivery
Transaction-Science:efficiency/energy-trace
Transaction-Science:energy/burn-floor-0-1-j
Transaction-Science:wai/land-16-binary-payloads
Transaction-Science:ci/macos-energy-widen
Transaction-Science:wai/land-14-energy-reporting
Transaction-Science:wai/land-15-key-discovery
Transaction-Science:energy/meters-on-real-linux-hardware
Transaction-Science:wai/land-13-parameter-set-identity
Transaction-Science:wai/land-12-registry-and-text
Transaction-Science:eoc-agent/model-span-provenance
Transaction-Science:energy/cost-keys-named-for-what-they-carry
Transaction-Science:energy/liveness-must-specs
Transaction-Science:openpay/token-independence-test
Transaction-Science:sandbox-meter/process-energy
Transaction-Science:sandbox-meter/cpu-rail-liveness
Transaction-Science:eoc-meter/process-energy
Transaction-Science:jcp-energy/process-energy
Transaction-Science:eoc-meter/cpu-rail-liveness
Transaction-Science:jouleclaw-energy/process-energy
Transaction-Science:jouleclaw-energy/cpu-rail-liveness
Transaction-Science:jcp-energy/cpu-rail-liveness
Transaction-Science:proof-cascade/process-energy
Transaction-Science:proof-cascade/cpu-rail-liveness
Transaction-Science:wai/research-taxonomy-wording
Transaction-Science:wai/land-09-int-mlicpp
Transaction-Science:wai/land-10-receipt-classes
Transaction-Science:wai/land-11-research-notes
Transaction-Science:wai/land-08-energy-classes
Transaction-Science:wai/land-07-int-decode-kernels
Transaction-Science:wai/land-06-ci-headline-tests
Transaction-Science:wai/land-05-prior-nnc
Transaction-Science:wai/land-04-codec-registry
Transaction-Science:wai/land-03-jpegai-no-libm
Transaction-Science:wai/land-02-determinism-tiers
Transaction-Science:feat/wai-video-workflow
Transaction-Science:ci/neural-e2e-guard
Transaction-Science:ci/jcp-pack
Transaction-Science:ci/tier2-packs
Transaction-Science:wai-webcodecs-negotiation
Transaction-Science:ci/macos-energy-backend
Transaction-Science:ci/joule-code-pack
Transaction-Science:joulecontract/run-negative-vectors
Transaction-Science:ci/jouleclaw-arm64-debuginfo
Transaction-Science:ci/run-conformance-verifiers
Transaction-Science:mesh/cost-calibration
Transaction-Science:diagnose/grounding-backing
Transaction-Science:wai/energy-operating-point
Transaction-Science:wai/2030-transport-landscape
Transaction-Science:wai/constraints-and-unidirectional
Transaction-Science:wai/determinism-tier-covers-emitted-medium
Transaction-Science:wai/moq-streaming-format
Transaction-Science:wai/mpeg-ai-part6-mapping
Transaction-Science:wai/prior-carriage-and-derivations
Transaction-Science:wai/receipt-classes-and-key-discovery
Transaction-Science:wai/task-fidelity
Transaction-Science:wai/transparency-emission
Transaction-Science:wai/c2pa-emitter
Transaction-Science:compliance/eu-scale-pack
Transaction-Science:compliance/composite-grade-v2
Transaction-Science:jcp/erasure-tombstone-v2
Transaction-Science:jcp/avoided-energy
Transaction-Science:jcp/erasure-tombstone
Transaction-Science:jcp/environment-binding
Transaction-Science:proof/stub-on-the-wire
Transaction-Science:compliance/composite-grade
Transaction-Science:mesh/context-cost-profile
Transaction-Science:ar-1-on-main
Transaction-Science:jcp/mcp-meta-receipt
Transaction-Science:wai/energy-binding
Transaction-Science:jcp/energy-coverage-relanded
Transaction-Science:jcp/energy-coverage
Transaction-Science:wai/video-byte-equality
Transaction-Science:eoc/multi-tenant-allocation
Transaction-Science:compliance/banding-function
Transaction-Science:ci-standards-workspaces
Transaction-Science:sandbox/honest-tier
Transaction-Science:proof/joule-ceiling
Transaction-Science:chore/rust-1.98-and-deps
Transaction-Science:wai-jpegai-full-wasm
Transaction-Science:wai-3d-landscape
Transaction-Science:wai-binding-real-decode
Transaction-Science:wai-determinism-tiers
Transaction-Science:wai-jpegai-wasm-demo
Transaction-Science:wai-jpegai-integrate
Transaction-Science:fix-byte-exact-includes
Transaction-Science:ci-windows-shell
Transaction-Science:jpegai-dequant-derive
Transaction-Science:ci-rust-setup
Transaction-Science:fl2-land
Transaction-Science:ci/cross-workspace-check
Transaction-Science:ci-enable
Transaction-Science:jcp-training-receipt
Transaction-Science:joule-code/repair-grant-literals
Transaction-Science:jcp-gateway-flow-relay
Transaction-Science:jcp-receipt-flow-seal
Transaction-Science:jcp-runtime-flow-gate
Transaction-Science:jcp-flow-witness
Transaction-Science:jcp-flow-lattice
Transaction-Science:rust-toolchain-1.97.1
Transaction-Science:score-binary-on-320fa1e
Transaction-Science:sandbox/cred-injection-2
Transaction-Science:sandbox/credential-injection
Transaction-Science:corpus-embedder-s5
Transaction-Science:jcp/cite
Transaction-Science:receipts-corpus-connector
Transaction-Science:jcp/grant-caveats
Transaction-Science:feat/jpegai-derive-inputs
Transaction-Science:feat/jpegai-weight-tools
Transaction-Science:feat/jpegai-icci-validation
Transaction-Science:jcp/x402-example-settlement
Transaction-Science:jcp/x402-bridge
Transaction-Science:jcp/receipt-payload-hash
Transaction-Science:fix/jpegai-pih-flags
Transaction-Science:feat/jpegai-e2e-chain
Transaction-Science:feat/jpegai-e2e-z
Transaction-Science:feat/jpegai-ton
Transaction-Science:jcp/dual-ceilings
Transaction-Science:feat/jpegai-pih
Transaction-Science:feat/jpegai-bitstream
Transaction-Science:feat/jpegai-icci-net2
Transaction-Science:feat/jpegai-icci-net
Transaction-Science:feat/jpegai-dwt
Transaction-Science:feat/jpegai-color
Transaction-Science:score-binary-rerank
Transaction-Science:feat/jpegai-efl
Transaction-Science:feat/jpegai-lef
Transaction-Science:feat/jpegai-efn
Transaction-Science:feat/jpegai-lsbs
Transaction-Science:feat/jpegai-reconstruct
Transaction-Science:jcp/orchestrate-profile-mapping
Transaction-Science:jpegai-sigma-index
Transaction-Science:hyperscale-floorfix
Transaction-Science:feat/jpegai-pipeline-dequant
Transaction-Science:feat/jpegai-e2e-synthesis
Transaction-Science:recovery/jpegai-decoders
Transaction-Science:wai/jpegai-synthesis-executor
Transaction-Science:jouletag-standard
Transaction-Science:wai/jpegai-gate-fixes
Transaction-Science:wai/int-transformer-executors
Transaction-Science:wai/int-transformer-kernels
Transaction-Science:energy/rapl-nvml-hardware-fixes
Transaction-Science:fix/omni-build-and-gguf-tokenizer
Transaction-Science:jouletable-standard
Transaction-Science:jouleclaw/gguf-decoders
Transaction-Science:wai/confidentiality-freshness
Transaction-Science:joulehook-standard
Transaction-Science:honest-counter-provenance
Transaction-Science:amd-kds-adapter
Transaction-Science:evidence-derived-grounding
Transaction-Science:mapping-physically-rooted-clarify
Transaction-Science:attested-efficiency-demo
Transaction-Science:efficiency-energy-attestation
Transaction-Science:mapping-attested-kernel
Transaction-Science:energy-counter-attestation
Transaction-Science:efficiency-surface
Transaction-Science:efficiency-spec
Transaction-Science:harness-econ
Transaction-Science:federation-quic-on-main
2026-10-24
delivery-telemetry §6.2, §6.7: science.transaction.wai-op is a String, as CTA-5006 §4 item 1 has a custom key
Some checks failed
wai-web reach builds / wai-web reach builds · the package of record, every output as recorded (pull_request) Successful in 3m0s
joule-moq-web browser client / joule-moq-web · browser end-to-end (macos) (pull_request) Successful in 11m28s
joule-moq-room room service / joule-moq-room, every target (pull_request) Successful in 1m40s
WAI conformance / v2 vocabulary · manifests validate as stated (pull_request) Successful in 29s
wai-web reach builds / wai-web reach builds · this tree's wai-web, every rung on its engine line (pull_request) Successful in 5m17s
standards workspaces build + test / joule-code-rs (joule-code/joule-code-rs, joule-code-rs, linux-arm64, true) (pull_request) Failing after 4m5s
WAI conformance / delivery telemetry · CMCD and CMSD against an independent library (pull_request) Successful in 13s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 29s
WAI conformance / quantum core and corpus under wasm32-wasip2 (wasmtime) (pull_request) Successful in 2m19s
WAI conformance / cross-arch byte-equality · linux (pull_request) Successful in 32s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 1m57s
standards workspaces build + test / macOS energy backends (pull_request) Failing after 6m16s
WAI energy receipts / energy receipts · linux (pull_request) Successful in 11m12s
wai-pack / wai-pack · linux (pull_request) Successful in 1m33s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 20m34s
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 15m39s
wai-quantum studio and desktop / studio · browser (pull_request) Successful in 4m1s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Failing after 22m54s
wai-pack / wai-pack · linux-arm64 (pull_request) Successful in 2m54s
wai-pack / wai-pack · the floor through a media prober (pull_request) Successful in 1m29s
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Successful in 7m21s
wai-pack / wai-pack · dependency licences (pull_request) Successful in 2m17s
wai-pack / wai-pack · independent verifier (Python) (pull_request) Successful in 7m9s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 23m48s
WAI conformance / cross-arch byte-equality · macos (pull_request) Successful in 29s
WAI conformance / codec wrappers · fuzz smoke, text decode limits, C entry points, provenance, the semantic path (pull_request) Successful in 1m34s
WAI energy receipts / energy receipts · macos (pull_request) Successful in 7m47s
wai-pack / wai-pack · macos (pull_request) Successful in 1m21s
wai-quantum studio and desktop / desktop app · macos (pull_request) Successful in 2m33s
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Successful in 1h2m11s
CTA-5006 (November 2022) §4, item 1: custom keys "MUST only utilize the String value type". §6.2 wrote the operation token as a Token; it now writes a String holding the token, and §6.7 reads only that form. A Token for the key is a value not of its type, so a reader ignores it and states so (`type`, §6.8; CTA-5006 §8.1 item 4). The §6.9 note that kept the former form is removed. - The emitter (CmsdStatic::encode) writes the String; the reader takes a String holding a token and ignores a Token; the CML differential encodes a String and its Table-1 check no longer takes a Token for the key; the unit test's expected field follows. - telemetry-conformance: the one value of expected/cmsd.json that held the key changes, `science.transaction.wai-op=crop` to `science.transaction.wai-op="crop"`; cmsd-read/wai-keys writes the String; new cmsd-read/wai-op-a-token: the Token ignored, `type`, and `ot` read beside it. - CHANGELOG notes it. Falsified: a reader that takes the Token again fails wai_telemetry verify on wai-op-a-token; an emitter that writes the Token again fails verify on expected/cmsd.json and the unit test; a differential whose check takes the Token fails on wai-op-a-token. Co-Authored-By: Claude Opus 5.5 <[email protected]>
wai SPEC §5, CHANGELOG, live-conformance README: the delivery bindings
Some checks failed
wai-web reach builds / wai-web reach builds · this tree's wai-web, every rung on its engine line (pull_request) Successful in 4m51s
repository checks / lockfiles, advisories, tests in CI, workflow hygiene, spec and section references, public text (pull_request) Failing after 2m25s
joule-moq-room room service / joule-moq-room, every target (pull_request) Successful in 1m55s
WAI conformance / v2 vocabulary · manifests validate as stated (pull_request) Successful in 19s
standards workspaces build + test / joule-code-rs (joule-code/joule-code-rs, joule-code-rs, linux-arm64, true) (pull_request) Successful in 4m27s
WAI conformance / delivery telemetry · CMCD and CMSD against an independent library (pull_request) Successful in 10s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 27s
WAI conformance / quantum core and corpus under wasm32-wasip2 (wasmtime) (pull_request) Successful in 2m13s
WAI conformance / cross-arch byte-equality · linux (pull_request) Successful in 32s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 2m59s
wai-pack / wai-pack · linux (pull_request) Successful in 1m44s
joule-moq-web browser client / joule-moq-web · browser end-to-end (macos) (pull_request) Has been cancelled
standards workspaces build + test / macOS energy backends (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · macos (pull_request) Has been cancelled
WAI conformance / cross-arch byte-equality · macos (pull_request) Has been cancelled
WAI conformance / codec wrappers · fuzz smoke, text decode limits, C entry points, provenance, the semantic path (pull_request) Has been cancelled
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Has been cancelled
WAI energy receipts / energy receipts · macos (pull_request) Has been cancelled
wai-pack / wai-pack · macos (pull_request) Has been cancelled
wai-pack / wai-pack · independent verifier (Python) (pull_request) Has been cancelled
wai-pack / wai-pack · the floor through a media prober (pull_request) Has been cancelled
wai-pack / wai-pack · dependency licences (pull_request) Has been cancelled
wai-quantum studio and desktop / studio · browser (pull_request) Has been cancelled
wai-quantum studio and desktop / desktop app · macos (pull_request) Has been cancelled
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Has been cancelled
WAI energy receipts / energy receipts · linux (pull_request) Has been cancelled
wai-pack / wai-pack · linux-arm64 (pull_request) Has been cancelled
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · linux (pull_request) Has been cancelled
SPEC §5: wai.live.e2ee's receipts may bind each object's identity, the AAD it is sealed under, formed as MOQT -22 encodes it on any path; wai.live.steering's decision and hops named in CMSD and CMCD for CDNs, none of it evidence; wai.live.provenance signed and verified segment by segment as the stream runs. CHANGELOG v0.4.0: one entry for the bindings. live-conformance README: joule_moq_e2ee_vectors also writes identity.json. Co-Authored-By: Claude Opus 5.5 <[email protected]>
c2pa-live README: what independent C2PA implementations report, 2026-10-22
The corpus read by the C2PA command-line tool 0.28.2 (built on the C2PA Rust library 0.91.2) and by the library 0.91.4 through an uncommitted harness, each under the corpus's anchor: - given an anchor and no EKU list, the library clears its accepted EKUs and keeps e-mail, time-stamping and OCSP by name: every claim-signing certificate is signingCredential.invalid and the time-stamping one Trusted; with its own default list as trust_config, the good initialization segments are Trusted, as with 0.27.22; - each per-segment manifest of every good stream, read against its own segment, is Trusted with assertion.bmffHash.match, and the manifest negatives get the §15 codes §12 gives them; - neither implements §19's validation (no source names the live video segment assertion, the segment-info scheme or session keys); their fragment path is Appendix A.5.4's Merkle form, which refuses every stream here; a segment alone is not read. live-provenance §13 and its header name implementations, plural. Co-Authored-By: Claude Opus 5.5 <[email protected]>
live-provenance §10.4, §11.7: signing as the stream runs, verifying as it arrives
§10.4: a packager signs a segment once its last chunk closes (the hard binding covers every chunk, C2PA 2.4 §19.2.1, §19.2.2); what it holds between segments, all public but its keys, so another packager continues from it (§10.3); what it checks before it releases a segment, each defect with §12's reason; session keys delivered ahead of their first segment (§19.4.3, §19.4.4.1, §19.6.2). A player that presents parts of a segment before its C2PA boxes presents them unverified: this revision signs whole segments. §11.7: a verifier checks each segment once the receipts of its group and of the groups before it are held, holds what does not grow with the stream, and stops at the first refusal. §13 names the new checks; capture-binding §11 names the live signer. Co-Authored-By: Claude Opus 5.5 <[email protected]>
live_provenance::live: sign each segment as its last chunk closes
LiveSigner writes the initialization segment, then a track's segment from its chunks as they travelled and its group receipt, or a take's from its chunks and the device's last commitment, under the per-segment C2PA Manifest Box method (C2PA 2.4 §19.3), the Verifiable Segment Info method in emsg (§19.4), or both, delivering later session keys in a segment's manifest (§19.4.3). Before it writes a segment it checks what a verifier will (§11.4 steps 1, 2, 4, 5, 6) and refuses with the verifier's Reason; a refusal changes nothing it holds. LiveState is what it holds between segments, all of it public, and resume() continues a stream from it. The corpus checks, in tests/live_provenance.rs and wai_live_provenance_vectors verify: the live signer writes every good stream byte for byte one segment at a time, the failover's second packager resumed from the first's state at its third segment; it refuses one defect of each kind with its reason, keeps its state, and the stream then continues as the corpus's; and every vector, verified segment by segment as it would arrive, gets the outcome the whole stream gets. No corpus file changes. Co-Authored-By: Claude Opus 5.5 <[email protected]>
live_provenance: a verifier that receives the stream as it arrives
verify() becomes LiveVerifier given a whole stream at once. LiveVerifier starts on the initialization segment (§11.3), takes each segment in the order received once the receipts of its group and of the groups before it are held (§11.4), and checks the end (§11.5). What it holds does not grow with the stream: the running count of the receipts' objects replaces the walk from firstGroup at every segment, receipts of groups passed are let go, and §11.5 keeps the first group a segment passed over. After a refusal every call gives that refusal again. Every vector of live-conformance/c2pa-live keeps its outcome through the wrapper: tests/live_provenance.rs is unchanged and passes. Co-Authored-By: Claude Opus 5.5 <[email protected]>
energy_steering_verify.py: §8.5 from the text
The second implementation reads cdn.json beside vectors.json: it writes the steering response's CMSD-Static field and the hops' CMSD-Dynamic entries, checks each response against its manifest, adds the decision's CMCD key, and attributes each response, with a List parser added to its own RFC 9651 parser and the CMSD reading §8.5 needs (field lines joined, a later version ignoring the data set, custom keys as Strings). It requires every case's outcome, reason and entry, that §8.5's table lists exactly the reasons it raises, and that each of fourteen mutated copies of cdn.json fails. Co-Authored-By: Claude Opus 5.5 <[email protected]>
energy-steering §8.5: a decision and its hops named in CMSD and CMCD, for CDNs
Steering already decides from the hops' signed per-hop records (live-metering §3) and writes the steering manifest players read; nothing a CDN parses named the decision or the hops. §8.5 binds them to the fields CDNs and players already parse: - a steering response SHOULD carry CMSD-Static `n`, `ot=m` and the custom String key science.transaction.wai-sd, the decision's digest (CTA-5006 §3, §4 item 1, §7 Table 1); a client checks it against the manifest's member (§8.4): bound, absent, or cmsd_decision_mismatch, keeping to the manifest either way; - a client applying a manifest SHOULD add science.transaction.wai-sd to its media requests' CMCD (CMCD-Session shard or the CMCD query), inserted in bytewise order with every other member unchanged, so a CDN's CMCD logs name the decision behind each request; the observation schema and the telemetry corpus are unchanged; - a hop SHOULD add its own CMSD-Dynamic entry with science.transaction.wai-hop, the key that signs its per-hop records (CTA-5006 §4 item 5, §5); it reads nothing else of the records, so it holds for any later per-hop record or receipt signed by that key; - "served by": a client's or auditor's check of which policy hops a response's CMSD-Dynamic names on the pathway it applied, with pathway_unknown, served_malformed, served_unknown_hop, served_off_pathway and served_out_of_order. The decision rule reads no CMSD value and no CMCD key but §4.4's (CTA-5006 §8.1 item 7, §9.2); WSP1, WSD1 and vectors.json keep their bytes. §8.5 has its own reasons table, so §10 and Reason::ALL are unchanged. SVTA Open Caching is named out of scope: its texts were not read for this revision. Code: energy_steering::cdn. Corpus: live-conformance/steering/cdn.json, written by `wai_energy_steering_vectors gen` from vectors.json and checked by `verify` and tests/energy_steering.rs (regenerates byte for byte; every case its outcome; §8.5 lists exactly cdn::Reason::ALL; every reason refuses a case). Co-Authored-By: Claude Opus 5.5 <[email protected]>
telemetry differential: CMSD read against the SVTA common-media-library
cml/differential.mjs now decodes every cmsd-read/ case with the library's CMSD decoders (@svta/cml-cmsd 1.1.1 over @svta/cml-structured-field-values 1.1.6, the locked versions) and requires: the library's value for every key the reader keeps; the library's failure exactly where the reader ignores a field whole; and, for every key the reader ignores for its type or calls unknown, that CTA-5006 §7 Table 1 and §4 item 1, written here in JavaScript and applied to the library's own Structured Field decoding, agree. Each remaining difference must be of a named kind and is counted: the library applies none of §8.1's reading rules (type, unknown, version); its decodeCmsdStatic returns a Token as a string, so `n=origin` and `n="origin"` decode alike; and its parser takes RFC 9651 Dates but not Display Strings. The README states each kind. Co-Authored-By: Claude Opus 5.5 <[email protected]>
delivery-telemetry §6.6–§6.10: CMSD read as CTA-5006 §8.1 has a client read it
CMSD was written (§6.1–§6.5) and never read. The reader (telemetry::cmsd::read) takes a response's CMSD-Static and CMSD-Dynamic field lines, joins each field's lines (RFC 9110 §5.3) and parses it whole (RFC 9651 §4.2), and then, as CTA-5006 (November 2022) §8.1 has it: a field that does not parse is ignored whole (item 1); a `v` above 1 ignores the data set (item 8); a value not of its key's Table 1 type is ignored alone (item 4); a key the header does not reserve and that is not a custom key is ignored (item 3), `tl` among them; custom keys are read only as Strings (§4 item 1). CMSD-Dynamic entries keep their order, origin first (§4). Everything ignored is stated with its field, entry, key and why. Table 1's full key set is read, `n`, `br` and `v` included; `sf` as a Token or an Inner List of Tokens, since Table 1 and Annex A differ; `nor` and `nrr` cut at `|`, a range element empty or start-end. The emitter now refuses `st=ll`, which Table 1 does not have (no corpus byte changes: no CMSD case used it). §6.9 states where CTA-5006 is read one way, among them that §6.2 writes `wai-op` as a Token, which §4 item 1 does not allow for a CMSD custom key; the corpus keeps §6.2's bytes and the reader takes a Token or a String. The corpus gains cmsd-read/ (29 cases, nine in the shape of CTA-5006 Annex A's examples, written with the corpus's own values, since CTA-5006 carries no reproduction licence) and expected/cmsd-read.json; `wai_telemetry verify` reads every case and requires each field the crate writes to read back as the description it came from. Every existing file of telemetry-conformance keeps its bytes. Co-Authored-By: Claude Opus 5.5 <[email protected]>
wai-rs telemetry: RFC 9651 parsed whole, for readers of fields others write
The whole-grammar Structured Field parser energy steering wrote for a client's CMCD (Dates, Display Strings, Byte Sequences checked as base64, parameters on members) moves to telemetry::sf::full, with a List parser beside its Dictionary parser and the RFC 9110 §5.3 joining of field lines. energy_steering re-exports it as `sf`, so its callers and tests are unchanged; the CMSD reader of delivery-telemetry §6.6 uses the same parser. The subset parser the reports' own round trips use stays as it was. Co-Authored-By: Claude Opus 5.5 <[email protected]>
confidentiality §8.4, §11.6, §11.7: receipts bound to each object's identity, and the transport's revisions
- §8.4: an object's identity is the AAD secure objects §3.5 forms for it, as MOQT -22 encodes its fields; an identity-bound object receipt (leaf_version 3) binds it beside the labelled leaf's fields; whoever holds the object and its receipt forms the identity as the object arrived and refuses identity_mismatch, naming group_object, publisher_priority or immutable_properties; identity_malformed for a receipt whose identity is not its own. A publisher of a sealed track SHOULD sign in this form (§8.1). The reasons are §8.4's own, so §13 and vectors.json keep their codes. - §11.6: -18 carries -22's integers and pairs and keeps Immutable Properties' bytes (-18 §1.4.1, §1.4.3, §12.7); -16 writes QUIC's integer (-16 §1.4, RFC 9000 §16), so a -16 endpoint or bridge re-encodes the pairs of Immutable Extensions (-16 §11.2) as -22 writes them before it forms the AAD; a value past 2^62 - 1 does not cross -16. - §11.7: the working group's milestone "Request publication of Publication and Subscription Protocol to IESG", due 31 December 2026, and what the next revision of this text re-reads when it is made; the Key ID stays at 0x3A4A until secure objects and the registry agree. - §4.4, §8.1, §8.2 corrected: WAI_INNER_DIGEST is BLAKE3 over the payload alone, and a receipt's content hash is jwp-receipts §2.1's (domain moq-jwp:object\x01); the text said they were the same hash. The corpus's bytes are unchanged; its README says which is which. - Texts read: MOQT -18 and -16 at the sections named, RFC 9000 §16, the MoQ working group's milestones as listed on 22 October 2026. - joule-moq and joule-moq-relay READMEs: the identity-bound receipt, the door's check, the -16 re-encoding row, and the runs of 2026-10-22 through joule-moq-relay at every draft pair and through another implementation's open-source relay built from source at -16 and at -18, on loopback: every sealed object's identity matched its receipt and every object opened; every tamper was refused. Co-Authored-By: Claude Opus 5.5 <[email protected]>
e2ee corpus: identity.json, identity-bound receipts over sealed objects, and its second check
joule_moq_e2ee_vectors gen now also writes live-conformance/e2ee/identity.json (WAI confidentiality §8.4, §11.6), from the corpus's seeds: a sealed video track's group whose object receipts bind each object's identity, in the WJR1 form a receipts track carries, with each sealed payload, content hash, identity and leaf; four copies with one defect each (an identity of another object: identity_malformed; an identity dropped and a priority restated inside one: unverified; an identity length below 13: malformed); and thirteen arrivals of those objects at a hop, at -22, -18 and -16, each checked against its receipt: pass, or identity_mismatch naming group_object, publisher_priority or immutable_properties. The -16 arrivals state the pairs as -16 carries them and as -22 encodes them, and one that takes -16's bytes for -22's fails, which is why §11.6 has a -16 hop re-encode them. vectors.json regenerates byte for byte; verify checks both files. e2ee_verify.py, the second implementation, reads the bundle in jwp-receipts §2.7's binary form with the third leaf form, checks the group's signature under the publisher's key (strict Ed25519), rebuilds each leaf from the sealed payload's content hash and the identity and walks it to the signed root, re-encodes -16's pairs (QUIC's integer) as -22 encodes them, and names the part that differs; seven mutated copies of identity.json must each fail. Falsified: a v3 leaf without the identity fails every group; skipping the -16 re-encoding fails draft16-converted. Co-Authored-By: Claude Opus 5.5 <[email protected]>
joule-moq-interop: wai-sealed, every object a secure object and every receipt identity-bound
The wai-receipts scenario with each media object sealed as an MoQ secure object (draft-ietf-moq-secure-objects-01 on MOQT -22's objects, as WAI confidentiality §4 places it: suite 0x0004, the Key ID inside Immutable Properties, no receipt property) and each object receipt bound to its identity (§8.4). The subscriber forms each object's identity from what arrived, checks it against its receipt, and opens the object under that same AAD. It shows whether a relay carries the bytes secure objects authenticates unchanged. `--tamper identity` sends one object with one more pair inside its Immutable Properties than its seal and receipt bound; scripts/local.sh runs wai-sealed at each draft and across drafts, and requires that tamper to fail. Co-Authored-By: Claude Opus 5.5 <[email protected]>
joule-moq: receipts bound to the object's identity, and a door that holds objects to it
A third leaf form, the identity-bound one of WAI confidentiality §8.4 (leaf_version 3): the labelled leaf's fields under the domain moq-jwp:merkle-leaf\x03, then the object's identity, the SECURE_OBJECT_AAD of draft-ietf-moq-secure-objects-01 §3.5 as MOQT -22 encodes it: Group ID (8 bytes), Object ID (4), Publisher Priority (1) and the value of its Immutable Properties pair. The receipt carries the identity (u32 length, then the bytes, after the class), so a hop checks what it forwards in the clear against what the publisher signed, with no key: the priority, the Key ID and every other immutable pair. - receipt: object_identity, identity_as_received (one Immutable Properties pair or none; an object read from -16 through the bridge has -22's encoding), check_identity with the part that differs (identity_difference: group_object, publisher_priority, immutable_properties, length), ReceiptBuilder::add_identity_object and identity_for; the label requires a class beside an identity and an identity of the receipt's own Group ID and Object ID; the binary form reads leaf_version 3 and refuses an identity shorter than 13 bytes or longer than 13 + 2^16 - 1. - joule-moq-relay: the door forms each object's identity as it arrived (the header's priority, or the track's DEFAULT_PUBLISHER_PRIORITY it inherits, as fan-out uses) and refuses identity_mismatch; the sealed-objects test's receipts are identity-bound and each subscriber checks them, and a new test refuses at the door a sealed object whose Immutable Properties changed after its receipt. Every receipt in the legacy and labelled forms keeps its bytes: the new form is opt-in, and ObjectReceipt's new field is absent from the JSON and binary forms when unset. Falsified: check_identity passing anything fails the unit test and the door test (group 1 delivered); a leaf that drops the identity fails the unit test; an identity that ignores Immutable Properties fails the as-received unit test. Co-Authored-By: Claude Opus 5.5 <[email protected]>