Commit graph

268 commits

Author SHA1 Message Date
Jinjing
a748c644ee Add MIT license 2026-03-28 10:19:14 -07:00
Neil
bbff77622f 1.0.59 2026-03-28 01:27:46 -07:00
Neil
571ad45667 1.0.58 2026-03-28 01:27:43 -07:00
Neil
7cf92c6e49
Restore modifier-click behavior for terminal URLs (#159)
* Restore modifier-click behavior for terminal URLs

* Fix terminal URL hover preview

* Add shortcut hint to terminal URL preview

* Tweak terminal URL shortcut hint styling

* Simplify terminal URL hover copy

* Fix terminal link handler test environment
2026-03-28 00:49:47 -07:00
Neil
33ff96a54d 1.0.57 2026-03-28 00:48:20 -07:00
Neil
0feedc998e
fix: send Kitty keyboard protocol sequence for Shift+Enter (#158)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-28 00:47:43 -07:00
Jinjing
5b40e604b1 1.0.56 2026-03-28 00:32:49 -07:00
Jinjing
e8f2dcb57d
fix: use gh pr list --head for reliable PR discovery (#162)
gh pr view only matches the current checkout, which fails for worktrees
on different branches. Switch to gh pr list --repo --head to query by
branch name directly, with a fallback to gh pr view for non-GitHub
remotes. Also fix the ChecksPanel refresh button to use the proper
handleRefresh flow and force-refresh the PR cache.
2026-03-28 00:30:47 -07:00
Jinjing
81b01fdb9a
feat: auto-expand right sidebar for new users (#160)
Change rightSidebarOpenByDefault to true so new users discover the
explorer panel immediately. When a worktree is created with the setting
enabled, also switch to the explorer tab before opening the sidebar.
2026-03-28 00:27:00 -07:00
Neil
9cbc739e29
fix: stamp lastActivityAt on new worktrees to prevent scroll misfire (#161)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-28 00:26:47 -07:00
Jinjing
8fe3c9dd3f
Standardize sidebar action buttons and fix path handling (#154)
* Standardize sidebar action buttons and fix cross-platform path handling

- Standardize sidebar action buttons and fix cross-platform path handling

* Fix renderer path helpers for cross-platform sidebar paths
2026-03-28 00:15:01 -07:00
Jinjing
d9b2ead844
feat: add rightSidebarOpenByDefault setting (#156) 2026-03-28 00:13:12 -07:00
Jinjing
665ffd89e3
fix: improve repo badge and branch label visibility in dark mode (#157)
Use bg-accent with dark mode variants instead of bg-background/50 so badges remain readable on dark backgrounds.
2026-03-28 00:11:39 -07:00
Jinjing
51b3b76633
fix: harden editor path copy behavior (#155) 2026-03-28 00:06:07 -07:00
Jinjing
6f366a1974
fix: use neutral styling for delete worktree button on merged PRs (#153)
The delete worktree button was styled as destructive (red) even though
deleting a worktree for a merged PR is routine cleanup, not a dangerous action.
2026-03-27 23:52:12 -07:00
Jinjing
ac02063c11
Update README screenshot to file-drag gif (#152)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-27 23:42:47 -07:00
Jinjing
4678845422
feat: make issue/PR/comment hover cards clickable to edit (#151)
Clicking on the issue, PR, or comment rows in a worktree card now opens
the edit-meta dialog focused on the relevant field. Also renames
"Issue/PR" labels to just "Issue" and adds cursor-pointer to buttons.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-27 23:18:05 -07:00
Jinjing
dfe488a536 1.0.55 2026-03-27 16:59:15 -07:00
Jinjing
f7840adbc5
Fix recent worktree sorting migration (#148) 2026-03-27 16:12:31 -07:00
Neil
0637883cce
Update README to include features list
Added features section to README with key functionalities.
2026-03-27 15:55:14 -07:00
Neil
940967d013
Add installation and development sections to README
Updated README to include installation and development instructions.
2026-03-27 15:51:53 -07:00
Jinjing
bbc4a98f63
fix(updater): handle benign network errors and deduplicate error statuses (#146)
* fix(updater): handle benign network errors and deduplicate error statuses

Treats net::ERR_FAILED during update checks as benign (transitions to idle
instead of showing error), deduplicates identical error statuses, and adds
a manual download link to user-facing error toasts.

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

* fix: use T[] array syntax instead of Array<T> to pass oxlint

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

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-27 15:06:49 -07:00
Jinjing
a1e2ba2003
fix: change Squash & merge button from purple to green (#145)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-27 15:01:46 -07:00
Jinjing
e3d86dc193
fix: align shortcut labels and remove shift-enter terminal intercept (#144) 2026-03-27 14:59:36 -07:00
Jinjing
004c98c959 1.0.54 2026-03-27 12:59:46 -07:00
Jinjing
18bc9013d9
fix: remove --delete-branch from mergePR to prevent worktree error (#143) 2026-03-27 12:57:22 -07:00
Jinjing
a728982a1d
fix: Add --yes flag to gh pr merge command (#142)
* fix: squash and merge issue

- fix: squash and merge issue

* fix: use GH_PROMPT_DISABLED instead of invalid --yes flag
2026-03-27 12:49:17 -07:00
Jinjing
59c5f29e25
fix: force-refresh PR status and checks when manually refreshing (#141)
The refresh button was serving cached data instead of fetching fresh
PR status and checks. Added force option to bypass cache TTL on
manual refresh, and ensured checks are fetched for the correct
(refreshed) PR number.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-27 12:35:24 -07:00
Jinjing
cff5b034e4
feat: add revert/discard support for untracked files in source control (#140)
- Enhance discardChanges to handle untracked files by deleting them instead of git checkout
- Add path traversal protection to prevent discarding files outside the worktree
- Extract source control action logic into getSourceControlActions helper
- Show revert button for untracked files with confirmation dialog
- Add tests for both backend and frontend logic

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-27 12:35:19 -07:00
Jinwoo Hong
00332fbd3e 1.0.53 2026-03-27 15:15:19 -04:00
Jinwoo Hong
3e65d7e5aa
fix: Windows terminal blank/unresponsive (#139)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-27 15:11:35 -04:00
Jinjing
30c8bf89c6
feat: auto-fetch PR on worktree change and refresh in empty state (#138)
* 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>

* refactor: replace custom PullRequestIcon SVG with lucide GitPullRequest

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

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-27 10:43:58 -07:00
Jinjing
056c5e0781 1.0.52 2026-03-27 09:59:26 -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 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
Jinjing
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
Jinjing
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
Jinjing
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 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
Jinjing
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 2026-03-26 15:56:30 -07:00
Jinwoo Hong
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 2026-03-26 14:48:02 -07:00
Neil
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 2026-03-26 14:21:15 -07:00