Commit graph

38 commits

Author SHA1 Message Date
Anish Lakhwara 35983681e4 Update diff viewer 2025-11-08 21:15:14 -08:00
Anish Lakhwara e04c67133b diff viewer 2025-11-08 00:33:44 -08:00
Anish Lakhwara df06be7bc7 Add Nix flake, development scripts, and web server setup documentation
Amp-Thread-ID: https://ampcode.com/threads/T-a6cf4bd2-36d0-4ef8-ada6-a8e2850fcacf
Co-authored-by: Amp <amp@ampcode.com>
2025-10-11 16:57:37 -07:00
Amrit Subramanian c431f8ff9d Move unread indicator to left and add activity spinner
- Move unread indicator from right to left of session name in tabs
- Add yellow spinning indicator when output is actively coming in
- Spinner automatically transitions to blue dot after 1s of idle
- Activity indicator properly preserves unread status
2025-10-10 19:55:23 -04:00
Amrit Subramanian d19fc88992 Improve unread indicator detection
- Fix unread indicator to only trigger when Claude finishes responding (using `>\r\n` pattern instead of timer-based detection)
- Separate terminal ready detection logic for shell initialization vs Claude interactive session completion
- Add terminal-utils.ts with `isTerminalReady()` (shell) and `isClaudeSessionReady()` (Claude interactive)
- Update renderer.ts to use `isClaudeSessionReady()` and remove timer-based detection logic
2025-10-10 19:39:50 -04:00
Amrit Subramanian ead8191b22 Fix MCP server removal and execAsync shell invocation
- Fix execInLoginShell to properly wrap commands instead of malformed shell option
- Fix serverMap accumulating deleted servers by clearing on each poll
- Add optimistic UI removal for instant feedback when removing servers
- Add refresh after add operation with loading spinner
- Remove recently removed servers tracking (unnecessary with proper serverMap clear)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-08 00:11:22 -04:00
Amrit Subramanian 45f2aaefa3 Extract and force MCP server refresh after add/remove operations
- Add refreshMcpServers() helper to force immediate list refresh
- Shows loading spinner on add button during refresh
- Waits 500ms for poller to process and return results
- Both add and remove operations now trigger forced refresh
- Ensures UI updates immediately after server changes

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-07 23:40:39 -04:00
Amrit Subramanian d3231fcb15 Add animated spinner to MCP add button loading state
Shows loading-spinner animation alongside "Adding..." text
while waiting for MCP server addition to complete.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-07 23:28:45 -04:00
Amrit Subramanian 4dce901166 Remove unused sessionId parameter from MCP handlers
Since MCP commands now run in independent login shells via execAsync,
the sessionId parameter is no longer needed.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-07 23:20:26 -04:00
Amrit Subramanian 84e43f656c Run MCP add/remove/get commands in poller PTY instead of execAsync
- Fixes issue where execAsync spawns non-login shell without claude in PATH
- All MCP operations now run in the session's MCP poller PTY
- Adds executeInMcpPoller helper to run commands and wait for completion
- Uses prompt detection to know when command finishes
- 10 second timeout for safety

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-07 19:37:08 -04:00
built-by-as c07124b6e9
Revert "Add worktree path display to session sidebar" 2025-10-07 15:15:54 -04:00
Amrit Subramanian d25d969dde Add worktree path display to session sidebar
Shows the worktree directory path below each session name in the sidebar with subtle gray text to help users identify where each session's files are located.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-07 15:02:14 -04:00
Amrit Subramanian 2e88696071 Add configurable worktree root directory setting
Users can now configure where worktrees are stored via the settings modal. The setting is persisted and applies to all new sessions created after the change.

