Releases: doctly/switchboard
Releases · doctly/switchboard
Introducing Grid View
What's Changed
Features
- Session Grid Overview — Toggle a bird's-eye grid view of all open sessions from the sidebar, grouped by project with live terminal previews, status indicator dots (running/stopped/busy), and last-activity timestamps. Click a card to focus, double-click to expand back to single-terminal view. Grid preference persists across restarts.
Other Features
- Refactored terminal lifecycle — Consolidated duplicated terminal creation logic into shared helpers (
createTerminalEntry,destroySession,showSession,fitAndScroll) for cleaner code and consistent behavior across session launch, resume, and grid view.
0.0.15
What's Changed
Features
- Markdown preview renderer for plan and memory editors with dark-themed styling (PR #12)
- Persist markdown preview mode in localStorage so the toggle is sticky across sessions
- Configurable shell profiles for terminal sessions — discover available shells and select preferred shell in settings (PR #13)
- Drag-and-drop file path insertion for terminal sessions
Performance
- Remove terminal warmup PTY spawn on startup
0.0.14
What's Changed
Features
- Agent Files tab — Redesigned Memory tab renamed to "Agent Files" with project-grouped layout, expand/collapse sections, and CodeMirror editor with save/copy buttons
- GEMINI.md scanning — Agent Files now scans GEMINI.md files alongside CLAUDE.md from ~/.claude/, project root, and project/.claude/ directories
- Check for updates — Added a check for updates button with version display in global settings
- Per-tab search placeholders — Each sidebar tab now shows contextual search placeholder text
UI/UX
- Sidebar visual refresh — Card-styled project groups with cleaner visual hierarchy and hover-reveal action buttons
- SVG icon overhaul — Replaced all sidebar tab labels with SVG icons (Claude asterisk, notebook, brain, bar chart); updated action button icons (archive, fork, messages, resort, add project, calendar)
- Settings gear relocation — Moved global settings gear icon to the tab bar, right-aligned
- Shared icons module — Added icons.js for reusable SVG icons across the app
- Launch popover — Replaced favicon.ico with inline Claude asterisk SVG
Improvements
- OSC-driven busy state — Made OSC 0 idle the authoritative busy signal, removing the client-side idle timer fallback
- Terminal session cleanup — Limited terminal entries to stop-only actions and suppressed focus report escape sequences
- Project action buttons — Always visible at 50% opacity for better discoverability
Docs
- Added IDE emulation and status notifications screenshots to README
- Updated release command category examples
0.0.13
What's Changed
Stats & Monitoring
- Add live stats refresh with rate limit usage display
Windows
- Fix PTY spawn failure on Windows by adding cross-platform shell resolution
- Strip WT_SESSION env so Claude Code emits OSC 9;4 progress on Windows Terminal
- Use resolveShell()/shellArgs() in refresh-stats handler
Terminal
- Treat OSC 9;4 levels 1 (running) and 2 (error) as busy, not just 3 (indeterminate)
- Fix morphdom skipping rename inputs and focus restoration for active inputs
- Add TERM_PROGRAM_VERSION to PTY env
0.0.12
What's Changed
Session Activity
- Rework session activity indicators with unified state machine (cli-busy, has-unread, response-ready)
- Detect busy state from OSC 0 braille spinner and OSC 9;4 progress sequences
- Add new visual indicators: spinning dot (busy), cyan dot (response-ready), orange ripple (needs-attention)
- Terminal output with noise filtering provides fallback activity signal with 5s silence timeout
- response-ready state is terminal until user clicks the session
Performance
- Batch DB writes in refreshFolder to reduce SQLite lock duration
- Add SQLite busy_timeout pragma so concurrent readers wait instead of failing on lock
UI
- Fix terminal area gap by removing redundant 22px bottom inset
- Reduce noisy debug logging (suppress OSC 8, empty detect cycles)
Bug Fixes
- Fix IDE Emulator being enabled via config modal even when turned off globally
0.0.11
What's Changed
IDE Emulation
- Default IDE emulation to off by DEFAULT in global settings; OSC 8 file links still work regardless
- Add
close_tabMCP tool so accepting/rejecting diffs in the CLI terminal automatically closes the corresponding side panel tab - Refine diff styling: replace underlines with background highlights for word-level changes
- Add inline (unified) vs side-by-side diff toggle with localStorage persistence
- Replace per-session "Auto Open Files" toggle with static "IDE Emulation" indicator with status dot
- Restructure MCP indicator to use file-panel state as single source of truth, fixing timing issues
- Add settings notice clarifying IDE Emulation changes take effect on new sessions
- Float accept/reject buttons as hover overlay instead of fixed bar
- Collapse unchanged regions in unified diff view
- Fix merge view font size to match other CodeMirror instances (12.5px)
- Fix file panel resize handle visibility
- Remove max panel width cap, persist width in localStorage
- Disable word wrap in file panel CodeMirror viewers
Search
- Fix search to include session custom names in FTS index
- Renaming a session now updates the search index immediately
Stability
- Close SQLite database on quit (
will-quitevent) to release WAL/SHM lock files - Add spacing between settings checkbox and description
0.0.10
What's Changed
Build
- Fix packaged app crash caused by missing
folder-index-state.jsin electron-builder files list
0.0.9
What's Changed
Features
- MCP Bridge IDE Emulation: Switchboard now acts as an IDE for Claude CLI sessions, intercepting file opens and diffs into a collapsible side panel with CodeMirror-powered syntax highlighting and merge/diff views
- File/Diff Side Panel: Accept or reject Claude's proposed file changes directly in Switchboard — no VS Code or Cursor required
- OSC 8 File Link Interception: Clickable
file://hyperlinks in terminal output open in the side panel instead of externally - IDE Emulation Global Setting: Disable MCP emulation entirely in Global Settings so Claude CLI connects to your own IDE instead
- Auto Open Files Toggle: Per-session checkbox to control whether diffs and file opens appear in the side panel or are silently accepted
- Persistent Panel Width: Side panel remembers its resized width across sessions and app restarts
Performance Improvements
- Remove redundant
backgroundRefresh()folder re-scanning that ran on every sidebar project load - Fix terminal scroll race condition using xterm buffer API instead of DOM scroll events
- Fix stale session cache refresh
Bug Fixes
- Fix slug group collapse not working for sessions with running PTYs
- Fix worker crash permanently locking out the session list when scan-projects worker exits abnormally
- Fix orphaned PTY processes accumulating on macOS when closing the window
- Fix FTS5 search index growing without bound due to orphaned rows on INSERT OR REPLACE
- Fix session stuck as "Running" after PTY exits during fork/plan-accept transitions
0.0.8
What's Changed
Terminal
- Fix scroll position lost when scrolled up during active output — terminal no longer fights the user by jumping to bottom
- Fix scrollbar shrinking and becoming unusable when resizing or switching tabs while scrolled up
- Preserve scroll position across tab switches and window resizes
0.0.7
What's Changed
Redesigned sidebar filtering & sorting
- Replaced the inconsistent rendering system with a single entry point (
refreshSidebar) — all 15+ direct render calls now go through one pipeline - Removed sort debouncing that was suppressing legitimate re-sorts when toggling filters
- Introduced
sortedOrderas single source of truth for both project group order and item order — no more random jumping when background mtime changes - User-initiated actions (filters, search, star toggle) do a full re-sort; background refreshes preserve existing order with new items appearing at top
- Search is now a filter integrated into the normal pipeline instead of a separate mode
- Added a re-sort button to the sidebar toolbar to manually trigger a fresh sort
- Fixed progress state classes being stripped on re-render
Keyboard fixes
- Fixed Shift+Enter reliability with two-layer key binding approach
- Removed Cmd+T shortcut and dead terminal-passthrough code