From 83256ba9247c4fc123d2f9d847080c14f16712c1 Mon Sep 17 00:00:00 2001 From: bashrusakh <127580858+bashrusakh@users.noreply.github.com> Date: Wed, 24 Jun 2026 06:01:24 +1100 Subject: [PATCH] fix(sidebar): preserve pinned sessions and folder refs on empty session list (#1706) Added sessions.length === 0 guard to useSidebarPersistence.ts and sessions.length === 0 && archivedSessions.length === 0 guard to useSessionFolderCleanup.ts. Prevents data loss when server returns empty list during transient failures. Co-authored-by: Leonid Skorobogatyy --- .../session/sidebar/hooks/useSessionFolderCleanup.ts | 4 ++++ .../components/session/sidebar/hooks/useSidebarPersistence.ts | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/packages/ui/src/components/session/sidebar/hooks/useSessionFolderCleanup.ts b/packages/ui/src/components/session/sidebar/hooks/useSessionFolderCleanup.ts index 55690d0a..66948c92 100644 --- a/packages/ui/src/components/session/sidebar/hooks/useSessionFolderCleanup.ts +++ b/packages/ui/src/components/session/sidebar/hooks/useSessionFolderCleanup.ts @@ -38,6 +38,10 @@ export const useSessionFolderCleanup = (args: Args): void => { return; } + if (sessions.length === 0 && archivedSessions.length === 0) { + return; + } + const idsByScope = new Map>(); sessions.forEach((session) => { const directory = normalizePath((session as Session & { directory?: string | null }).directory ?? null); diff --git a/packages/ui/src/components/session/sidebar/hooks/useSidebarPersistence.ts b/packages/ui/src/components/session/sidebar/hooks/useSidebarPersistence.ts index 6faf5503..a6652533 100644 --- a/packages/ui/src/components/session/sidebar/hooks/useSidebarPersistence.ts +++ b/packages/ui/src/components/session/sidebar/hooks/useSidebarPersistence.ts @@ -154,6 +154,10 @@ export const useSidebarPersistence = (args: Args) => { return; } + if (sessions.length === 0) { + return; + } + const existingSessionIds = new Set(sessions.map((session) => session.id)); setPinnedSessionIds((prev) => { let changed = false;