diff --git a/src/renderer/App.tsx b/src/renderer/App.tsx
index b08bade7..25089e2b 100644
--- a/src/renderer/App.tsx
+++ b/src/renderer/App.tsx
@@ -24,6 +24,15 @@ export const App = (): React.JSX.Element => {
void useStore.getState().initializeContextSystem();
}, []);
+ // Refresh available contexts when SSH connection state changes
+ useEffect(() => {
+ if (!window.electronAPI.ssh?.onStatus) return;
+ const cleanup = window.electronAPI.ssh.onStatus(() => {
+ void useStore.getState().fetchAvailableContexts();
+ });
+ return cleanup;
+ }, []);
+
// Initialize IPC event listeners (notifications, file changes)
useEffect(() => {
const cleanup = initializeNotificationListeners();
diff --git a/src/renderer/components/layout/SidebarHeader.tsx b/src/renderer/components/layout/SidebarHeader.tsx
index d2c12e48..cae456ef 100644
--- a/src/renderer/components/layout/SidebarHeader.tsx
+++ b/src/renderer/components/layout/SidebarHeader.tsx
@@ -19,6 +19,7 @@ import { truncateMiddle } from '@renderer/utils/stringUtils';
import { Check, ChevronDown, GitBranch, PanelLeft } from 'lucide-react';
import { useShallow } from 'zustand/react/shallow';
+import { ContextSwitcher } from '../common/ContextSwitcher';
import { WorktreeBadge } from '../common/WorktreeBadge';
import type { Worktree, WorktreeSource } from '@renderer/types/data';
@@ -325,7 +326,7 @@ export const SidebarHeader = (): React.JSX.Element => {
{/* ROW 1: Project Identity (Title Bar / Drag Region) */}
{
} as React.CSSProperties
}
>
+ {/* Context Switcher - workspace indicator */}
+
+
+ {/* Visual separator */}
+
+
+ {/* Project name dropdown button */}