Commit Graph
237 Commits
Author SHA1 Message Date
JinjingandClaude Opus 4.6 e9db9f42ae refactor: replace custom PullRequestIcon SVG with lucide GitPullRequest
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-27 10:38:28 -07:00
JinjingandClaude Opus 4.6 8ac5c66fab feat: auto-fetch PR data on worktree change and add refresh to empty state
Add useEffect to fetch PR data when the active worktree/branch changes,
and add a refresh button with loading spinner to the "no PR found" empty
state. Extract check helpers to separate file to stay within line limit.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-27 10:35:28 -07:00
Jinjing dd4eb42f5d Improve smart worktree sorting (#137) 2026-03-27 09:47:17 -07:00
Jinjing 97ef6d5e20 feat: add merge PR functionality across stack (#135)
- feat: add merge PR functionality across stack
2026-03-26 23:45:36 -07:00
Jinjing c342676074 1.0.51 v1.0.51 2026-03-26 23:33:59 -07:00
Jinjing 4a11ab2dc9 fix: refactor code and address review findings (#134)
- chore: remove auto-review context file
- WIP: Changes before auto-review fixes
2026-03-26 23:31:53 -07:00
JinjingandClaude Opus 4.6 9e2d838b74 fix(updater): show download progress toast and enable toast feedback for settings check (#133)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-26 17:22:03 -07:00
JinjingandClaude Opus 4.6 b891b07189 feat: reduce GitHub API usage with gh api --cache for conditional requests (#132)
- Use gh api --cache for issues, issue lists, and PR checks endpoints so 304 Not Modified responses don't count against the rate limit
- Pass branch to getPRChecks to enable the check-runs REST endpoint with caching
- Extract mapping functions into separate mappers.ts to keep client.ts within 300-line limit
- Extract mapIssueInfo() helper to deduplicate issue mapping logic
- Remove dead re-exports from client.ts
- Fix reference instability in ChecksPanel poll dependency array

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-26 17:15:49 -07:00
Jinjing a5167c5a03 Revert "fix(ui): unify split download button" (#131) 2026-03-26 16:42:41 -07:00
JinjingandClaude Opus 4.6 e70706c1b0 fix(ui): unify split download button into single cohesive element (#130)
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:53 -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