Skip to content

Releases: doctly/switchboard

0.0.30

Choose a tag to compare

@github-actions github-actions released this 15 May 20:44

What's Changed

Bug Fixes

  • Merge project groups in the sidebar when two ~/.claude/projects/<folder>/ directories resolve to the same project path (older runs encoded dots/spaces/@ as dashes; newer runs preserve them literally). Fixes duplicate sidebar groups and duplicate DOM nodes that morphdom couldn't reconcile on re-render.
  • Pick up ai-title/aiTitle entries from session files so AI-generated session titles display in the sidebar instead of falling back to the raw first prompt. User-set customTitle still takes precedence. (#42, fixes #33)

Performance Improvements

  • Canonicalize merged project folder ids using encodeProjectPath(projectPath) so the group id is deterministic regardless of scan order.
  • Cache empty-folder → projectPath lookups in cache_meta (one DB query) instead of calling deriveProjectPath per folder per render. Unseen folders fall back to deriveProjectPath and backfill the cache for subsequent renders.

0.0.29

Choose a tag to compare

@github-actions github-actions released this 05 May 16:40

What's Changed

Bug Fixes

  • Match Claude CLI's project-folder encoding to prevent duplicate, undismissable project entries in the sidebar. The folder-name regex now mirrors the CLI's algorithm exactly (replaces every non-alphanumeric character, applies the 200-char cap with hash suffix on overflow), fixing paths with spaces, dots, backslashes, colons, etc. Also covers Windows drive paths. Fixes #38.
  • Fix session-cache phantom-project bug: only insert a project entry after the archive filter passes, so folders whose sessions are all archived no longer appear as empty undismissable projects.

Performance Improvements

  • Disable terminal cursor blink to reduce idle CPU usage. 5 idle terminals previously caused ~28% CPU from constant WebGL repaint cycles; idle terminals now drop to near-zero (#36).

Special thanks to the contributors.

0.0.28

Choose a tag to compare

@github-actions github-actions released this 27 Apr 17:16

What's Changed

This is a republish of v0.0.27 — no app-code changes. v0.0.27's release was missing the macOS and Windows artifacts due to a race in the CI publish pipeline, which broke auto-updates for mac/win clients (404 on latest-mac.yml).

For full app changes since v0.0.26, see the v0.0.27 release notes (WebGL terminal renderer, emoji rendering fix, WebGL fallback logging).

CI / Build

  • Split build and publish into separate jobs to fix a multi-platform race. All 4 matrix jobs were running electron-builder --publish always in parallel, each creating its own draft release for the tag — only one "won" and the others' assets were stranded in duplicate drafts. The matrix now builds with --publish never and uploads artifacts; a single follow-up job downloads everything and creates one draft release with all assets (mac x64+arm64, win, linux x64+arm64) and all latest*.yml metadata files.

0.0.27

Choose a tag to compare

@github-actions github-actions released this 27 Apr 16:35

What's Changed

Performance Improvements

  • Use @xterm/addon-webgl for terminal rendering — offloads rendering to the GPU as texture-atlas draws, dropping combined renderer+GPU CPU by ~50-70% on idle terminals and meaningfully more under streaming output. Falls back to the DOM renderer if WebGL is unavailable, and disposes the addon on WebGL context loss.

Bug Fixes

  • Fix emoji/wide-character rendering with @xterm/addon-unicode-graphemes — replaces xterm.js's Unicode 6.1 width tables (which treat emoji as single-width and shift the rest of the line) with UAX #29 grapheme clustering for correct cell-width calculation.

Observability

  • Log WebGL addon load failures instead of swallowing them silently, so DOM-renderer fallback is diagnosable in the field. Behavior is unchanged — xterm.js still falls back to the default renderer.

0.0.25

Choose a tag to compare

@github-actions github-actions released this 15 Apr 22:23

What's Changed

Features

  • Scheduled task support — Create, run, and schedule recurring Claude Code agents directly from the sidebar. Includes a schedule creator flow with system prompt seeding and a run-now button on schedule files.
  • Worktree sidebar nesting — Worktree projects are nested under their parent with a branch icon for cleaner organization.

Bug Fixes

  • Fix worktree duplicate projects appearing when paths were incorrectly resolved to parent
  • Fix const→let bug that broke global settings save
  • Merge existing settings on global save to prevent losing hiddenProjects
  • Add v2 migration to re-index session cache with corrected worktree paths

UI Improvements

  • JSONL viewer: tool results render inline, smaller tool name fonts, grep commands in styled code blocks, brighter vertical alignment lines
  • Make JSONL viewer link color more visible on dark backgrounds
  • Add save feedback on settings button
  • Rename "Remove Project" to "Hide Project"

0.0.24

Choose a tag to compare

@github-actions github-actions released this 11 Apr 20:29

What's Changed

Features

  • Redesigned JSONL message viewer with cleaner layout, markdown rendering, tool use/result pairing, inline diffs, image previews, and computer-use screenshot display
  • Redesigned settings UI with card layout, toggle switches, and polished typography
  • Add title-only search toggle and case-insensitive full-text search
  • Add DB migration system for automatic schema upgrades
  • Add resume-with-config to relaunch sessions with custom CLI options
  • Add cyan shimmer animation on busy session titles
  • Scroll JSONL message viewer to bottom on load
  • Visual "Saved" feedback on settings save button

Bug Fixes

  • Fix crash when using Fish or Nushell as the configured shell
  • Fix worktree sessions appearing as separate projects (regex now matches .claude/worktrees/ pattern)
  • Fix project grouping to merge worktree folders by resolved project path
  • Fix global settings save silently failing (const reassignment bug)
  • Fix settings save overwriting hidden projects and other internal state (now merges instead of replacing)
  • Fix settings viewer not appearing over JSONL viewer
  • Fix markdown preview mode not persisting across files
  • Fix session names showing raw command text instead of first user message
  • Fix spacebar key-repeat not working reliably in terminal (PR #26)
  • Rename "Remove Project" to "Hide Project" for clarity

Internal

  • Major codebase refactor: split app.js (3,900 → 1,100 lines) and main.js (2,100 → 1,400 lines) into focused modules
  • Deduplicated session parsing logic into shared read-session-file.js

0.0.23

Choose a tag to compare

@github-actions github-actions released this 02 Apr 05:59

What's Changed

Features

  • Add keyboard shortcuts for grid toggle (Cmd/Ctrl+Shift+G) and session navigation (Cmd+Shift+[/], Cmd+Arrow) with 2D grid navigation (#21)
  • Add xterm search bar with floating UI (Cmd/Ctrl+F in terminal)
  • Add unified ViewerPanel component for plan, memory, and file viewers with toolbar, file watching, and auto-reload
  • Add CodeMirror keybindings: find (Cmd+F), go-to-line (Cmd+G), save (Cmd+S)
  • Grid view cards now scroll into view when focused from sidebar
  • Grid view card order now matches sidebar order

Bug Fixes

  • Strip HTML/XML tags from session display names for readability
  • Fix grid toggle shortcut conflict with go-to-line (changed from Cmd+G to Cmd+Shift+G)
  • Fix stale CodeMirror search/goto-line bar references on tab destroy and content reload

Cleanup

  • Clean up claude-auth: remove debug logging, testAuth endpoint, and electron-log dependency
  • Unify CSS with shared viewer-toolbar, toolbar button, and icon button classes
  • Remove stale notification logging

v0.0.22 - Shortcuts/Find/Goto Line

Choose a tag to compare

@github-actions github-actions released this 02 Apr 04:00

What's Changed

Features

  • Add keyboard shortcuts for grid toggle (Cmd/Ctrl+G) and session navigation (Cmd+Shift+[/], Cmd+Arrow) with 2D grid navigation (#21)
  • Add xterm search bar with floating UI (Cmd/Ctrl+F in terminal)
  • Add unified ViewerPanel component for plan, memory, and file viewers with toolbar, file watching, and auto-reload
  • Add CodeMirror keybindings: find (Cmd+F), go-to-line (Cmd+G), save (Cmd+S)
  • Grid view cards now scroll into view when focused from sidebar
  • Grid view card order now matches sidebar order

Bug Fixes

  • Strip HTML/XML tags from session display names for readability

Cleanup

  • Clean up claude-auth: remove debug logging, testAuth endpoint, and electron-log dependency
  • Unify CSS with shared viewer-toolbar, toolbar button, and icon button classes
  • Remove stale notification logging

0.0.21

Choose a tag to compare

@github-actions github-actions released this 30 Mar 04:44

What's Changed

Bug Fixes

  • Fix project discovery for .jsonl files where cwd is not on the first line — now scans all lines instead of only the first, fixing projects that start with file-history-snapshot entries
  • Fix usage stats: robust reset time parsing (handles seconds, milliseconds, and ISO strings), refactor bucket mapping with shared helper, update anthropic-beta header to oauth-2025-04-20
  • Fix grid layout: cards now fill available width and respond to dynamic sidebar/window changes using ResizeObserver + MutationObserver

Features

  • Add sidebar collapse/expand toggle — collapse button in sidebar tabs shrinks sidebar to a narrow column with an expand button
  • Add test-auth IPC endpoint for validating OAuth tokens via /api/oauth/profile

Code Quality

  • Extract deriveProjectPath into shared derive-project-path.js module, eliminating duplication between main process and scan-projects worker

0.0.20

Choose a tag to compare

@github-actions github-actions released this 27 Mar 05:44

What's Changed

Features

  • Implement rate limits display from API in the stats tab
  • Add cancel button to global and project settings pages
  • Settings now close on save, returning to previous view

Bug Fixes

  • Fix Busy→Idle detection when session title changes (e.g. during plan execution)
  • Fix saving scroll position
  • Fix archive button centering
  • Fix macOS crash (EXC_BREAKPOINT / NSRangeException) triggered by display reconfiguration

UI Improvements

  • Increase contrast of muted UI colors across sidebar, terminal header, session list, stats, and settings
  • Increase pin icon and session dot contrast
  • Make gear icon bigger, remove border from gear and archive buttons

Build & CI Fixes

  • Split Linux CI into per-arch jobs to prevent native module mismatch (#18)
  • Fix electron-builder arch flags (use --x64/--arm64 instead of --arch)
  • Remove explicit arch from Linux targets, let electron-builder use host arch
  • Move codemirror packages to devDependencies to speed up electron-builder bundling

Dependencies

  • Upgrade Electron 33→41, electron-builder 25→26, better-sqlite3 11→12
  • Remove unused express dependency

Internal

  • Add electron-log to claude-auth for consistent logging
  • Add error state handling in usage UI