From 3a26f43b9d078630a5224d7259ce83ef080233e5 Mon Sep 17 00:00:00 2001 From: "macroscopeapp[bot]" <170038800+macroscopeapp[bot]@users.noreply.github.com> Date: Fri, 21 Aug 2026 03:10:07 +0000 Subject: [PATCH] Halve memory-derived warm pool size to prevent OOM during successor provisioning --- crates/preloop-orchestrator/src/lib.rs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) 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 {