From 05efa9c08e6bf317d1f4f685e1da8cdcab7e3a90 Mon Sep 17 00:00:00 2001 From: Lukas May Date: Fri, 6 Mar 2026 13:30:18 +0100 Subject: [PATCH] fix: Replace getTaskAgent polling with event-driven invalidation Add getTaskAgent to the agent: prefix SSE invalidation rule so spawned agents are picked up immediately instead of polling every 5s. --- apps/web/src/components/execution/TaskSlideOver.tsx | 2 +- apps/web/src/routes/initiatives/$id.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/web/src/components/execution/TaskSlideOver.tsx b/apps/web/src/components/execution/TaskSlideOver.tsx index 1df8f13..5b1b261 100644 --- a/apps/web/src/components/execution/TaskSlideOver.tsx +++ b/apps/web/src/components/execution/TaskSlideOver.tsx @@ -337,7 +337,7 @@ export function TaskSlideOver({ onOpenChat }: TaskSlideOverProps) { function AgentLogsTab({ taskId }: { taskId: string }) { const { data: agent, isLoading } = trpc.getTaskAgent.useQuery( { taskId }, - { refetchOnWindowFocus: false, refetchInterval: (query) => query.state.data ? false : 5000 }, + { refetchOnWindowFocus: false }, ); if (isLoading) { diff --git a/apps/web/src/routes/initiatives/$id.tsx b/apps/web/src/routes/initiatives/$id.tsx index e62de70..993c1bb 100644 --- a/apps/web/src/routes/initiatives/$id.tsx +++ b/apps/web/src/routes/initiatives/$id.tsx @@ -34,7 +34,7 @@ function InitiativeDetailPage() { { prefix: 'initiative:', invalidate: ['getInitiative'] }, { prefix: 'task:', invalidate: ['listPhases', 'listTasks', 'listInitiativeTasks', 'getPhaseDependencies', 'listPhaseTaskDependencies'] }, { prefix: 'phase:', invalidate: ['listPhases', 'listTasks', 'listInitiativePhaseDependencies', 'getPhaseDependencies'] }, - { prefix: 'agent:', invalidate: ['listAgents', 'getActiveRefineAgent'] }, + { prefix: 'agent:', invalidate: ['listAgents', 'getActiveRefineAgent', 'getTaskAgent', 'getActiveConflictAgent'] }, { prefix: 'page:', invalidate: ['listPages', 'getPage', 'getRootPage'] }, { prefix: 'changeset:', invalidate: ['getChangeSet', 'listChangeSets'] }, { prefix: 'preview:', invalidate: ['listPreviews', 'getPreviewStatus'] },