Commit Graph
228 Commits
Author SHA1 Message Date
JinjingandClaude Opus 4.6 2b3515da0c fix(ui): unify split download button into single cohesive element
Merge the separate download action button and dismiss button into one
unified button element. The dismiss icon now appears on hover only,
eliminating the visual split.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-26 16:31:34 -07:00
Matheus Nogueira 1a10fbfbe6 1.0.50 v1.0.50 2026-03-26 20:21:19 -03:00
Matheus Nogueira 390c3f5ceb fix(terminal): support Ctrl/Cmd+Shift+C copy shortcut (#129) 2026-03-26 20:20:42 -03:00
Jinjing 0d58a0bc45 feat: reduce GitHub API usage for checks and improve cache invalidation (#127)
- Fix ChecksPanel memory leak: add cancelled flag to prevent schedulePoll after unmount
- Include status in check signature for proper backoff reset on state transitions
- ChecksPanel lint: use ternary instead of if/else
- Don't cache empty string on gh CLI failure so login detection retries
- Clear checksCache on refreshAllGitHub to ensure fresh data
- Remove dead fetchIssueList code and supporting infrastructure
2026-03-26 16:14:05 -07:00
JinjingandClaude Opus 4.6 d7895d575d style: remove redundant PR state label from worktree card header (#128)
The PR state (merged/open/closed/draft) is already accessible via tooltip,
so the inline text label in the header is unnecessary visual noise.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-26 16:06:59 -07:00
Jinjing 30c01f4c29 1.0.49 v1.0.49 2026-03-26 15:56:30 -07:00
Jinwoo HongandClaude Opus 4.6 796296ee25 feat: VS Code-style preview tabs for editor (#126)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-26 14:53:46 -07:00
Neil 605aba900b 1.0.48 v1.0.48 2026-03-26 14:48:02 -07:00
NeilandClaude Opus 4.6 f5f125e7db fix: prevent macOS auto-update from appearing to fail silently
Two issues caused "Restart to Update" to not apply the update on macOS:

1. Premature window destruction: quitAndInstall() destroyed all windows
   before calling autoUpdater.quitAndInstall(). On macOS, MacUpdater
   delegates to Squirrel.Mac which may not be ready yet — it registers
   a listener and returns. With zero windows, the dock "activate" handler
   would re-open the old version, making it appear the update failed.
   Fix: remove close listeners (so windows don't block quit) but don't
   destroy them. Let Squirrel.Mac handle the actual quit.

2. Premature "ready to install" status: electron-updater fires its
   'update-downloaded' event after downloading the ZIP from GitHub, but
   BEFORE Squirrel.Mac finishes downloading from the localhost proxy.
   The UI showed "ready to install" when the update wasn't actually
   installable yet. Fix: on macOS, defer the 'downloaded' status until
   Electron's native autoUpdater confirms Squirrel has the update.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-26 14:47:47 -07:00
Neil bad6ad51a9 1.0.47 v1.0.47 2026-03-26 14:21:15 -07:00
NeilandClaude Opus 4.6 464287db31 fix: include arch in DMG artifact name to prevent x64/arm64 collision
Both x64 and arm64 DMGs were named identically (orca-{version}.dmg),
causing one to overwrite the other during release upload.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-26 14:21:03 -07:00
Neil 0100a98bfc 1.0.46 v1.0.46 2026-03-26 13:05:01 -07:00
Jinwoo HongandClaude Opus 4.6 4d4d1ad2a6 fix: preserve 'show active only' filter when creating a worktree (#117)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-26 13:04:41 -07:00
Neil c3d5b62644 1.0.45 v1.0.45 2026-03-26 12:53:32 -07:00
NeilandClaude Opus 4.6 38c5b6b970 fix: stabilize active worktree order in 'recent' sort (#116)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-26 12:51:05 -07:00
JinjingandClaude Opus 4.6 406f95b072 style: adjust worktree card comment styling and status indicator padding (#115)
Remove italic from comment text and tweak status indicator top padding from 3px to 2px.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-26 08:21:39 -07:00
JinjingandClaude Opus 4.6 149acf26bb fix: address review findings in updater flow (#114)
- Add console.error logging to startup update check catch block
- Add state guard to downloadUpdate() to prevent calls outside 'available' state
- Track and dismiss 'available' toast when download starts or completes
- Include version number in downloading status text

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-26 07:35:52 -07:00
Neil 6650289dcb Update README.md 2026-03-26 01:48:34 -07:00
Neil 8b8ef58245 Revise README heading and add link
Updated heading structure and added link formatting.
2026-03-26 01:48:01 -07:00
Neil e0c90f0c06 Update project title link in README 2026-03-26 01:47:22 -07:00
Neil 954678011a Fix Markdown link formatting in README 2026-03-26 01:46:22 -07:00
Neil 4a3e1e2b1f Update README.md 2026-03-26 01:46:00 -07:00
Jinjing 00f82f9004 1.0.44 v1.0.44 2026-03-26 00:28:52 -07:00
JinjingandClaude Opus 4.6 d127b2cfb3 feat: polish UI with softer borders, smaller labels, and PR state colors (#113)
Soften border opacity across UI components, move label default to text-xs,
simplify worktree group tones, and color PR icons by state.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-26 00:20:58 -07:00
NeilandClaude Opus 4.6 27b29a0f8d fix: make release publish atomic to prevent update 404s (#112)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-26 00:02:31 -07:00
Neil c04275a5f2 1.0.43 v1.0.43 2026-03-25 23:45:50 -07:00
NeilandClaude Opus 4.6 f473e3f53e fix: exclude xterm helper textarea from editable target check (#111)
PR #103 added a blanket isEditableTarget() guard that inadvertently
matched xterm.js's internal <textarea class="xterm-helper-textarea">,
blocking Cmd+D (split pane), Shift+Enter (newline), and all other
terminal shortcuts whenever the terminal was focused.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-25 23:44:30 -07:00
JinjingandClaude Opus 4.6 8adecbecce feat: replace monospace body font with Geist Sans (#110)
Switch the app-wide font from SF Mono/monospace to Geist Sans for a
more polished, modern UI. Bundle the variable woff2 font in assets for
cross-platform support. Remove font-mono from sidebar and settings
components while keeping monospace in terminal/editor contexts.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-25 23:16:22 -07:00
JinjingandClaude Opus 4.6 902e2271b9 fix: handle orphaned worktree deletion with disk cleanup (#109)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-25 23:14:48 -07:00
JinjingandClaude Opus 4.6 69978c93f5 test: expand test coverage and extract worktree logic into testable module (#108)
Add comprehensive tests for worktree parsing, GitHub check status derivation,
hooks YAML parsing, persistence store, layout serialization, store cascades,
and terminal helpers. Extract pure functions from worktrees.ts into
worktree-logic.ts for better testability.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-25 22:34:20 -07:00
Neil 951ab72d7b 1.0.42 v1.0.42 2026-03-25 22:27:15 -07:00
NeilandClaude Opus 4.6 3d4ed411c5 feat: editable diff views for unstaged changes (#107)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-25 22:25:36 -07:00
Neil 0bea9aa4ff Clickable Claude Code #PR (#106) 2026-03-25 22:24:19 -07:00
NeilandClaude Opus 4.6 0785dd7b7b fix: fetch latest remote before worktree creation & improve settings spacing (#105)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-25 22:16:11 -07:00
JinjingandClaude Opus 4.6 4c0eee235b fix: extract path-security helpers, add tests, and improve type safety (#102)
* fix: extract path-security helpers and refactor IPC modules

- Extracted path-security helpers from filesystem.ts into filesystem-auth.ts to fix max-lines lint error (402 -> 293 lines)
- Extracted duplicated ENOENT detection into isENOENT() helper to eliminate code duplication
- Fixed missing curly braces on single-line if-return in isDescendantOrEqual (lint violation)
- Replaced any with unknown in test files to satisfy lint rules
- All tests passing (29/29)
- Lint clean (0 errors, 0 warnings)

* fix: bundle preload deps for sandbox mode and fix editor test types

The sandbox: true change in createMainWindow broke the app because
electron-vite was externalizing @electron-toolkit/preload, producing
a require() call that fails in sandboxed preload scripts. Exclude it
from externalization so it gets bundled inline.

Also fix type errors in editor.test.ts from the partial store setup.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-25 09:59:19 -07:00
JinjingandClaude Opus 4.6 6aab126edb fix: prevent terminal shortcuts from intercepting keystrokes in editable elements (#103)
Replace fragile tagName checks with a robust isEditableTarget() helper that
covers input, textarea, select, and contenteditable elements. Also add
Cmd/Ctrl+Enter support and stopPropagation to the WorktreeMetaDialog comment
textarea so Enter doesn't trigger terminal handlers.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-25 09:52:46 -07:00
Jinjing a53903ffb5 1.0.41 v1.0.41 2026-03-25 09:38:22 -07:00
Jinjing ddc8a78744 Display PR checks and title updates (#101)
- Add PR checks panel to right sidebar
- Stream checks from GitHub API
- Update PR title real-time with loading state
- Add error logging and dependency fixes
- Fix linting issues (curly braces, exhaustive deps)
2026-03-25 09:29:39 -07:00
NeilandClaude Opus 4.6 0b9624ec70 feat: linux-friendly keyboard shortcuts (#93)
* feat: make keyboard shortcuts work with Ctrl on Linux/Windows

All Cmd+X shortcuts now also respond to Ctrl+X on non-Mac platforms.
Tooltip hints show platform-appropriate modifier symbols.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* docs: add cross-platform guidelines to AGENTS.md

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-24 22:21:14 -07:00
Jinjing 8da05ff386 1.0.40 v1.0.40 2026-03-24 21:57:37 -07:00
JinjingandClaude Opus 4.6 bcf134c19f fix: clear stale agent working indicators when title stops updating (#100)
Adds clearWorkingIndicators to strip spinner/prefix/keyword markers from
terminal titles after 3s of data flow without a title update, preventing
the UI from showing a stuck "working" status after an agent exits.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-24 21:43:19 -07:00
Jinjing 624786d4cd fix: stream file search results and cancel stale searches (#99) 2026-03-24 21:30:35 -07:00
Jinjing 9c5a1f48bb Add PR checks workflow and Vitest coverage (#97) 2026-03-24 20:53:38 -07:00
Jinjing 431c14d0a4 1.0.39 v1.0.39 2026-03-24 20:38:56 -07:00
JinjingandClaude Opus 4.6 bd78551935 refactor: modularize main process and Terminal component (#96)
Extract main process into focused modules (startup, window, menu, IPC
registration) and decompose the monolithic Terminal component into
TerminalShell, useTerminalTabs, useTerminalShortcuts, and
useTerminalSaveDialog hooks.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-24 20:17:34 -07:00
Jinjing 2b9e5d7486 fix: persist repo sidebar filters (#94) 2026-03-24 20:05:44 -07:00
Jinjing f5dc4de2a8 fix: sync pty size after terminal appearance changes (#95) 2026-03-24 19:52:56 -07:00
NeilandClaude Opus 4.6 c7eeef4e8c feat: add worktree rename (display name) (#90)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-24 19:03:15 -07:00
NeilandClaude Opus 4.6 556f31abcd feat: drag-and-drop reordering for editor file tabs (#86)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-24 19:03:13 -07:00
NeilandClaude Opus 4.6 04e85504bb fix: allow Option+Backspace word-delete in input fields (#89)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-24 19:02:57 -07:00