When macOS re-activates the app after all windows are closed, `createWindow()` is called
again but IPC handlers from the previous window were still registered, causing duplicate
handler errors and crashes. This fix removes stale handlers before re-registering them
in pty, repos, and worktrees modules, and ensures repo/worktree handlers + auto-updater
are also set up on activate. Includes minor lint/style cleanups across the codebase.
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Show CI check status icons (success/failure/pending) next to the branch
name on worktree cards. Return 'neutral' instead of 'pending' when no
CI checks exist to avoid showing a misleading spinner. Fix lint errors
in client.ts (curly braces, array-type).
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
- Add terminal link detection that recognizes file paths with optional
line:column suffixes and opens them in the editor or externally
- Split shell IPC into separate openUrl, openFilePath, openFileUri, and
pathExists handlers with proper URL/path validation
- Register xterm link providers per pane with path existence caching
- Support OSC 8 hyperlinks for http(s) and file: protocols
- Add editor-reveal-location custom event for jumping to line/column
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Merge the separate "Link Issue" and "Edit Comment" modals into a single
"Edit Worktree Details" dialog. Add double-click on worktree cards to
open the unified editor. Context menu items now focus the relevant field.
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
When all PTYs are dead after shutdown, bump a generation counter on
terminal tabs so React remounts TerminalPane components with fresh
PTY connections instead of showing stale terminals.
Also converts interfaces to type aliases in types.ts to satisfy linter.
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
- Return empty fragment instead of null to satisfy JSX.Element return type
- Remove unused paneTransportsRef parameter and PtyTransport import
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Remove unused `paneTransportsRef` from context menu hook and fix
`EditorPanel` return type to allow `null`.
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Use Vite worker imports to bundle Monaco web workers instead of relying on CDN,
and correct language IDs for .tsx/.jsx files to typescriptreact/javascriptreact.
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Add break-all to worktree name and use proper flex layout for error
messages to prevent long text from overflowing the dialog.
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Split the monolithic TerminalPane component into focused custom hooks
(lifecycle, context menu, global effects, dark mode detection) and break
the large terminal-themes-data file into organized modules.
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Previously, creating a worktree would auto-filter the sidebar to the
current repo, which could be confusing. Now clears the filter so all
worktrees remain visible, relying on revealWorktreeInSidebar to scroll
to the newly created worktree.
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Move activeWorktreeId/activeTabId clearing out of shutdownWorktreeTerminals
(a terminal-focused store action) and into the UI component that triggers
shutdown. The delete flow already handles this independently in worktrees.ts.
Also fix pre-existing lint issues and extract terminal helpers to separate file.
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* repo-added notifications feature
- Add repo-added notifications
* Fix lint issues in repos slice: use type alias, add curly braces
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Adds 4px top-left margin with matching size reduction to prevent
terminal content from touching the pane edges.
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
- Wider invisible hit area around dividers (visible line drawn via CSS
::after pseudo-element) for easier grabbing
- Persist split ratios in layout snapshots so resized panes survive
tab switches and restores
- Double-click divider to equalize sibling panes
- Notify onLayoutChanged after drag-end to trigger ratio persistence
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>