| 04-workspace-ui |
01 |
ui |
| react |
| zustand |
| lucide-react |
| keyboard-shortcuts |
| dropdown |
|
| phase |
provides |
| 03-state-management |
contextSlice with switchContext, activeContextId, isContextSwitching |
|
| phase |
provides |
| 02-service-infrastructure |
context.list() IPC, context.switch() IPC, ssh.onStatus() listener |
|
|
| ContextSwitcher dropdown component listing Local + SSH workspaces with status badges |
| ConnectionStatusBadge icon component with 4 visual states |
| Cmd+Shift+K keyboard shortcut for workspace cycling |
| availableContexts state and fetchAvailableContexts action in contextSlice |
| SSH status listener in App.tsx refreshing context list on changes |
|
|
| added |
patterns |
|
|
| sidebar-header-dropdown-pattern |
| connection-status-icon-states |
|
|
| created |
modified |
| src/renderer/components/common/ContextSwitcher.tsx |
| src/renderer/components/common/ConnectionStatusBadge.tsx |
|
| src/renderer/store/slices/contextSlice.ts |
| src/renderer/components/layout/SidebarHeader.tsx |
| src/renderer/hooks/useKeyboardShortcuts.ts |
| src/renderer/App.tsx |
|
|
| ContextSwitcher placed first in SidebarHeader Row 1, before project name, with vertical separator |
| Cmd+Shift+K check placed before Cmd+K to avoid shortcut shadowing |
| SSH status listener refreshes available contexts automatically on connection changes |
|
| ConnectionStatusBadge: 4-state icon rendering (Monitor/local, Wifi/green connected, Loader2/spinner connecting, WifiOff/muted disconnected, WifiOff/red error) |
| Context switcher dropdown follows SidebarHeader dropdown pattern (useRef, outside click, escape key) |
|
6min |
2026-02-12 |