From fc68eded38162a35601bf254475444a25c1c1bee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Salavisa?= Date: Fri, 6 Feb 2026 00:54:22 +0000 Subject: [PATCH] fix: refetch git status when switching back to a previously viewed task (#198) --- .../domains/session/use-session-git-status.ts | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/apps/web/hooks/domains/session/use-session-git-status.ts b/apps/web/hooks/domains/session/use-session-git-status.ts index 3b78f908a4..5528b210dd 100644 --- a/apps/web/hooks/domains/session/use-session-git-status.ts +++ b/apps/web/hooks/domains/session/use-session-git-status.ts @@ -96,12 +96,21 @@ export function useSessionGitStatus(sessionId: string | null) { } prevSessionIdRef.current = sessionId; - // Skip fetch if we already have status or already fetched for this session - const currentStatus = storeApi.getState().gitStatus.bySessionId[sessionId]; - if (currentStatus || hasFetchedRef.current) { + // Skip fetch if we already fetched for this session (and session hasn't changed) + // When session changed, always refetch to get the latest status even if cached + if (hasFetchedRef.current) { return; } + // If we haven't fetched yet and status already exists (e.g., from WebSocket), skip + if (!sessionChanged) { + const currentStatus = storeApi.getState().gitStatus.bySessionId[sessionId]; + if (currentStatus) { + hasFetchedRef.current = true; + return; + } + } + hasFetchedRef.current = true; fetchSnapshot(sessionId); }, [sessionId, connectionStatus, fetchSnapshot, storeApi]);