Commit Graph
2191 Commits
Author SHA1 Message Date
Jinjing b532df4650 feat: make inline diff display default and add setting (#316)
- chore: update screenshot

- fix: address review findings

- feat: make inline diff display default and add setting
2026-04-05 16:44:52 -07:00
Jinjing 8e77aca170 fix: fetch PR checks by head sha (#312) 2026-04-05 11:54:53 -07:00
Yax Patel 0cf0bbaab4 feat: add autosaving (#300) 2026-04-05 10:29:29 -07:00
Jinwoo Hong c03145514e Persist active worktree filter (#290) 2026-04-04 00:15:16 -07:00
Jinjing 90d0fae8f5 feat: add explicit worktree setup flow (#286)
* feat: add explicit worktree setup flow

- Centralize worktree activation setup flow

- fix: render orca.yaml file contents in settings repo pane instead of tags when using config file

- fix: command preview title for yaml configs

- fix: update UI copy and styling to better reflect yaml setup hooks

- fix: run setup hook in background if CLI worktree is created while GUI is closed

- fix: prevent duplicate terminal tab creation when creating worktrees from the UI

- fix: ensure CLI worktree create returns correct payload type and hooks up UI setup flow

- Squashed commits

- fix minor regression

- fix: close worktree context menu when deleting

- fix: keep delete dialog open while archive hook runs and support inline yaml scripts

- chore: fix lint, typecheck and react state mutations during render for setup script feature

* fix(lint): split worktrees.test.ts to stay under max-lines limit

Extract Windows path-handling tests into worktrees-windows.test.ts
to bring the original file under the 300-line oxlint max-lines rule.

* fix(test): set up path mocks for setup launch payload test

The computeWorktreePathMock and ensurePathWithinWorkspaceMock were
cleared by afterEach but not re-established in the test, causing
areWorktreePathsEqual to receive undefined and crash.
2026-04-03 23:44:23 -07:00
Jinwoo Hong 182ba156dd Add Orca runtime CLI and bundled install support (#273) 2026-04-03 16:50:28 -07:00
Jinjing 2d6fbec929 feat: auto updater background polling and persistent reminder UI (#266)
* feat: add update reminder component and background polling

* refactor: replace update reminder banner with subtle bottom-right toast

Swap the full-width top banner for a compact fixed-position toast in the
bottom-right corner, matching the existing Sonner toast styling. Also
extract pure functions (statusesEqual, isBenignCheckFailure) from
updater.ts into updater-fallback.ts to fix max-lines lint error.

* fix: mock checkForUpdates to return a promise so .catch() works in tests
2026-04-03 10:02:44 -07:00
Jinjing 00d3e15c71 feat: change default divider thickness to 3px for first-time users (#256)
The previous 1px default was too thin for comfortable visibility.
This changes the default to 3px, which only affects new users who
haven't customized the setting. Also updates the preview component's
fallback to stay consistent with the new default.
2026-04-01 16:38:55 -07:00
Jinjing e8e7d2ea8f feat: add PDF file preview support in diff viewer (#252)
* fix: address review findings

- Add sandbox="allow-same-origin" to PDF iframes to prevent script execution
- Wrap atob() in try/catch to gracefully handle corrupt base64 data
- Reset imageError state on content change to allow re-rendering
- Add click overlay on PDF iframe so popup open works correctly
- Compact test mock resets to stay within max-lines lint rule

* fix: consolidate binary preview tests to stay within max-lines limit
2026-04-01 15:12:50 -07:00
Jinjing 4497d3adf5 feat: add isMainWorktree field to GitWorktreeInfo (#237)
Expose whether a worktree is the repo's main working tree (the first
entry from `git worktree list`). This lets consumers distinguish the
main worktree from linked worktrees created via `git worktree add`.
2026-03-31 09:24:13 -07:00
Jinjing e0e01cd687 feat: configurable worktree cards with property toggles (#232)
- fix: stay under max-lines lint limit after merge with main

Extract restoreScrollbackBuffers into layout-serialization.ts to reduce
use-terminal-pane-lifecycle.ts below the 300-line limit. Also filter
stale leaf IDs from persisted scrollback buffers and remove design doc.

- fix: polish worktree card controls

- feat: configurable worktree cards with property toggles
2026-03-31 08:49:00 -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
Yax Patel c6481d8b64 feat: improve terminal font settings with weight control and keyboard navigation (#228) 2026-03-30 20:47:21 -07:00
Jinwoo HongandClaude Opus 4.6 831b65fe65 feat: restore terminal scrollback on app restart (#224)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-30 20:11:35 -07:00
Jinjing 240df66365 fix: display image files in editor instead of "Binary file — cannot display" (#222)
Wire up ImageViewer and ImageDiffViewer components by passing file path
through bufferToBlob/buildDiffResult and returning base64 content + MIME
type for recognized image formats (PNG, JPG, GIF, SVG, WebP, BMP, ICO).
2026-03-30 00:00:32 -07:00
Jinjing e2bb60339f feat: surface merge conflict warning in checks panel (#206) 2026-03-29 16:27:18 -07:00
Jinjing 333023fb67 feat: show merge conflicts in source control sidebar (#204)
* Squashed commits

- refactor

- commit design doc

* docs: add why-comments to conflict resolution code and track conflicts on open

- Add explanatory comments throughout conflict resolution code covering
  safety constraints, architectural boundaries, and compatibility choices
- Track unresolved conflicts in openConflictFile so Resolved locally
  state works for conflict-safe entry point
- Add CLAUDE.md/AGENTS.md guideline for documenting the "why"
- Add test for conflict tracking through openConflictFile
2026-03-29 15:40:23 -07:00
Jinjing a7ae905a97 fix: add updater fallback for GitHub release transitions (#197) 2026-03-29 12:50:36 -07:00
Jinjing 3644aa8f29 Show committed files in the "source control" tab (#181)
* refactor: auto-review fixes and UI improvements

- Remove dead code and fix type assertion in getBranchDiff
- Tighten GitDiffBinaryResult type constraint
- Fix race condition in CombinedDiffViewer with generationRef
- Fix reference stability in setGitBranchCompareResult
- Extract LazySection component to fix max-lines lint
- Update filesystem IPC to match updated signatures
- Adjust file explorer item spacing and font size

* fix: correct test expectation for staged diff header label
2026-03-28 17:00:40 -07:00
Jinjing b8d6331220 feat: preview image files in editor diffs (#176) 2026-03-28 14:38:08 -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
Jinjing d9b2ead844 feat: add rightSidebarOpenByDefault setting (#156) 2026-03-28 00:13:12 -07:00
Jinjing f7840adbc5 Fix recent worktree sorting migration (#148) 2026-03-27 16:12:31 -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 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
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 2b9e5d7486 fix: persist repo sidebar filters (#94) 2026-03-24 20:05:44 -07:00
NeilandClaude Opus 4.6 1dff41c6d7 feat: add VS Code-style file search and icon activity bar (#78)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-23 23:28:05 -07:00
JinjingandClaude Opus 4.6 82425df6ea fix: remount terminal panes after shutdown to restore PTY connections (#73)
When all PTYs are dead after shutdown, bump a generation counter on
terminal tabs so React remounts TerminalPane components with fresh
PTY connections instead of showing stale terminals.

Also converts interfaces to type aliases in types.ts to satisfy linter.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-23 17:10:28 -07:00
NeilandClaude Opus 4.6 4d65b9e69d Add Ghostty-style drag-to-resize for terminal split panes (#22)
- Wider invisible hit area around dividers (visible line drawn via CSS
  ::after pseudo-element) for easier grabbing
- Persist split ratios in layout snapshots so resized panes survive
  tab switches and restores
- Double-click divider to equalize sibling panes
- Notify onLayoutChanged after drag-end to trigger ratio persistence

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-22 12:11:54 -07:00
NeilandClaude Opus 4.6 c0eaf328b2 Add right sidebar with file explorer, source control, and Monaco editor (#21)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-22 11:47:22 -07:00
NeilandClaude Opus 4.6 234c422225 Improve update experience: toasts, graceful restart, sidebar indicator (#14)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-21 18:42:49 -07:00
Neil dc3b189355 fix zoom 2026-03-20 15:17:11 -07:00
Neil 6ab9ec5491 terminal settings 2026-03-19 00:10:46 -07:00
Neil a84b8a4168 Themes 2026-03-18 22:58:50 -07:00
Neil ce3c3ad6a5 Branch setting, focus new WT 2026-03-18 20:57:52 -07:00
Neil 9d8e85963a ux 2026-03-18 18:49:18 -07:00
Neil 8446d25440 state save + settings 2026-03-18 18:01:23 -07:00
Neil a7b6df4b0a tab menu, badges 2026-03-17 13:54:51 -07:00
Neil 93996ddb09 some fixes 2026-03-17 11:10:39 -07:00
Neil 7f29249d48 Major features 2026-03-17 01:40:24 -07:00