| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
Some checks failed
standards workspaces build + test / aac-rs (push) Successful in 35s
standards workspaces build + test / joule-code-rs (push) Successful in 41s
standards workspaces build + test / jouleclaw-rs (push) Failing after 2m32s
standards workspaces build + test / joulecontract-rs (push) Successful in 39s
standards workspaces build + test / map-rs (push) Successful in 33s
standards workspaces build + test / mesh-rs (push) Successful in 29s
standards workspaces build + test / openpay (push) Successful in 1m43s
standards workspaces build + test / eoc-rs (push) Successful in 1m55s
standards workspaces build + test / jcp-rs (push) Successful in 1m22s
standards workspaces build + test / proof-rs (push) Successful in 2m53s
standards workspaces build + test / sandbox-rs (push) Successful in 2m15s
standards workspaces build + test / smart-byte-rs (push) Successful in 2m35s
standards workspaces build + test / arl-rs (push) Successful in 2m33s
standards workspaces build + test / joule-ui-rs (push) Successful in 2m32s
standards workspaces build + test / jouledesk-rs (push) Successful in 2m29s
standards workspaces build + test / joulehook-rs (push) Successful in 2m22s
standards workspaces build + test / sense-rs (push) Successful in 2m10s
`joulehook/conformance/v1/` was the one pack in the repo that nothing read -- no test, not even a generator. Its README advertises the vectors as reproducible, so anyone building an adapter is told to check against them, while nothing checked that the reference gate still matched them. Adds crates/joulehook-hook/tests/conformance.rs, which reads decisions.json from disk -- the same bytes a third party would -- and drives the real gate binary once per (case, host), asserting the decision the pack says every conformant adapter MUST emit. All eight pairs pass: claude-code permissionDecision, cursor permission, windsurf exit-code-2, antigravity allow_tool, for both a granted and an ungranted tool. Only the decision is asserted; the pack states the reason text is not normative, so pinning it would turn a copy-edit into a CI failure. Falsified rather than assumed: flipping the pack's `expected` for the Read case makes the test fail with the mismatching host named, so it is bound to the pack and not to hardcoded values. It also asserts the pair count, so a wrong pack path fails loudly instead of silently checking nothing. `deny-receipt.hex` is NOT asserted, and the file says why. The pack pins it at 598 bytes "byte-identical on every run"; the gate is still byte-deterministic -- repeated runs agree exactly -- but now emits 677, because the JCR-1 payload gained a `payload_hash` field, taking the CBOR map from 15 entries to 16. Decoding both yields the same verdict, deny_reason, steward, subject and verified, so receipt.json's claims still hold: this is a stale vector, not a regression. Refreshing a published signed security vector is a normative change to a public pack, so it is left to a maintainer rather than quietly regenerated. Co-Authored-By: Claude Opus 5 <[email protected]> |
||
| .. | ||
| joulehook-hook | ||
| joulehook-mcp | ||
| joulehook-meter | ||
| joulehook-proxy | ||