Skip to content

Latest commit

 

History

History
276 lines (235 loc) · 35.8 KB

File metadata and controls

276 lines (235 loc) · 35.8 KB

Changelog

1.3.0 (2026-03-01)

Features

  • check for updates on startup and show notification icon (a5d0a2b)

Bug Fixes

  • show alert dialog when creating worktree in non-git or empty repo (d15c3b4)

1.2.4 (2026-03-01)

Features

  • show version number in window title bar (a3229fa)
  • wire remote + button to create tabs and worktree tabs (539ddc3)
  • forward worktree progress events to remote WS clients (2d175f5)

Bug Fixes

  • prevent garbled display and wrong dimensions on remote mobile client (cb3b8e8)
  • spawn cloudflared binary directly instead of using npm package wrapper (e55d431)
  • position new-tab dropdown with fixed positioning in remote web client (71f33b4)
  • set dark background color to prevent white flash on startup (159927d)

1.2.3 (2026-03-01)

Features

  • add two-finger swipe scrollback for mobile remote access (34c1d6c)

Bug Fixes

  • auto-retry cloudflared quick tunnel on transient UUID failures (7b27408)
  • disable tunnel Activate button with spinner while activating (d51e4fd)
  • use random port for remote tunnel to allow multiple instances (92fa6a3)

1.2.2 (2026-03-01)

Bug Fixes

  • add missing API stubs to ws-bridge for remote mobile client (cd8968e)
  • install cloudflared to writable userData path with download progress (af329ed)
  • surface tunnel errors in UI with retry instead of stuck connecting (6f5c4b8)

1.2.1 (2026-03-01)

Bug Fixes

  • set executableName only on Linux to avoid breaking Squirrel (e70d4b9)

1.2.0 (2026-03-01)

Features

  • display hook execution status in StatusBar with auto-dismiss (445c3a1)

Bug Fixes

  • add executableName for Linux deb/rpm packaging (4a4cfc9)
  • emit worktree:created and tab:created hooks from tab:createWithWorktree (0084df1)
  • emit worktree:removed hook when closing tab with removeWorktree (63f3c49)
  • open terminal links in default browser via shell.openExternal (3ed1bee)
  • shell tabs spawn next to active tab and receive focus (a61f5ec)

Documentation

  • document repository hooks system and StatusBar hook feedback (5711814)
  • overhaul README for discoverability and add LICENSE (dcff073)

1.1.0 (2026-03-01)

