From f79cdafba7aa16004c75d2684d7dedd6279f3265 Mon Sep 17 00:00:00 2001 From: Offending Commit Date: Wed, 3 Jun 2026 17:27:42 -0500 Subject: [PATCH] fix(dashboard): remove lastSeen from metrics useMemo deps to break render loop MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit lastSeen tracked workspacesQ.dataUpdatedAt which updates on every background refetch, creating a new metrics object reference each cycle. The useEffect dep on metrics then fired unconditionally, calling onMetrics → setMetricsById → Dashboard re-render → another refetch → infinite loop. computeFleetAggregates never reads lastSeen, so reporting it upward was pointless. Hardcode null and drop it from the dep array entirely. --- packages/web/src/components/dashboard/ServerWorkspaceRows.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/web/src/components/dashboard/ServerWorkspaceRows.tsx b/packages/web/src/components/dashboard/ServerWorkspaceRows.tsx index af43b5f..fd89822 100644 --- a/packages/web/src/components/dashboard/ServerWorkspaceRows.tsx +++ b/packages/web/src/components/dashboard/ServerWorkspaceRows.tsx @@ -88,10 +88,10 @@ export function ServerWorkspaceRows({ instance, onOpenWorkspace, onMetrics }: Pr conclusionCount, queueActive, queuePending, - lastSeen, + lastSeen: null, health, }), - [totalWorkspaces, conclusionCount, queueActive, queuePending, lastSeen, health], + [totalWorkspaces, conclusionCount, queueActive, queuePending, health], ); const lastReported = useRef(null);