Commit Graph
20 Commits
Author SHA1 Message Date
Jinwoo Hong beb62ff580 feat: add PR comments to checks panel (#376) 2026-04-07 17:58:40 -07:00
NeilandClaude Opus 4.6 37ae8ce525 feat: add Star on GitHub button to landing page (#360)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-06 22:45:00 -07:00
Jinjing 8e77aca170 fix: fetch PR checks by head sha (#312) 2026-04-05 11:54:53 -07:00
Jinjing 3e51000bc5 fix: bypass gh CLI HTTP cache on manual PR checks refresh (#308)
The `gh api --cache 60s` flag caused stale check-run data even when
the user explicitly clicked refresh. Thread a `noCache` flag through
IPC so manual refreshes skip the gh CLI cache while polling still
benefits from it.
2026-04-05 11:26:32 -07:00
Jinjing f2eb119c62 feat: display CI conflict details and improve merge-conflict UX (#234)
- Add PRConflictSummary type and derive conflict metadata (base ref,
  commits behind, conflicting files) via local git merge-tree
- Fix parseUnmergedEntry to use space-separated parsing (porcelain v2
  unmerged entries are not tab-separated)
- Enhance rebase detection by checking rebase-merge/ and rebase-apply/
  directories in addition to REBASE_HEAD
- Show conflicting files list and commits-behind count in ChecksPanel
- Disable merge button with tooltip when PR has conflicts
- Add operation banners (merge/rebase/cherry-pick) in SourceControl
  and WorktreeCard
- Reorder section list so unstaged changes appear above staged
- Extract conflict-summary, issues, and gh-utils into separate modules
- Add 10s timeout to git fetch in conflict summary derivation
- Fix test fixtures to match real porcelain v2 format
2026-03-31 01:27:39 -07:00
Jinjing e2bb60339f feat: surface merge conflict warning in checks panel (#206) 2026-03-29 16:27:18 -07:00
Jinjing dbab855611 fix: guard against empty branch names in PR check status lookups (#182)
During a rebase with detached HEAD, the branch name can be empty or
resolve to empty after stripping refs/heads/. This caused gh to return
arbitrary PRs and created invalid cache keys like "path::".

Guard all branch-to-cache-key paths: getPRForBranch bails before
acquiring the semaphore, renderer components skip cache lookups,
and syncPRChecksStatus validates the normalized branch.
2026-03-28 16:10:56 -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 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 97ef6d5e20 feat: add merge PR functionality across stack (#135)
- feat: add merge PR functionality across stack
2026-03-26 23:45:36 -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
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
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
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
Jinjing 9c5a1f48bb Add PR checks workflow and Vitest coverage (#97) 2026-03-24 20:53:38 -07:00
JinjingandClaude Opus 4.6 598f7c17fa feat: display CI build status on worktree cards (#80)
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>
2026-03-23 23:36:57 -07:00
Neil 93996ddb09 some fixes 2026-03-17 11:10:39 -07:00
Neil c89ba34ec8 code review 2026-03-17 09:53:26 -07:00
Neil 7f29249d48 Major features 2026-03-17 01:40:24 -07:00