Show a colored dot (success/failure/pending) on the Checks tab in the
right sidebar activity bar. Extracts check status derivation into a
dedicated github-checks module and syncs the computed status back into
the PR cache. Also reorders Search tab before Source Control.
Lift the side-by-side/inline toggle from DiffViewer's internal toolbar
into the EditorPanel header with a tooltip. Reduces header height
(52→36px) for a more compact diff view. The toggle only appears for
single-file diffs, not combined diffs.
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.
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.
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>
* 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>
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>
- 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>
* 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>
- 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>
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>