assay_runner_linux/lib.rs
1// Cgroup v2 placement uses raw libc syscalls (pidfd_open, pidfd_send_signal)
2// for race-free PID handling during graceful kill. The same allow lived on
3// `assay-cli/src/main.rs` before the Slice 3 move. The workspace default
4// remains `unsafe_code = "deny"`; this crate is the platform adapter where
5// such syscalls are intentional and unavoidable.
6#![allow(unsafe_code)]
7#![warn(unsafe_op_in_unsafe_fn)]
8#![warn(clippy::undocumented_unsafe_blocks)]
9
10//! Linux-only platform adapter for the Assay-Runner candidate.
11//!
12//! This crate is the Phase 2D Slice 3 result of the Assay-Runner extraction
13//! roadmap (see `docs/reference/runner/extraction-roadmap.md`). It hosts
14//! Linux-specific runner platform primitives that previously lived inside
15//! `crates/assay-cli/` and therefore prevented the runner candidate from
16//! being moved without dragging `assay-cli` along.
17//!
18//! Current scope is intentionally narrow: only cgroup v2 placement
19//! (`CgroupManager`, `SessionCgroup`). No eBPF or monitor adapter lives
20//! here yet — that boundary work is Slice 4 per the roadmap, and is not
21//! opened by this crate's existence. Likewise, this crate does not
22//! provide a platform-abstraction trait; macOS and Windows support are
23//! out of scope until separate platform spikes open under
24//! `platform-and-extraction-readiness.md`.
25//!
26//! The crate is `publish = false` until Slice 7 (repository extraction).
27
28mod cgroup;
29
30pub use cgroup::{CgroupManager, SessionCgroup};