From 48b0a4f29242ba4f3d63cc5ea91d571fa215f1d5 Mon Sep 17 00:00:00 2001 From: Bohdan Triapitsyn Date: Fri, 5 Jun 2026 20:58:54 +0300 Subject: [PATCH] fix: preserve chat folder assignments on reload Prevents folder cleanup before sessions finish loading Keeps saved chat folder memberships after desktop reload --- packages/ui/src/components/session/SessionSidebar.tsx | 1 + .../session/sidebar/hooks/useSessionFolderCleanup.ts | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/ui/src/components/session/SessionSidebar.tsx b/packages/ui/src/components/session/SessionSidebar.tsx index db64a333..1aad887e 100644 --- a/packages/ui/src/components/session/SessionSidebar.tsx +++ b/packages/ui/src/components/session/SessionSidebar.tsx @@ -848,6 +848,7 @@ export const SessionSidebar: React.FC = ({ const isSessionsLoading = useSessionUIStore((state) => state.isLoading); useSessionFolderCleanup({ isSessionsLoading, + hasLoadedGlobalSessions, sessions, archivedSessions, normalizedProjects, diff --git a/packages/ui/src/components/session/sidebar/hooks/useSessionFolderCleanup.ts b/packages/ui/src/components/session/sidebar/hooks/useSessionFolderCleanup.ts index 2858a7d4..55690d0a 100644 --- a/packages/ui/src/components/session/sidebar/hooks/useSessionFolderCleanup.ts +++ b/packages/ui/src/components/session/sidebar/hooks/useSessionFolderCleanup.ts @@ -12,6 +12,7 @@ type WorktreeMeta = { path: string }; type Args = { isSessionsLoading: boolean; + hasLoadedGlobalSessions: boolean; sessions: Session[]; archivedSessions: Session[]; normalizedProjects: NormalizedProject[]; @@ -23,6 +24,7 @@ type Args = { export const useSessionFolderCleanup = (args: Args): void => { const { isSessionsLoading, + hasLoadedGlobalSessions, sessions, archivedSessions, normalizedProjects, @@ -32,7 +34,7 @@ export const useSessionFolderCleanup = (args: Args): void => { } = args; React.useEffect(() => { - if (isSessionsLoading) { + if (isSessionsLoading || !hasLoadedGlobalSessions) { return; } @@ -86,6 +88,7 @@ export const useSessionFolderCleanup = (args: Args): void => { archivedSessions, availableWorktreesByProject, cleanupSessions, + hasLoadedGlobalSessions, isSessionsLoading, isVSCode, normalizedProjects,