5caea5e501
Nothing in CI compiled this crate. `.rs` lives under `apps/`, so the change classifier matched a Rust edit as `frontend` and ran the TypeScript matrix, which cannot notice a Rust error — the crate's 58 unit tests had never executed once, and neither would the pipe-drain tests in the previous commit. Adds a `rust` lane and a Linux `cargo test --lib` job. Linux on purpose: the pipe-drain fixtures need a real process tree whose grandchild inherits the parent's stdout and are `#[cfg(unix)]`, so a Windows runner would compile them out and report green over zero coverage. The Windows half of that contract is `-SelfTestPipeDrain` on the existing Windows lane.