topology_exec: bump TURN_TIMEOUT to 300s
ci / gates (push) Successful in 20s
ci / frontend (push) Successful in 36s
ci / rust (push) Successful in 4m25s
ci / e2e (push) Has been skipped
ci / publish (push) Successful in 3m57s

Turn timeout was 90s. Research coordinator turns run 60-120s
routinely (long prompt + cold tool selection) — 90s was tripping
legitimate turns while the daemon was still working, throwing away
completed inference. 300s gives real turns room while still bounding
worst-case at a walk-away limit.

Latest wizard-created topic hit this precisely: bridge attached,
handshake worked, claude auth verified in the container, but the
run's status went to failed with 'turn executor failed: turn timed
out' after exactly ~90s.

The topology worker's stale-run sweep at 180s covers the case where
the worker itself dies mid-turn — a 300s turn still checkpoints
every step so a stuck worker will get requeued.
This commit is contained in:
Omar Sobh
2026-07-10 15:33:20 -07:00
parent a0fb64ac47
commit 63305689be
+6 -2
View File
@@ -24,8 +24,12 @@ use tokio::sync::Mutex;
use tokio_tungstenite::connect_async;
use tokio_tungstenite::tungstenite::Message;
/// Overall wall-clock budget for draining one turn's event stream.
const TURN_TIMEOUT: Duration = Duration::from_secs(90);
/// Overall wall-clock budget for draining one turn's event stream. 90s
/// was tripping legitimate research-coordinator turns (long prompt plus
/// cold tool-selection routinely runs 60-120s). 300s gives room for a
/// real turn while still bounding worst-case at a walk-away limit so a
/// stuck daemon can't hang the worker forever.
const TURN_TIMEOUT: Duration = Duration::from_secs(300);
/// Drives ZeroClaw role-agents (in one container) to execute topology turns.
pub struct ZeroClawDriveExecutor {