From 2710eb8a3a58abbea95bd487797abbb3e67f0d0a Mon Sep 17 00:00:00 2001 From: Peter Stone Date: Thu, 26 Mar 2026 05:45:19 +0000 Subject: fix: resolve dep-chain deadlock; broadcast task_started for UI visibility With maxPerAgent=1, tasks with DependsOn were entering waitForDependencies while holding the per-agent slot, preventing the dependency from ever running. Fix: check deps before taking the slot. If not ready, requeue without holding activePerAgent. Also accept StateReady (leaf tasks) as a satisfied dependency, not just StateCompleted. Add startedCh to pool and broadcast task_started WebSocket event when a task transitions to RUNNING, so the UI immediately shows the running state during the clone phase instead of waiting for completion. Co-Authored-By: Claude Sonnet 4.6 --- web/app.js | 1 + 1 file changed, 1 insertion(+) (limited to 'web/app.js') diff --git a/web/app.js b/web/app.js index c87c609..882ddac 100644 --- a/web/app.js +++ b/web/app.js @@ -1405,6 +1405,7 @@ function connectWebSocket() { function handleWsEvent(data) { switch (data.type) { + case 'task_started': case 'task_completed': // Force a poll immediately regardless of interval poll(); -- cgit v1.2.3