| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
All checks were successful
no-vanity-metrics / Scan committed Markdown for vanity metrics (pull_request) Successful in 3s
standards workspaces build + test / jcp-rs (pull_request) Successful in 1m19s
standards workspaces build + test / sandbox-rs (pull_request) Successful in 2m15s
standards workspaces build + test / smart-byte-rs (pull_request) Successful in 2m40s
Closes §5 step 3. The end-to-end example previously bound content-ids it made
up — ContentId::of_bytes(b"jcp-receipt/e2e-allow") and friends. That
demonstrated the envelope's shape while proving nothing about its bindings.
Now every id comes from an artifact that was actually produced:
- The authority receipt is sealed from the decision that just happened via
jcp_receipt::seal, and **verified on its own terms** before being bound. A
receipt that would not survive its own family's verifier has no business in
an AR-1 envelope.
- The work receipt is built by sandbox_meter::Receipt::build over the devices
the meter actually reported — three on this host (CPU, GPU, ANE). `build`
enforces the provenance/measured coupling itself, so a mislabelled device is
refused there rather than propagating into AR-1.
## The interop wrinkle worth recording
The two families disagree about content-id *presentation*:
sandbox_schema::ContentId(pub String) "b3:<base64url of 32 bytes>"
jcp_schema::ContentId(pub [u8; 32]) raw digest
Both are BLAKE3 over the same canonical bytes, so they differ only in how they
render. Re-addressing the work receipt's canonical core with jcp's hasher yields
the identical digest — an exact binding, not a hash of a hash. A debug assertion
pins the sandbox rendering so the assumption fails loudly if it ever changes.
This is the kind of seam that only appears when two standards are actually
composed rather than described as composable, and it is why step 3 was worth
doing separately from step 6.
Run on this host:
2. decide() → allow, 9750000 µJ remaining; authority receipt sealed +
verified, id 3296ba365377
3. work metered — 8075375 µJ [HwShunt] over 0.29s via ioreport-energy-model
work receipt sealed over 3 metered device(s), id 44437820e66e
5. verified from the envelope alone — 820 byte canonical core
ar-verify:
ok binding:authority grant cf97d7e7393a… · verdict allow · chain depth 2
ok binding:work 8075375 µJ [HwShunt] · receipt 44437820e66e…
VERIFIED
Co-Authored-By: Claude Opus 4.8 <[email protected]>
|
||
| .. | ||
| jcp-a2a | ||
| jcp-action-receipt | ||
| jcp-bridge | ||
| jcp-channel | ||
| jcp-cite | ||
| jcp-cli | ||
| jcp-conformance | ||
| jcp-efficiency | ||
| jcp-energy | ||
| jcp-flow | ||
| jcp-gateway | ||
| jcp-grant | ||
| jcp-intercept | ||
| jcp-orchestrate | ||
| jcp-policy | ||
| jcp-prompt | ||
| jcp-receipt | ||
| jcp-runtime | ||
| jcp-schema | ||
| jcp-threshold | ||
| jcp-trace | ||
| jcp-wire | ||
| jcp-x402 | ||