fix(deps): crossbeam-epoch 0.9.20 for RUSTSEC-2026-0204 - #4
Conversation
RUSTSEC-2026-0204: invalid pointer dereference in the `fmt::Pointer` impl for `Atomic` and `Shared` when the underlying pointer is invalid. Fixed upstream in 0.9.20; this is a patch-level lockfile bump inside the existing semver range, so only Cargo.lock changes. Found by running the fleet lane-liveness dead-man's switch: whisper.apr, pepita and pzsh Nightly Bench had all been failing for exactly 23 days on this one advisory, matching its publication date. A scan then found 90 of 94 local repos carrying the vulnerable 0.9.18. Verified: `cargo audit` no longer reports RUSTSEC-2026-0204 for this repo. Other pre-existing advisories, where present, are untouched. Refs PMAT-203 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…e gate let in
RUSTSEC-2026-0204: invalid pointer dereference in crossbeam-epoch's fmt::Pointer
impl for Atomic/Shared. Patch-level lockfile bump, 0.9.18 -> 0.9.20.
The rest of this commit is debt that accumulated because the local pre-push gate
could never pass, so every push had to use --no-verify and nothing was enforced:
* `cargo test --lib` ERRORS on this crate -- "no library targets found in
package cohete". cohete is bin-only, so that check was structurally
impossible, not merely failing.
* 84 rustfmt diffs across all 9 source files.
* 2 clippy errors under -D warnings.
A gate that cannot pass is worse than no gate: it trains everyone to bypass it,
and then real findings ride in behind the bypass. Fixed here:
* clippy: `map(..).unwrap_or(false)` -> `is_ok_and` in runner.rs; three
`usize as u32` truncating casts -> `u32::try_from` in benches; dropped a
redundant `use serde_json;`.
* rustfmt: applied across all 9 files.
The hook itself is in .git/hooks (untracked, so this commit cannot carry it); it
now runs `cargo test` instead of `cargo test --lib` so it works on a bin-only
crate, and prints failure output instead of a bare ❌.
Verified: format, check, clippy -D warnings and tests all pass -- the gate is
green here for the first time -- and `cargo audit` no longer reports 0204.
Refs PMAT-203
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
⛔ Blocked on paiml/.github#44All three red checks —
paiml/.github#44 appends one Worth noting the symmetry: the same |
RUSTSEC-2026-0204
crossbeam-epoch0.9.18 → 0.9.20. Invalid pointer dereference in thefmt::Pointerimpl forAtomic/Shared. Patch-level lockfile bump.While landing the bump, the local pre-push gate turned out to be structurally unpassable:
cargo test --libno library targets found in package cohete— this crate is bin-only, so it could never passcargo fmt --all --checkcargo clippy -- -D warningsA gate that cannot pass is worse than no gate: every push had to use
--no-verify, so nothing was ever enforced — which is exactly how the unformatted code and the clippy errors accumulated behind it.Fixed here:
map(..).unwrap_or(false)→is_ok_and(runner.rs); three truncatingusize as u32casts →u32::try_from(benches/); dropped a redundantuse serde_json;The hook itself lives in
.git/hooks(untracked, so this PR can't carry it). Locally it now runscargo testinstead ofcargo test --lib, so it works on a bin-only crate, and prints failure output instead of a bare ❌.Verification
format,
cargo check,clippy -D warningsand tests all pass — the gate is green here for the first time — andcargo auditno longer reports 0204.Related
Also found: all three of this repo's scheduled workflows were in
disabled_inactivity(GitHub's 60-day auto-disable), unnoticed for ~4 months because cohete was outside the fleet lane-liveness scope.NightlyandNightly Benchmarksare re-enabled;Nightly E2Eneeds the offline Jetson. See paiml/infra#167 and PMAT-202.🤖 Generated with Claude Code