From 31914956ef1dadb6bef09ea77f893f01dcd23ffd Mon Sep 17 00:00:00 2001 From: Jonas Pacheco Date: Fri, 27 Mar 2026 17:12:25 -0300 Subject: [PATCH] fix(assemble): check task status immediately on mount to handle fast completions When using Groq (very low latency), tasks complete before the 3s polling interval fires. Now checkAll() runs immediately on effect mount. Co-Authored-By: Claude Sonnet 4.6 --- client/src/pages/DevCenter.tsx | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/client/src/pages/DevCenter.tsx b/client/src/pages/DevCenter.tsx index 9d21833..779fab9 100644 --- a/client/src/pages/DevCenter.tsx +++ b/client/src/pages/DevCenter.tsx @@ -220,12 +220,12 @@ function AgentFactoryTabs() { }); const defs = defsData?.data || []; - // Poll task status for assembling defs + // Poll task status for assembling defs — verifica imediatamente e depois a cada 3s useEffect(() => { const assembling = defs.filter(d => d.status === "assembling" && d.lastTaskId); if (assembling.length === 0) return; - const interval = setInterval(async () => { + async function checkAll() { for (const def of assembling) { if (!def.lastTaskId) continue; try { @@ -233,7 +233,6 @@ function AgentFactoryTabs() { const data = await res.json(); const taskStatus = data?.task?.status; if (taskStatus === "completed" || taskStatus === "failed") { - // Mark agent as ready or draft await fetch(`/api/agent-defs/${def.id}`, { method: "PATCH", headers: { "Content-Type": "application/json" }, @@ -245,7 +244,11 @@ function AgentFactoryTabs() { setAssembleTaskStatus(prev => ({ ...prev, [def.id]: taskStatus || "unknown" })); } catch { /* ignore */ } } - }, 3000); + } + + // Verifica imediatamente (cobre tasks que já completaram antes do polling iniciar) + checkAll(); + const interval = setInterval(checkAll, 3000); return () => clearInterval(interval); }, [defs, queryClient]);