diff --git a/packages/ui/src/components/session/SessionSidebar.tsx b/packages/ui/src/components/session/SessionSidebar.tsx index 954fb01d..77f19327 100644 --- a/packages/ui/src/components/session/SessionSidebar.tsx +++ b/packages/ui/src/components/session/SessionSidebar.tsx @@ -275,6 +275,7 @@ export const SessionSidebar: React.FC = ({ const sync = useSync(); const liveSessions = useAllLiveSessions(); const liveSessionStatuses = useAllSessionStatuses(); + const hasLoadedGlobalSessions = useGlobalSessionsStore((state) => state.hasLoaded); const globalActiveSessions = useGlobalSessionsStore((state) => state.activeSessions); const archivedSessions = useGlobalSessionsStore((state) => state.archivedSessions); const currentSessionId = useSessionUIStore((state) => state.currentSessionId); @@ -476,6 +477,7 @@ export const SessionSidebar: React.FC = ({ const { scheduleCollapsedProjectsPersist } = useSidebarPersistence({ isVSCode, + hasLoadedGlobalSessions, safeStorage, keys: { sessionExpanded: SESSION_EXPANDED_STORAGE_KEY, diff --git a/packages/ui/src/components/session/sidebar/hooks/useSidebarPersistence.ts b/packages/ui/src/components/session/sidebar/hooks/useSidebarPersistence.ts index 67406851..061b8c30 100644 --- a/packages/ui/src/components/session/sidebar/hooks/useSidebarPersistence.ts +++ b/packages/ui/src/components/session/sidebar/hooks/useSidebarPersistence.ts @@ -19,6 +19,7 @@ type Keys = { type Args = { isVSCode: boolean; + hasLoadedGlobalSessions: boolean; safeStorage: SafeStorageLike; keys: Keys; sessions: Session[]; @@ -34,6 +35,7 @@ type Args = { export const useSidebarPersistence = (args: Args) => { const { isVSCode, + hasLoadedGlobalSessions, safeStorage, keys, sessions, @@ -114,6 +116,10 @@ export const useSidebarPersistence = (args: Args) => { }, [keys.projectCollapse, keys.sessionExpanded, safeStorage, setCollapsedProjects, setExpandedParents]); React.useEffect(() => { + if (!hasLoadedGlobalSessions) { + return; + } + const existingSessionIds = new Set(sessions.map((session) => session.id)); setPinnedSessionIds((prev) => { let changed = false; @@ -127,7 +133,7 @@ export const useSidebarPersistence = (args: Args) => { }); return changed ? next : prev; }); - }, [sessions, setPinnedSessionIds]); + }, [hasLoadedGlobalSessions, sessions, setPinnedSessionIds]); React.useEffect(() => { try {