- Feat: embedded Terminal tab (xterm.js + node-pty)
- Pre-spawn PTY on app start for instant terminal access
- Tab switching: Tab (Projects↔Sessions), ⌃+Tab (cycle all), ⌘+1/2/3 (jump)
- Default Tab setting now supports Terminal
- Fix: white flash on window show/hide/quit
- Upgrade webpack 5.73 → 5.105 (fix xterm.js production tree-shaking)
- EPIPE crash prevention for Node 24 dev mode
- Feat: macOS Terminal.app support — launch, switch (title + TTY matching), cross-ref disambiguation
- Fix: cmux launch now waits for cmux to be ready before creating workspace (#75)
- Fix: revert accidental DevTools enable in switcher window
- Upgrade Electron 29 → 41 (Node 24, Chromium 146)
- Upgrade electron-forge 7.2 → 7.11, TypeScript 5.3 → 5.7
- Upgrade better-sqlite3 v11 → v12, react-select, axios, prettier, etc.
- Add
IElectronAPItype definition — removes ~100as anycasts - Design doc: add VS Code session data gap analysis
- Fix: VS Code Claude Code sessions no longer cause false purple dots on terminal sessions
- Fix: cache update status to survive renderer race condition
- "Latest" now clickable to re-check for updates
- Green dot badge on Settings button when update is ready to install
- Custom update UI: "Check for Update" + "Install & Restart" in Settings popup
- No auto-popup dialogs — update check is manual only
- In-app auto-update for non-MAS builds (via update-electron-app)
- CI: upload signed zip alongside DMG for Squirrel.Mac auto-updater
- Settings popup redesign: grouped by General/Projects/Sessions
- Add IDE Preference + Left-Click Behavior to Settings popup
- Custom keyboard shortcuts: edit, save, reset from Settings popup
- MAS: Grant Access button in IDE row
- Fix: mouse hover jump on window focus return
- Fix: assistant message color toned down
- Remove archived extension folder
- Docs: Ghostty keybind workaround for paste/undo
- Fix: arrow keys not changing selected item after returning from background
- Fix: Settings panel close not returning focus to correct search input (React closure trap)
- cmux: three-layer switch matching (title → TTY → cwd fallback), same as iTerm2
- Requires cmux v0.63+ with per-surface
tty=in tree output
- Rewrite detection: use
~/.claude/sessions/PID files (~5ms vs ~200-450ms) - Supports VS Code + Claude Desktop sessions via
entrypointfield - Cross-ref fallback only for rare same-cwd ambiguity (iTerm2/cmux parallel)
- Legacy fallback for old Claude Code without
sessions/directory
- cmux: cross-reference detection via tree TTY field (requires cmux v0.63+)
- Fixes purple dot for bare
claude/claude -rsessions with in-session/renameon cmux
- iTerm2: cross-reference detection via per-tab TTY + tab name matching
- Fixes purple dot for bare
claude/claude -rsessions with in-session/rename
- Fix: detection regex matches
-rin addition to--resumefor correct purple dot - Fix: same-cwd session disambiguation via
-n/--nameand-r/--resumetitle matching - Docs: full same-cwd detection + switch accuracy matrix
- Projects: remove item count (react-select layout constraint)
- Projects: larger branch name font for better readability
- Projects: show git branch name (async loaded, searchable)
- Projects: unified selection style with Sessions (left border + subtle highlight)
- cmux: two-layer switch matching (title → cwd fallback), same as Ghostty
- cmux: surface-level tab switching via
focus-panel(multi-tab workspaces) - Optimized cmux switching: single
tree --allcall replaceslist-workspaces+tree
- iTerm2: three-layer switch matching (title → TTY → fallback)
- Ghostty: two-layer switch matching (title → cwd fallback)
- Fix: custom title loading for paths with underscores (e.g. test_codev)
- Fix: grep false positive for custom-title in long sessions
- Fix: project path encoding to match Claude Code's directory naming
- CHANGELOG.md with CI auto-read for release notes
- README: session switching guide with terminal support matrix
- Detect multiple active sessions with same working directory
- Fix: don't override CI secrets with empty .env values
- Add cmux and Ghostty terminal support with auto-detection
- Auto-detect which terminal active sessions are running in (iTerm2/Ghostty/cmux)
- Terminal badge (ITERM2, CMUX, GHOSTTY) shown on active sessions
- Settings: Launch Terminal selector, Launch Mode (New Tab/Window)
- Session settings only visible in Sessions tab
- Fix: don't override CI secrets with empty .env values
- Add Claude Code session list with Tab switching
- Session list sorted by last activity from history.jsonl
- Multi-word AND search on project name, prompts, custom titles, branches
- Active session detection with purple dot
- Last assistant response for active sessions (blue text)
- Custom title display from session JSONL files
- Git branch name display
- Open/resume sessions in iTerm2 (new tab or window)
- Session Preview mode (First/Last/Both user prompts)
- Default Tab setting (Projects or Sessions)
- Non-blocking SWR-like loading with 5s TTL cache
- 1.5-3 line layout with color-coded elements
- Launch at Login toggle (App Store guideline 2.4.5 fix)
- Dynamic app version in Settings popup
- Non-App Store notarized DMG distribution
- GitHub Actions CI for notarized builds
- Fix: apply IDE preference immediately on save
- Fix: cast preferredIDE string to IDEMode type
- Cursor IDE support alongside VS Code
- IDE Preference Settings to switch between VS Code and Cursor
- Documentation: mention Cursor support and MAS sandbox note
- Security-scoped bookmark for IDE SQLite access in MAS sandbox
- Fix: sign better_sqlite3.node for MAS builds
- Fix: exclude electron binary from asset-relocator-loader
- Fix: use --platform=mas for MAS builds
- Recently opened file items support
- Initial TestFlight build
- Disable migration/server, read VS Code/Cursor SQLite directly
- Prepare embedded.provisionprofile for TestFlight
- Original App Store release (VS Code extension based)
- Initial version