dispatch: capability constraints, and delivery over bearers that cannot answer #87
Merged
dcharlot
merged 1 commit from 2026-09-10 12:23:05 -04:00
wai/constraints-and-unidirectional into main 2026-09-10
dispatch: capability constraints, and delivery over bearers that cannot answer
Some checks failed
no-vanity-metrics / Scan committed Markdown for vanity metrics (pull_request) Successful in 3s
standards workspaces build + test / aac-rs (pull_request) Successful in 38s
standards workspaces build + test / joule-code-rs (pull_request) Successful in 43s
standards workspaces build + test / eoc-rs (pull_request) Successful in 1m49s
standards workspaces build + test / jcp-rs (pull_request) Successful in 1m13s
standards workspaces build + test / proof-rs (pull_request) Successful in 1m11s
standards workspaces build + test / sandbox-rs (pull_request) Successful in 2m0s
standards workspaces build + test / jouleclaw-rs (pull_request) Successful in 5m8s
standards workspaces build + test / joulecontract-rs (pull_request) Successful in 43s
standards workspaces build + test / map-rs (pull_request) Successful in 39s
standards workspaces build + test / smart-byte-rs (pull_request) Successful in 2m34s
standards workspaces build + test / mesh-rs (pull_request) Successful in 1m30s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 31s
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 / openpay (pull_request) Successful in 3m51s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 1m16s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 30s
standards workspaces build + test / arl-rs (pull_request) Successful in 9m17s
standards workspaces build + test / joule-ui-rs (pull_request) Successful in 10m26s
standards workspaces build + test / jouledesk-rs (pull_request) Successful in 11m6s
standards workspaces build + test / joulehook-rs (pull_request) Successful in 12m27s
standards workspaces build + test / sense-rs (pull_request) Successful in 11m33s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 1m30s
WAI conformance / cross-arch byte-equality · macos (pull_request) Successful in 22s
WAI conformance / cargo-class corpora · windows (pull_request) Has been cancelled
WAI conformance / cross-arch byte-equality · windows (pull_request) Has been cancelled
Two seams the tree could not express, both surfaced by the landscape survey.
CAPABILITY CONSTRAINTS. WAI dispatch treats support as binary — a sink either
claims a capability or does not. Real sinks support a codec TO A LEVEL: up to a
resolution, a frame rate, a bit depth, a profile. "This capability, but only to
4K60 10-bit, this profile" is the normal case and was unexpressible, so partial
support failed at DECODE time rather than SELECTION time, and rendition selection
had nothing to evaluate and deferred to a deployer policy the spec never states.
Ingests the constraint-set grammar and register pattern from AMWA's ratified
Receiver/Sender Capabilities work (BCP-004-01 / -02, v1.0.0) — ORed sets of
enum/min/max constraints over register-named parameters. Grammar and pattern
only: not the transport, not the discovery model, and explicitly NOT the
pre-flight negotiation framing, because capability-plus-budget binding before
execution is already owned by JCP and two mechanisms for one job is worse than
none.
The honest limit is stated in §3 rather than hidden: the ratified registers are
broadcast-essence-shaped and cover only WAI's conventional media families. There
are no entries for neural, quantum, world or haptic, and WAI must author those
itself — until it does, those capabilities remain unconstrained, which is the
true state rather than a pretended one.
UNIDIRECTIONAL DELIVERY. Three assumptions quietly presume the sink can talk
back: jwp-receipts assumes relay-chain linkage, targeting presumes the source
learns something about the sink, and pre-emption has no signer class because
nothing in WAI has needed to assert authority over a sink before. Terrestrial
broadcast, satellite and multicast object carriage break all three, and none is
repaired by defining a bearer.
* Sink-evaluated predicates (§2): the object carries a condition the SINK
evaluates against local state the source never learns, under a
predicate-equivalence contract in the shape of state-feeds §3. The
specifiable property is determinism and auditability, NOT enforcement —
every sink receives every byte and can lie about its own state, and this
text says so. The real claim is narrow and worth having: the source learns
nothing, which is the dual of source-side targeting.
* Authority and pre-emption (§3): pre-emption is the highest-authority
instruction a media object can carry — it displaces what a person chose to
watch — and today an object either lacks the field or has one anyone may
set. Requires a sink-held trust anchor provisioned out of band; a trust
anchor delivered over the bearer it authorises is not one. A valid signature
establishes who signed, never that they were entitled to.
* Detached receipts (§4): the deliverable is an honest profile, not a proof.
Such receipts attest WHAT WAS TRANSMITTED, not what was received or
rendered, and MUST declare the bearer unidirectional. No receipt can prove
rendering over a bearer with no return path; what this prevents is the
quieter error of a receipt saying "delivered" because a transmitter
transmitted, on a link that cannot tell it whether anyone was listening.
Generalised from deployed national early-warning systems, which are where a sink
evaluating a condition the source never learns has had to work at scale.
Ingest queue items 10 and 11 (#80 §4.2, §4.3).
Co-Authored-By: Claude Opus 5 <[email protected]>