pub struct CompilationConfig {
pub confidence_threshold: f64,
pub min_local_time_ms: u64,
pub remote_speedup_threshold: f64,
pub build_slots: u32,
pub test_slots: u32,
pub check_slots: u32,
pub build_timeout_sec: u64,
pub test_timeout_sec: u64,
pub bun_timeout_sec: u64,
pub external_timeout_enabled: bool,
}Fields§
§confidence_threshold: f64Minimum confidence score to intercept (0.0-1.0).
min_local_time_ms: u64Skip interception if estimated local time < this (ms).
remote_speedup_threshold: f64Minimum expected speedup ratio (local_time / remote_time) to offload. If predicted speedup < threshold, run locally. Default: 1.2 (20% faster). Set to 1.0 to always offload when other criteria are met.
build_slots: u32Default slot estimate for build commands (cargo build, gcc, etc.).
test_slots: u32Default slot estimate for test commands (cargo test, nextest). Tests typically use more parallelism than builds.
check_slots: u32Default slot estimate for check/lint commands (cargo check, clippy). These are typically faster and use fewer resources.
build_timeout_sec: u64Timeout in seconds for build commands. Build commands (cargo build, gcc, etc.) typically complete faster than tests.
test_timeout_sec: u64Timeout in seconds for test commands. Test commands often need longer timeouts due to test suite execution time.
bun_timeout_sec: u64Timeout in seconds for bun commands (bun test, bun typecheck). Bun has known issues where its internal –timeout flag doesn’t work for CPU-bound hangs, so we use a shorter external timeout by default.
external_timeout_enabled: boolWhether to wrap remote commands with external timeout protection. This prevents runaway/stuck processes from consuming worker slots indefinitely. Default: true. Set to false to disable timeout wrapping entirely.
Implementations§
Source§impl CompilationConfig
impl CompilationConfig
Sourcepub fn timeout_for_kind(&self, kind: Option<CompilationKind>) -> Duration
pub fn timeout_for_kind(&self, kind: Option<CompilationKind>) -> Duration
Returns the appropriate external timeout for the given compilation kind.
- Bun commands get the shorter bun_timeout (to protect against known hang issues)
- Test commands get the longer test_timeout
- All other commands (builds, checks, clippy) get the build_timeout
Sourcepub fn external_timeout_enabled(&self) -> bool
pub fn external_timeout_enabled(&self) -> bool
Returns whether external timeout wrapping is enabled.
Trait Implementations§
Source§impl Clone for CompilationConfig
impl Clone for CompilationConfig
Source§fn clone(&self) -> CompilationConfig
fn clone(&self) -> CompilationConfig
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more