open-standards/joule-code/joule-code-rs/crates
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Transaction Science adf5774f9d sec: align the MLS dev-dependency stack, removing hpke-rs 0.2.0 and its four advisories
`joule-code-collab` dev-depended on openmls 0.6 / openmls_rust_crypto 0.3 while
`joule-moq-mls` runs openmls 0.9.1 / 0.6.0 in production. Two generations apart
meant a second, older MLS implementation in the test graph, and with it
hpke-rs 0.2.0: RUSTSEC-2026-0071 (nonce reuse in an HPKE context, 9.3), -0070
(incorrect length encoding on KDF export, 8.2), -0069 and -0072 (missing
all-zero X25519 shared-secret check).

Nothing shipped it — the edge is `[dev-dependencies]` only — but there is no
reason to test RFC 9420 against an implementation production does not use, and
"it is only in the test graph" is a weaker answer than not having it. Pinning
the dev-deps to the production generation removes hpke-rs 0.2.0,
hpke-rs-crypto 0.2.0, hpke-rs-rust-crypto 0.2.0 and openmls 0.6.0 outright.

One API change: openmls 0.9 takes the crypto backend rather than the whole
provider in `export_secret`, which is the call joule-moq-mls already makes.
`tests/mls_keying.rs` passes.

The four allow-list entries are removed with them, which is the check working
as intended: an entry that no longer matches anything fails the run, so an
excuse cannot outlive the exposure it was written for.

Also corrects two allow-list reasons that overstated the remaining quick-xml
exposure. I had recorded the openpay 0.37.5 copy as a live exposure on the ISO
20022 ingestion path. It is not: `open-payments-iso20022 1.0.10` declares
quick-xml but never calls it — the crate ships serde-annotated types (3 files,
~2.2k lines, no `quick_xml` reference anywhere) and the parsing is ours, in
op-iso20022's codec, which binds the workspace 0.41. The copy is compiled and
never executed. The smart-byte 0.39.4 copy parses macOS plists via iroh, not
counterparty XML.

Co-Authored-By: Claude Opus 5 <[email protected]>
2026-10-22 12:51:39 -04:00
..
joule-code-cargo joule-code: stand up the Joule Code standard (v0.1.0 draft) 2026-06-02 14:07:00 -04:00
joule-code-cascade joule-code: add generic FnStage to the cascade (L1/L2/L3 binding) 2026-06-03 12:50:43 -04:00
joule-code-collab sec: align the MLS dev-dependency stack, removing hpke-rs 0.2.0 and its four advisories 2026-10-22 12:51:39 -04:00
joule-code-conformance joule-code-conformance: the header undersold the harness by a whole suite 2026-10-20 13:51:38 -04:00
joule-code-identity joule-code-identity: a Roster — resolve did:key → {label, kind} for audit 2026-06-11 19:27:37 -04:00
joule-code-jcp jcp: a ModelIn caveat says which model a grant authorizes, and the frame names the model it runs 2026-10-17 04:21:21 -04:00
joule-code-joulecontract joule-code-joulecontract: an obligation nothing checked is not discharged 2026-10-17 16:08:58 -04:00
joule-code-receipt specs: a vendor counter is a hardware reading only while it is demonstrably live 2026-10-01 01:10:36 -04:00
joule-code-release joule-code-release: the whole chain end to end, as one runnable artifact 2026-06-11 00:32:56 -04:00
joule-code-remediate joule-code-remediate: formal_fix prints each proof figure with its grade, not as "measured" 2026-10-14 20:01:38 -04:00
joule-code-review family: the methodology layer, made auditable — spec, review, vericoding 2026-06-10 17:45:47 -04:00
joule-code-reviewer tooling: meter-cmd (energy bracket) + gen-fixture (review fixtures) 2026-06-12 07:04:06 -04:00
joule-code-schema joule-code: stand up the Joule Code standard (v0.1.0 draft) 2026-06-02 14:07:00 -04:00
joule-code-spec family: the methodology layer, made auditable — spec, review, vericoding 2026-06-10 17:45:47 -04:00
joule-moq Merge remote-tracking branch 'origin/main' into joule-moq/e2ee-web 2026-10-20 08:30:25 -04:00
joule-moq-ingest joule-moq-ingest: a grant whose ai attribute is not a model digest is grant_invalid (live-rooms §4.4) 2026-10-21 07:24:54 -04:00
joule-moq-mls joule-moq-mls, joule-moq-web, joule-moq-room: clippy notes on the new code 2026-10-20 08:57:05 -04:00
joule-moq-relay joule-moq-relay test: the client closes after the relay holds its session 2026-10-21 07:39:04 -04:00
joule-moq-room sec: close the advisory backlog across every workspace, and move the WASM sandbox off a runtime with three critical escapes 2026-10-22 09:44:59 -04:00
joule-moq-web Merge origin/main into wai/ad-presentation (room e2e window wait) 2026-10-21 20:38:40 -04:00
jwp jwp: a zstd payload over the cap is rejected, not truncated 2026-10-17 04:36:53 -04:00
lockstep-quic lockstep-quic: correct the root cause — macOS launch context, not a quinn bug 2026-06-27 07:12:43 -04:00