| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
All checks were successful
standards workspaces build + test / jouleclaw-rs (push) Successful in 1m44s
standards workspaces build + test / aac-rs (push) Successful in 33s
standards workspaces build + test / joule-code-rs (push) Successful in 37s
standards workspaces build + test / joulecontract-rs (push) Successful in 28s
standards workspaces build + test / map-rs (push) Successful in 27s
standards workspaces build + test / mesh-rs (push) Successful in 23s
standards workspaces build + test / openpay (push) Successful in 1m18s
standards workspaces build + test / eoc-rs (push) Successful in 1m55s
standards workspaces build + test / jcp-rs (push) Successful in 1m17s
standards workspaces build + test / proof-rs (push) Successful in 1m12s
standards workspaces build + test / sandbox-rs (push) Successful in 2m7s
standards workspaces build + test / smart-byte-rs (push) Successful in 2m30s
standards workspaces build + test / arl-rs (push) Successful in 2m19s
standards workspaces build + test / joule-ui-rs (push) Successful in 2m28s
standards workspaces build + test / jouledesk-rs (push) Successful in 2m32s
standards workspaces build + test / joulehook-rs (push) Successful in 2m51s
standards workspaces build + test / sense-rs (push) Successful in 2m17s
The generator's doc says "the vectors are exactly what the in-repo tests assert",
but the in-crate tests assert properties, not the published values, and coverage
across the five classes is uneven:
- C1 -- c1_replay_is_deterministic is assert_eq!(f(), f()). The published replay
digest is compared to nothing.
- C2/C3 -- real relational checks (changing trust or source changes the id; the
burst fires a highlight and something surfaces), but the published id,
highlights and decisions are never checked.
- C4/C5 -- these do pin their published values, by restating them.
So three of five classes could publish anything unnoticed. Measured, not assumed:
moving one event in the scripted stream (tick 40 -> 41) leaves all five in-crate
tests GREEN, while the new pack test fails on both the C1 digest and the drift
check.
tests/pack.rs holds every class to the file on disk: the generator still emits
both published files (run into a temp dir via CARGO_BIN_EXE so the pack is never
touched); the C1 replay digest and C2 event id recompute; the C3 highlights and
decisions match in full rather than "at least one surfaces"; C4 still answers
recall with no model call and escalates the open-ended query; and the C5 chain
verifies and breaks where the pack says.
The sealed envelope is verified from the pack and RFC 9052 alone -- its
COSE_Sign1 is parsed with a hand-written CBOR reader rather than assumed, so the
protected header is checked to really be {1:-8, 4:steward} before anything is
verified over it, then re-sealing the first link must reproduce the published
bytes. A flipped payload byte and a stranger's key are included as negatives.
One gap recorded rather than papered over: every published C3 decision is
`surface`. The README calls them "surface/hold decisions", but no vector
exercises the gate's hold path. The test asserts that as the current state, with
a message saying to replace it with a real surface/hold check once a hold vector
exists.
The pack is current -- regenerating matched both files byte for byte.
Co-Authored-By: Claude Opus 5 <[email protected]>
|
||
| .. | ||
| crates | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||