From b4cbd7f0d65457807e32e852832e2ab30fe91800 Mon Sep 17 00:00:00 2001
From: Jake <101855602+jjdubski@users.noreply.github.com>
Date: Wed, 13 May 2026 03:12:30 -0500
Subject: [PATCH] Fix: archived session bulk delete for VS Code extension
(#1256)
* fix/archived sessiongroup bulk delete
* Remove in line comment
Signed-off-by: Jake <101855602+jjdubski@users.noreply.github.com>
* small fix for lint
* indentation fix, restore to original
---------
Signed-off-by: Jake <101855602+jjdubski@users.noreply.github.com>
---
packages/ui/src/components/layout/VSCodeLayout.tsx | 2 ++
packages/ui/src/components/session/SessionDialogs.tsx | 6 +-----
packages/ui/src/sync/session-ui-store.ts | 9 +++++++--
3 files changed, 10 insertions(+), 7 deletions(-)
diff --git a/packages/ui/src/components/layout/VSCodeLayout.tsx b/packages/ui/src/components/layout/VSCodeLayout.tsx
index 2cf0b8c2..02eb82fe 100644
--- a/packages/ui/src/components/layout/VSCodeLayout.tsx
+++ b/packages/ui/src/components/layout/VSCodeLayout.tsx
@@ -1,6 +1,7 @@
import React from 'react';
import { ErrorBoundary } from '../ui/ErrorBoundary';
import { SessionSidebar } from '@/components/session/SessionSidebar';
+import { SessionDialogs } from '@/components/session/SessionDialogs';
import { ChatView } from '@/components/views/ChatView';
import { useSessionUIStore } from '@/sync/session-ui-store';
import { useViewportStore } from '@/sync/viewport-store';
@@ -520,6 +521,7 @@ export const VSCodeLayout: React.FC = () => {
>
)}
+
);
};
diff --git a/packages/ui/src/components/session/SessionDialogs.tsx b/packages/ui/src/components/session/SessionDialogs.tsx
index 1978f613..f68b2f9a 100644
--- a/packages/ui/src/components/session/SessionDialogs.tsx
+++ b/packages/ui/src/components/session/SessionDialogs.tsx
@@ -442,11 +442,7 @@ export const SessionDialogs: React.FC = () => {
deletedIds = result.archivedIds;
failedIds = result.failedIds;
} else {
- const result = await deleteSessions(ids, {
- archiveWorktree: false,
- deleteRemoteBranch: removeRemoteBranch,
- deleteLocalBranch,
- });
+ const result = await deleteSessions(ids);
deletedIds = result.deletedIds;
failedIds = result.failedIds;
}
diff --git a/packages/ui/src/sync/session-ui-store.ts b/packages/ui/src/sync/session-ui-store.ts
index 3edf25e8..461a3fe7 100644
--- a/packages/ui/src/sync/session-ui-store.ts
+++ b/packages/ui/src/sync/session-ui-store.ts
@@ -19,6 +19,7 @@ import type { WorktreeMetadata } from "@/types/worktree"
import { opencodeClient } from "@/lib/opencode/client"
import { useConfigStore } from "@/stores/useConfigStore"
import { useProjectsStore } from "@/stores/useProjectsStore"
+import { useGlobalSessionsStore, resolveGlobalSessionDirectory } from "@/stores/useGlobalSessionsStore"
import { useDirectoryStore } from "@/stores/useDirectoryStore"
import { useSessionFoldersStore } from "@/stores/useSessionFoldersStore"
import { useCommandsStore } from "@/stores/useCommandsStore"
@@ -1111,8 +1112,12 @@ export const useSessionUIStore = create()((set, get) => ({
if (attachmentDirectory) return attachmentDirectory
const sessions = getAllSyncSessions()
const session = sessions.find((s) => s.id === sessionId)
- if (!session) return null
- return resolveDirectoryKey(session)
+ if (session) return resolveDirectoryKey(session)
+ const globalStore = useGlobalSessionsStore.getState()
+ const globalSession = [...globalStore.activeSessions, ...globalStore.archivedSessions]
+ .find((s) => s.id === sessionId)
+ if (globalSession) return resolveGlobalSessionDirectory(globalSession)
+ return null
},
getLastUserChoice: (sessionId) => {