Changes:
- Added worktreeDir field to TerminalSettings interface
- Added UI controls in settings modal for selecting worktree directory
- Updated worktree creation logic to use configured directory
- Defaults to ~/worktrees for backward compatibility
2025-10-07 14:55:35 -04:00
Amrit Subramanian ea581b76c6 Hide MCP section when deleting last active session
When a session is deleted and there are no remaining active sessions,
hide the MCP servers section to match the behavior of closeSession.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-07 13:28:15 -04:00
Amrit Subramanian d33ed2c40e Clear MCP sidebar when switching between sessions
Fixes issue where MCP servers from previous session would remain visible
in sidebar until new session's servers loaded.
2025-10-06 18:38:26 -04:00
Amrit Subramanian 2930290662 resizing works, delete git branch when deleting session 2025-10-06 18:05:14 -04:00
Amrit Subramanian d0e5122077 Upgrade to @xterm/addon-fit from xterm-addon-fit
- Replaced deprecated xterm-addon-fit with modern @xterm/addon-fit package
- Updated import statement to use scoped package name
- No functional changes, just using the newer maintained package

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-05 21:12:37 -04:00
Amrit Subramanian fcd62c27bb Add custom branch name feature
Users can now specify a custom branch name when creating a session. If provided, the custom name is used as both the git branch name and the session display name.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-05 17:09:48 -04:00
Amrit Subramanian 9405824d7b Add loading spinner to MCP add button during polling
- Send mcp-polling-started event from main process before each poll
- Show spinner on add button when polling starts
- Restore + button when mcp-servers-updated event received
- Spinner shows on initial load and every 60s refresh
2025-10-05 16:13:23 -04:00
Amrit Subramanian 54e7a1adb4 Implement per-session MCP server polling with headless PTY
- Add headless PTY poller for each session that runs in session's worktree directory
- Spawn MCP poller when Claude shows > prompt (authenticated context)
- Parse MCP server output with regex, merge servers by name to handle chunked data
- Show/hide MCP section based on active session
- Clean up MCP pollers on session close/delete
- Add unique UUID suffix to branch names to prevent conflicts on recreate
- Remove global MCP polling interval in favor of per-session polling
2025-10-05 13:47:37 -04:00
Amrit Subramanian cd4e0f64c8 Add login shell support, session creation loading state, and refactoring
- Spawn PTY as login shell (-l flag) to properly source shell configs (fixes pyenv issues)
- Add animated loading spinner to session creation button
- Refactor duplicate PTY spawning logic into shared spawnSessionPty() function
- Fix unread indicator bugs (clear timers on session switch/close/delete)
- Configure electron-builder to publish releases instead of drafts
- Remove Windows builds (node-pty compilation issues)
2025-10-04 22:49:33 -04:00
Amrit Subramanian 8f4b1ab367 try to fix unread indicator 2025-10-03 17:03:50 -04:00
Amrit Subramanian 7d7a545ef8 readme 2025-10-03 16:55:59 -04:00
Amrit Subramanian c45ac9ea98 set up commands before claude 2025-10-03 16:27:22 -04:00
Amrit Subramanian 020d8ba82d configurable themes 2025-10-03 16:18:18 -04:00
Amrit Subramanian 7c1a97ea58 fix unread indicator 2025-10-03 15:14:12 -04:00
Amrit Subramanian f05d2502c5 ignore fleetcode directory 2025-10-03 15:12:46 -04:00
Amrit Subramanian 61d2defd93 unread indicator 2025-10-03 12:14:46 -04:00
Amrit Subramanian 230814bee4 unread indicator 2025-10-03 11:28:26 -04:00
Amrit Subramanian d01e715e68 mcp servers and a bunch of stuff 2025-10-03 01:13:24 -04:00
Amrit Subramanian 1c614c9d28 add mcp server working 2025-10-03 00:25:36 -04:00
Amrit Subramanian 1d873aa82a worktrees 2025-10-02 21:16:50 -04:00
Amrit Subramanian fe287a2f53 persist settings for quicker session creation 2025-10-02 20:47:20 -04:00
Amrit Subramanian f61aca9d09 session config 2025-10-02 20:20:05 -04:00
Amrit Subramanian 66e0c96b75 refactor styles 2025-10-02 18:33:22 -04:00
Amrit Subramanian 7fd4968a35 some terminal session fixes 2025-10-02 13:22:03 -04:00
Amrit Subramanian 272f763e71 sidebar 2025-10-02 13:16:38 -04:00
Amrit Subramanian cec2c28ce1 typescript 2025-10-02 13:03:09 -04:00
Renamed from renderer.js (Browse further)