open-standards/sense/sense-rs
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Transaction Science a8fda668d8
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
sense: read the published conformance pack; C1 had no coverage at all
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]>
2026-09-21 14:01:13 -04:00
..
crates sense: read the published conformance pack; C1 had no coverage at all 2026-09-21 14:01:13 -04:00
.gitignore sense: the ambient context standard (v0.1) 2026-06-13 21:39:39 -04:00
Cargo.lock chore(deps): cargo update across the workspace; eoc toolchain → 1.98.0 2026-08-26 07:39:26 -04:00
Cargo.toml msrv: raise the rust-version floor to 1.97 across the workspaces 2026-07-23 00:17:08 -04:00