diff --git a/crates/preloop-orchestrator/src/lib.rs b/crates/preloop-orchestrator/src/lib.rs index 8d70fb9a..59dd9a7d 100644 --- a/crates/preloop-orchestrator/src/lib.rs +++ b/crates/preloop-orchestrator/src/lib.rs @@ -2371,10 +2371,11 @@ impl RunnerPool

{ // at startup is safer than OOMing mid-run; `PRELOOP_RUNNER_POOL_SIZE` // remains an explicit override that wins. let warm_size = match host_memory_mib() { - Some(total) => self.config.size.min(on_demand_memory_cap( - total, - u64::from(self.config.memory_mib), - )), + Some(total) => self.config.size.min( + on_demand_memory_cap(total, u64::from(self.config.memory_mib)) + .saturating_div(2) + .max(1), + ), None => self.config.size, }; if warm_size < self.config.size {