0.21.1 (2026-04-22)
- encode all non-alphanumeric chars in project dir names (2468bb6)
- handle dots in folder names for context bar and recent projects (#84) (65cc715), closes #83
0.21.0 (2026-04-17)
- add TCC usage descriptions and entitlements for child process permissions (#80) (1db18d3)
- include release notes in Sparkle appcast (0b10b41)
- gate StopFailure hook on Claude Code >= 2.1.78 (#81) (cc1077e)
- recognize Opus 4.7 context limit and raise Sonnet 4.6 to 1M (b014a84)
0.20.0 (2026-04-10)
- add New Claude Tab and New Terminal Tab to tab context menu (3529951)
- add right-click context menu to horizontal tabs for closing (6531da5)
- show keyboard shortcut hints in tab context menu (8b37ccf)
- center settings and session explorer windows on main app window (7218593)
- suppress keyboard input during Claude tab startup (0277b74)
0.19.0 (2026-04-07)
0.18.1 (2026-04-06)
- context bar not updating for resumed Claude Code sessions (#72) (9a75f32)
- make PID-walking fallback continue loop when sessionId extraction fails (08b33de)
- set TERM_PROGRAM and COLORTERM env vars for terminal identification (#74) (6fec56b), closes #73
0.18.0 (2026-04-05)
- switch to SwiftTerm main-updated branch with flag emoji and input lag fixes (edb3346)
0.17.2 (2026-04-01)
- allow top-level drop between expanded folder and items below (3a1c8c5)
- sidebar drag-drop reorder within folders and at top level (b9d5aec)
0.17.1 (2026-03-31)
- context usage bar flickering and thread safety in monitors (dcfbd49)
0.17.0 (2026-03-31)
- add BadgeShape enum to TabItem (97a59ad)
- add BadgeShapeView and shape path generation (2495390)
- add shape picker column to badge settings table (b645eaf)
- Claude CLI args autocomplete in settings (#62) (3ac6fbd)
- use BadgeShapeView for horizontal tab bar badges (cc59e2a)
- use BadgeShapeView for sidebar badge dots (b4ffdad)
- add defaultBadgeShapes property per spec (6cbab21)
- disable optionAsMetaKey so dead key accents work normally (1a200c1)
- only write state.json to disk when state has actually changed (#64) (cbfa374)
- pin release-please-action to commit with 17.3.0 (cb382cf)
- remove star shape, fix triangle orientation, add unicode previews to all shapes (008d362)
- remove unused variable h in BadgeShapeView.path (1e8ffaf)
- resolve SwiftLint statement_position violation in hexagon path (5058746)
- suppress unseen badges for Claude tabs restored during startup (#63) (d40da30)
- use filled diamond glyph and monospaced font for shape dropdown (7b9f2df)
- use unicode-only labels for shape picker dropdown (83c2414)
0.16.0 (2026-03-30)
- add completed-unseen badge states for tabs (064ec44)
- add distinct visual identity for debug/dev builds (#49) (b27177a)
- add per-session Claude Code argument customization (40702e7)
- add Session Explorer window with timeline, fork, bookmarks, and AI summaries (#55) (64dd588), closes #52
- don't mark the currently visible tab as completed-unseen (c4d593a)
- preserve tmuxSessionName in closeProject snapshot (#58) (6921492)
- remove NSEvent monitor on ProjectPicker close (#59) (70875fa)
- resolve symlinks in ProjectItem to fix session resume on restart (#54) (100ddd4)
- resolve symlinks when looking up Claude session files (#51) (f9e648e)
- set PRODUCT_MODULE_NAME so dev build keeps stable module name (8c50e6a)
0.15.0 (2026-03-29)
- add FullDiskAccessChecker to probe FDA-protected paths (c51c3bf)
- prompt user to enable Full Disk Access on launch (e3085f4)
- use subprocess probe for FDA detection and sheet modal for prompt (56c6523)
0.14.1 (2026-03-28)
- override code signing in CI for debug builds (ee32cef)
- preserve user's custom statusLine config (#39) (#43) (2a48e5b)
- resolve Cmd+N shortcuts from sidebar order, not array order (#41) (663ee39)
- use dedicated tmux socket to preserve TCC permissions across restarts (#42) (10cc1eb)
- use team signing for debug builds to persist TCC consent (57abd6e)
0.14.0 (2026-03-27)
- auto-update Homebrew cask on release (6eb6bf0)
0.13.1 (2026-03-27)
- detect activity for setuid-root foreground processes (top, sudo) (7ac3509)
- filter download badge to count only DMG downloads (c544196)
0.13.0 (2026-03-26)
- show dev indicator in about screen and open settings about pane (06bc31f)
- use separate bundle ID for debug builds (7a60fe2)
0.12.0 (2026-03-26)
- improve tmux default options (2e323fb)
- show quota sparkline and token rate on non-Claude tabs (f75ed61)
- pre-flight TCC check to avoid repeated Documents access prompts (2c0f94a)
0.11.4 (2026-03-26)
- add --repo flag to gh release edit in release-please job (7699764)
0.11.3 (2026-03-26)
- keep update feed stable while new release builds (5a2a101)
0.11.2 (2026-03-26)
- correct malformed sparkle:edSignature in appcast.xml (df0e8fd)
- keep update feed stable while new release builds (a4437c9)
- save settings text fields on focus loss and window close (80983bd)
- sync CFBundleVersion with marketing version for Sparkle updates (1121dc9)
0.11.1 (2026-03-26)
- add TCC usage descriptions to prevent repeated file access prompts (84d97aa)
- make sidebar folder chevron clicks reliable (4c489e8)
- prevent sidebar rebuild from stealing focus during inline rename (bff13dd)
- skip Xcode signing during CI build, codesign in post-build step (5ec315a)
0.11.0 (2026-03-26)
- add code signing, notarization, and Sparkle auto-updates (91ca24a)
- add optional sidebar vibrancy with translucent blur effect (b5f31ff)
- show 0% when quota reset time has passed (a20adde)
0.10.0 (2026-03-25)
- add quota usage widget to sidebar (9a5843a)
- resolve SwiftLint violations in quota widget (e4c4d28)
- tmux copy-on-drag with pbcopy and taller options field (9d732b0)
0.9.0 (2026-03-25)
- editable tmux options in Settings > Terminal (481d601)
- split status indicators into two side-by-side tables (fcc002d)
- avoid duplicate tab numbers when creating new tabs (b529d78)
- copy text selection to clipboard in tmux terminals (bd08cdc)
- dragging only item from folder into folder above stays in place (4dc24cb)
- emoji and wide character rendering in tmux terminals (21d252e)
- emoji and wide character rendering in tmux terminals (3b0c019)
- exit tmux copy mode when switching tabs (2f34692)
- fixed settings window size (720x600) for all panes (d3a114a)
- keep text selection visible after mouse drag in tmux (bb5a4c7)
- keep text selection visible after mouse drag in tmux (57e894d)
- lock settings window to 720x600 with contentMinSize/contentMaxSize (b37a22e)
- prevent settings window from shrinking when switching panes (682feb9)
- replace NSTextView with NSTextField for tmux options (0531045)
- restart terminal shell on process exit instead of removing the tab (ffbb343)
- revert custom tmux clipboard/selection bindings, keep emoji fixes (25d4fc7)
- settings panes lay out top-to-bottom, no vertical stretching (b34d0c9)
- settings window size when switching panes (79ff640)
- settings window stays on screen when switching panes (523b442)
0.8.0 (2026-03-24)
- collapsible sidebar folders for organizing projects (3b824dd)
- collapsible sidebar folders for organizing projects (cf93305)
0.7.1 (2026-03-23)
- enable tmux mouse support for pane clicks and split dragging (55f956f)
- mouse drag in tmux panes (pane resize and text selection) (5864261)
- restore file drag-and-drop into terminal tabs (be4aa01)
0.7.0 (2026-03-23)
- tmux session persistence for terminal tabs (4cecd26)
- tmux session persistence for terminal tabs (ce45484)
- prevent context usage bar from flickering (e293a40)
- prevent context usage bar from flickering in Claude tabs (2a504a0)
0.6.0 (2026-03-23)
- configurable scrollback buffer (default 10,000 lines) (a23de73)
- left-align General pane, fix Shortcuts column widths (65b06f3)
- read version from bundle instead of hardcoded string (4ff5a1f)
- use fixed pane heights in Settings to prevent window explosion (e36ca77)
0.5.0 (2026-03-23)
- add font picker with preview to Settings, widen settings window (f481bcd)
- enable SwiftTerm Metal GPU renderer (8b5d557)
- replace theme picker table with 3-column grid of preview cards (55f7b51)
- add health check and auto-restart for control socket (d015e15)
- theme card previews now render colored terminal text (e66911d)
- use serial queue for control socket to prevent concurrent dictionary access (32c5415)
0.4.0 (2026-03-22)
- add dynamic theme support to DeckardWindowController (4054633)
- restore theme support with 485 Ghostty-format themes (cbdbd99)
- cancel dispatch source before closing client fd to prevent EV_VANISHED crash (ecb511f)
0.3.0 (2026-03-21)
- add crash reporter and startup diagnostic logging (2cb04aa)
- migrate from libghostty to SwiftTerm (a22158d)
- surface handling parity with Ghostty upstream (37c16e9)
- prevent deadlock and crashes from rapid tab creation (3a78b15)
- single-active-view model for terminal surfaces (8fb7bec)
0.2.0 (2026-03-21)
- replace claude wrapper with persistent hooks configuration (5e9c040)
- bypass login(1) via direct command execution (ec3509d)
- defer autosave until session restore completes (2d1b71f)
- dispatch ghostty surface calls off main thread to prevent deadlock (255003e)
- drain surfaceQueue before freeing ghostty surface (6ce3e2d)
- prevent deadlock and crashes from rapid tab creation (04d3568)
- rebuild sidebar when creating new tabs interactively (517992d)
- respect user's default shell for terminal tabs (#15) (6760c3a)
- respect user's default shell for terminal tabs (#15) (1cef76d)
- respect user's default shell for terminal tabs (#15) (f11fb9c)
- rewrite process monitor to use socket-based PID registration (a29f58c)
- suppress "Last login" message via ghostty macos-hush-login option (51a575b)
- sync sidebar dots when tabs are reordered (e186d76)
- use Deckard's claude wrapper for hooks and activity detection (43063c3)
- use register-pid script for shell-less tab spawning (505d339)
- use shell PID as activity tracking key instead of login PID (b4ffa8f)
- write hooks to settings.json without escaped slashes (489e2bf)