Features

  • add action buttons and open status to worktree manager (7622d52)
  • add animated installer splash with progress bar (0a9a96e)
  • add App shell with keyboard shortcuts and styles (93ccde9)
  • add buildWindowTitle utility for dynamic window title (8b73179)
  • add custom app icon for window, taskbar, and installer (02cefee)
  • add delete button to remove directories from startup history (9f1825e)
  • add HamburgerMenu component with dropdown (703b929)
  • add hook installer that writes .claude/settings.local.json (c586556)
  • add hook scripts for Claude Code status communication (c77c491)
  • add installer config, hooks copy, and CLI auto-start (5716369)
  • add IPC bridge and tab restoration on session start (931c4c1)
  • add logging and error handling to session persistence (513c3b0)
  • add named pipe IPC server for hook communication (2cd3786)
  • add preload API and all renderer components (cdccf0e)
  • add PTY manager for spawning Claude processes (6078d72)
  • add right-click paste when no text is selected (b06f15a)
  • add session persistence data layer for tab restore (6053410)
  • add session persistence to main process (ad0170f)
  • add settings store for recent dirs and permission mode (64ecc48)
  • add shared types for tabs, IPC messages, and permissions (58f1477)
  • add shell tab backend support (PowerShell/WSL) (4cf2457)
  • add shell tab frontend - chevron dropdown, new-tab menu, shortcuts (776da6e)
  • add Squirrel event handling with CLI shim and PATH management (f50592f)
  • add tab manager for tab lifecycle and state (731d95b)
  • add TabIndicator component with Lucide icons (f904050)
  • add window:setTitle IPC channel and preload API (5145d6c)
  • add worktree loading animation with progress streaming (a376222)
  • add worktree manager for creating/removing git worktrees (00c2313)
  • add worktree:listDetails and worktree:remove IPC channels (937b7f9)
  • add WorktreeManager.listDetails() for worktree status (ce01767)
  • add WorktreeManagerDialog component (3789d7e)
  • auto-show new tab dialog on first startup (b2b0e91)
  • bundle ws native deps and parallelize session tab restoration (73b4ce5)
  • capture session_id from stdin in on-session-start hook (f144d91)
  • clean up naming flag files on tab close (4f7f136)
  • Ctrl+T instant new tab, Ctrl+W worktree tab with name prompt (2d32f9f)
  • double-click directory to start session + startup dialog docs (a18e518)
  • dynamically update window title with tab status counts (2e03b17)
  • extract hook-router module from index.ts (e741b8a)
  • extract ipc-handlers module from index.ts (da6887c)
  • extract shared claude-cli helper (closes #7) (7865006)
  • extract tab-namer module from index.ts (881ae8f)
  • generate tab names with Claude Haiku in background (9606516)
  • hooks: add cross-spawn and tree-kill dependencies (4caa96e)
  • hooks: add HookManagerDialog UI component with styles (a055cf3)
  • hooks: add IPC handlers for hook config CRUD and status events (77858c8)
  • hooks: add shared types for hook config (f1a9ac9)
  • hooks: implement HookConfigStore for loading/saving hooks.json (5fd5a6e)
  • hooks: implement HookEngine for command execution (d3e7902)
  • hooks: integrate HookEngine with worktree, tab, and session lifecycle (aa644c9)
  • hooks: wire HookManagerDialog into hamburger menu and App (899c7b3)
  • move cloud icon to left of hamburger menu (490f8c1)
  • persist sessions on every state change, not just quit (627a98a)
  • right-click copies selected text to clipboard in terminal (8247891)
  • scaffold Electron Forge project with React, xterm.js, node-pty (150cc1e)
  • send tab:generate-name on first prompt only (f81858d)
  • show current git branch in window title (c044907)
  • simplify title status and add status counts to footer (c955a03)
  • support Ctrl+Enter for multi-line input (180ca08)
  • use 6-char alphanumeric code and auto-reconnect for remote access (7bf8eb5)
  • use TabIndicator in Tab and StatusBar components (97c27d2)
  • WebGL renderer with PTY data loss fix (#2) (b63fef2)
  • wire hamburger menu and worktree manager into app (853deca)
  • wire up main process with IPC handlers, PTY, and hooks (a4950f8)

Bug Fixes

  • add cancelled guards in saved-tabs restoration loop (f5a8f34), closes #18
  • add error handler to IPC server sockets to prevent crashes (55df7c1), closes #16
  • add error handling to WorktreeManagerDialog (#54) (481a21a)
  • add icon for new tab status and fix status bar icon visibility (3650e97)
  • add missing tree-kill dependency and cross-spawn types (ab2836b)
  • add workspaceDir guard in tab:create handler (c67c249), closes #2
  • add worktree name validation to NewTabDialog (7c8f297), closes #20
  • address code review - remove unused import, add tests, add comment (7ae2cc8)
  • allow Alt-F4 to close app and confirm when tabs are working (782a342)
  • bundle electron-store instead of externalizing it (5fb5714)
  • bundle ws/qrcode and copy cloudflared for packaged app (d584564)
  • change close-tab shortcut from Ctrl+W to Ctrl+F4 (3595472)
  • clean up orphaned PTY processes on unmount during restore (#57) (0cc4185)
  • close active connections in HookIpcServer.stop() (#52) (0214bae)
  • close gitHeadWatcher on app shutdown (#51) (dd8532e)
  • debounce tab close to prevent /clear from removing tabs (b4d4bc0)
  • differentiate ENOENT from unexpected errors in getSessions logging (94581e7)
  • disable asar and manually copy native modules for production builds (16c44ac)
  • dismiss worktree dialog only after async ops complete (#55) (37a98ec)
  • don't persist new sessions with no user interaction (b6c70f9)
  • eliminate 1-2s delay when closing tabs on Windows (de35fa4)
  • eliminate stale tabsRef race in onTabRemoved callback (67c70f5), closes #4
  • filter undefined values from env before passing to node-pty (8c4890f), closes #19
  • focus terminal immediately after tab switch (634483a)
  • guard hook execFileSync calls to prevent Claude Code crashes (c0c5d79), closes #1
  • guard tab:close to prevent double tab:removed emission (3f34da8), closes #17
  • hooks: address review feedback - branch tracking, shell tab hooks, close guard, remove cast (6b67b9d)
  • improve tab and status bar color scheme for better contrast (5aff36e), closes #37373d
  • improve terminal rendering and keyboard shortcut passthrough (f60b767)
  • kill process tree on generateTabName timeout on Windows (f7a9be7), closes #3
  • make StartupDialog recent-dirs list keyboard-accessible (863cd07), closes #21
  • make WorktreeManager.list() private (d4d0c33), closes #10
  • merge duplicate did-finish-load handlers, defer IPC server construction (2609a7f), closes #25 #26
  • move session storage to per-directory and add debug logging (74c1699)
  • only register onMessage when IPC server starts successfully (#56) (0dc890b)
  • open URLs in default browser instead of Electron (0f47467)
  • pass -w flag to Claude when spawning worktree tabs (51e8069)
  • pass correct branch name in worktree:created hook (43b13c4)
  • pass Ctrl+P and Ctrl+L through xterm key filter (4fc8aea)
  • pass worktree path (not name) to createTab and validate input (a0d40f8)
  • persist all claude tabs regardless of status (78a5bd2)
  • persist sessions on user-initiated tab rename (caec392)
  • preserve tab names across app reload (440ac18)
  • prevent PATH corruption from setx 1024-char truncation (#50) (c5a7ffc)
  • prevent resumed idle sessions from being dropped on next persist (6ccf306)
  • prevent second app instance spawning on tab close (2c4eba5)
  • prevent session persistence from wiping saved tabs on reload/quit (d3a4a96)
  • prevent shell injection in worktree-manager (#49) (ae1839c)
  • prevent Squirrel version numbers from polluting recent dirs history (b870460)
  • prevent tab-naming Claude calls from polluting /resume history (3b77b5d)
  • proper JSON escaping in pipe-send and cross-platform temp dir (df3987a)
  • remove 5s worktree polling timer that caused periodic slowdowns (e660d9a)
  • remove dead .selected-dir CSS class (2ebba77), closes #14
  • remove dead PtyManager.getPty() method (ededeeb), closes #11
  • remove debug log file leak from on-session-start hook (1a5a697), closes #15
  • remove default application menu (89e54fc)
  • remove redundant getCliStartDir call from StartupDialog (60b8e70), closes #13
  • remove single-instance lock to allow multiple app windows (09e960b)
  • remove unused @electron-forge/plugin-auto-unpack-natives dependency (caa03a0), closes #22
  • remove WebGL addon and debug logging from terminal (1f5f414)
  • replace electron-store with plain JSON store and switch to pnpm (a065478)
  • replace global CustomEvent with props for tab rename (#24) (6f83316)
  • reset tab name to default on /clear (bc415fb)
  • resolve TypeScript errors and build configuration (f1ff13f)
  • restore dropped comments documenting bug-fix rationale (2adb7fb)
  • rewrite hooks for Windows compatibility (4ee609f)
  • right-align cloud icon together with hamburger menu (1837390)
  • set window icon and improve icon visibility on dark backgrounds (b675f11)
  • spawn claude through cmd.exe on Windows for node-pty compatibility (799de91)
  • standardize on node: prefix for built-in imports (#6) (9b834b0)
  • startup dialog browse adds dir to history and Enter submits (78ef62b)
  • startup dialog not showing and clean up layout (6fc5ab9)
  • stop DevTools from auto-opening on startup (60cf3c4)
  • sync tests with current window-title and pty-manager implementations (be5ff45)
  • update TabIndicator test for new/shell statuses (540f204)
  • upgrade @typescript-eslint from v5 to v8 (#23) (b47fa94)
  • upgrade TypeScript to 5.x, enable strict mode, fix moduleResolution (5d153a9)
  • use distinct icons for PS vs WSL tabs, update status bar shortcuts (f4adddd)
  • use JSON.stringify for executeJavaScript tab ID escaping (#58) (7f7186c)
  • use lucide-lab penguin icon for WSL tabs (85c619c)
  • use per-process disk cache dir to avoid lock conflicts (bc7f34d)
  • use per-process IPC pipe name to support multiple instances (f7adb2a)
  • use pnpm in make script for CI consistency (307dd0c)
  • use SessionStart source field to detect /clear instead of sessionId check (6dc8337)
  • wrap remaining handlers in useCallback for consistency (#9) (92f0e6d)
  • write naming flag only after successful pipe send (080f2a4), closes #5

Performance

  • add will-change hints to tab indicator animations (59f62ec)
  • cap PTY flow control buffer at 5MB per tab (9e7767d)
  • convert sync I/O to async across main process (5dfd597)
  • debounce persistSessions() with 200ms delay (c6bc1b2)
  • extract useClickOutside hook, deduplicate 4 event listeners (f907ac7)
  • memoize Tab component and stabilize TabBar handlers (ae6ccf4)
  • memoize Terminal and StatusBar components (ee81fed)
  • optimize packaged app size (143 MB → 126 MB installer) (a6bcb2d)
  • stabilize keyboard handler with useRef for tabs/activeTabId (1a33519)

Refactoring

  • rewrite index.ts as lifecycle glue wiring extracted modules (b508ffa)
  • use @lucide/lab penguin icon instead of inline SVG (9bafe13)
  • use shared getClaudeCommand in pty-manager (0563616)

Documentation

  • add AGENTS.md and project documentation (3219455)
  • add design for index.ts refactoring (#7, #42, #43) (6518402)
  • add feature architecture docs and documentation index in AGENTS.md (272eca3)
  • add hamburger menu + worktree manager design (5bd2b43)
  • add hamburger menu + worktree manager implementation plan (f0b08c2)
  • add implementation plan for index.ts refactoring (710fbef)
  • add project README (833b6a2)
  • add repository hooks implementation plan (091b681)
  • add repository hooks system design (c4b6ffa)
  • add screenshot to README (1a5ff19)
  • add tab indicator icons design (674971f)
  • add tab indicator icons implementation plan (39ba45b)
  • add versioning and releases design document (01319b5)
  • add versioning and releases implementation plan (7641c5c)
  • add Windows shell tabs design (415a82a)
  • add Windows shell tabs implementation plan (83d44ab)
  • update documentation to match current codebase (42ea28c)
  • update README with current features and reorganize sections (8d0c5b3)

Miscellaneous

  • add .worktrees/ to .gitignore (b4bf74d)
  • add dotenv-cli for loading .env in release scripts (5564694)
  • add release-it dependencies (603a3f5)
  • add rule preventing unauthorized worktree merges to AGENTS.md (e0163ea)
  • configure release-it with conventional changelog (965c6b8)