Commit Graph
123 Commits
Author SHA1 Message Date
Jinwoo HongandOrca 3ac29ab251 Fix git probe fanout during concurrent refreshes (#4670)
Co-authored-by: Orca <help@stably.ai>
2026-06-04 17:59:09 -07:00
843d969c7d fix(tabs): make the active tab clearly stand out (#4545)
* fix(tabs): make the active tab clearly stand out

The active tab was marked only by a 1px dark-navy line on its top edge,
which read as just another border and was easy to lose in a long, busy
tab strip.

Replace it with a 2px `primary` bar on the bottom edge (bridging the tab
into the panel it controls), a subtle theme-uniform background lift, and
brighter text. The bar leads in both light and dark; the lift uses a
color-mix wash instead of `accent`, whose contrast against `card` is
near-zero in light mode but heavy in dark, so the two themes no longer
lead with different cues. Applies across terminal, browser, and editor
file tabs via the shared indicator constant and wrapper styling.

* fix(tabs): centralize active tab styling

Co-authored-by: Orca <help@stably.ai>

* fix(git): cache missing upstream status probes

Co-authored-by: Orca <help@stably.ai>

* fix(terminal): defer sustained ANSI redraw bursts

Co-authored-by: Orca <help@stably.ai>

---------

Co-authored-by: Jinwoo-H <jinwoo0825@gmail.com>
Co-authored-by: Orca <help@stably.ai>
2026-06-03 17:27:20 -04:00
Neil 280234a73e fix: stop OpenTUI redraw and git polling freezes (#4585)
* fix: budget foreground terminal redraw writes

* fix: cache stable no-upstream git probes
2026-06-03 14:13:02 -07:00
Trevin Chow be594b8652 Fix macOS helper path and token cleanup (#3961)
## Summary
- stop the macOS helper from unlinking caller-supplied socket and token paths
- keep parent-owned token cleanup tied to the helper startup that created it
- fail closed for non-socket socket-path collisions and cover helper cleanup races with regression tests

## Verification
- swift test --package-path native/computer-use-macos
- pnpm exec vitest run --config config/vitest.config.ts src/main/computer/macos-native-provider-client.test.ts
- pnpm run typecheck:node
- pnpm lint
- pnpm run build:computer-macos
- Electron/helper startup smoke validation
2026-06-03 16:59:02 -04:00
Neil 9061330ab5 test: reproduce terminal TUI and git polling regressions (#4581)
* test: reproduce terminal and git polling freezes

* test: document regression repro triggers
2026-06-03 13:34:27 -07:00
Jinjing 231088b099 fix: address review findings (#4513) 2026-06-02 14:58:33 -07:00
Jinjing d21e73301e Refresh cleanup base before forced branch deletion (#4462) 2026-06-02 01:08:11 -07:00
Jinjing 1304d6b630 fix: address review findings (#4325) 2026-05-31 16:03:55 -07:00
Neil dee34a653c fix: decode git cquoted status paths 2026-05-31 08:20:33 -07:00
Neil 18ed7b27da fix: validate git repo detection 2026-05-31 08:18:21 -07:00
Neil 75c9f496f1 perf: bound worktree sparse probes
Cap listWorktrees sparse-checkout filesystem probes at 8 concurrent workers while preserving output ordering and parsed sparse/bare short-circuits.

Risk: low.

Validation:
- pnpm exec vitest run src/main/git/remove-worktree.test.ts src/main/git/worktree-list-paths.test.ts src/main/git/worktree.test.ts
- pnpm run typecheck:node
- pnpm lint
- git diff --check
2026-05-31 06:55:20 -07:00
Neil 2e286eef8d perf: bound working tree diff reads (#4171)
Unstaged source-control diffs now check the working-tree file size before readFile and use the existing 10 MB diff budget to avoid pulling huge generated files into the main process.
2026-05-31 06:48:17 -07:00
Neil e6c55d76e6 fix: resolve slashed upstream remotes (#4114) 2026-05-31 04:45:39 -07:00
Neil e3c30712ca fix: allow slash remote push targets (#4109) 2026-05-31 04:38:37 -07:00
Neil 6e0d35480c fix: use nul numstat for compare counts (#4104) 2026-05-31 04:26:41 -07:00
Neil 30b93c6bf7 fix: parse numstat paths with nul output (#4098) 2026-05-31 04:15:23 -07:00
Neil b0ad5cb103 fix: detect branch conflicts for slashed remotes (#4080) 2026-05-31 04:00:09 -07:00
Neil 91865e21f3 fix: build bitbucket line anchors (#4074) 2026-05-31 03:25:45 -07:00
Neil 8ba451e8dd fix: preserve newline worktree paths
Use porcelain-z worktree parsing with fallback line parsing so newline-containing worktree paths survive local and relay operations. Risk: low.
2026-05-31 01:50:16 -07:00
Neil 350adb33ba fix: treat git stage paths as literals 2026-05-30 14:27:17 -07:00
Neil a6b9166242 Fix GitLab hosted source links (#3613) 2026-05-30 13:15:32 -07:00
Jinjing 5dc6947fc6 fix: address review findings (#3866) 2026-05-30 12:45:49 -07:00
Neil f66e42a2bb fix: time out git runner execFile calls (#3836) 2026-05-30 12:02:08 -07:00
Brennan BensonandOrca d3b56a5922 Add one-click setup script generation (#3370)
Co-authored-by: Orca <help@stably.ai>
2026-05-30 11:57:55 -07:00
Neil 7112c1c767 fix: clean up command runner capture listeners (#3748) 2026-05-30 11:40:46 -07:00
Neil b0435c1ac5 perf: classify large bulk discard paths safely (#3743) 2026-05-30 08:33:10 -07:00
1844a992e8 fix: pr-bug-scan validated finding from #2947 (#2965)
* fix: address pr-bug-scan validated finding from #2947

Prepended `:(literal)` pathspec magic to each path passed to `git clean -ffdx --` in both `cleanUntrackedPaths` call sites, so untracked filenames containing pathspec glob magic (`*`, `?`, `[`, `]`) a

* fix: literalize discard git pathspecs

---------

Co-authored-by: orca-bug-scan-bot <orca-bug-scan-bot@stably.ai>
Co-authored-by: Neil <4138956+nwparker@users.noreply.github.com>
2026-05-30 01:25:41 -07:00
386fc42564 Add Source Control fast-forward action (#3364)
* Add source control fast-forward action

* Fix fast-forward overwrite error wording

Co-authored-by: Orca <help@stably.ai>

---------

Co-authored-by: Jinwoo-H <jinwoo0825@gmail.com>
Co-authored-by: Orca <help@stably.ai>
2026-05-30 02:06:12 -04:00
4180352856 fix: auto-populate Create Worktree branch tab (#2850)
* fix(new-workspace): show branch results before typing

Query and render Branch tab results for empty input so users can pick existing refs immediately.

* refactor(new-workspace): simplify branch source helpers

Remove thin abstractions from the branch result helper while preserving Branch tab behavior.

* fix(new-workspace): load branch options for empty search

* refactor(new-workspace): keep smart branch search lazy

Limit empty-query branch loading to the Branch tab so Smart mode keeps its start-typing state.

* fix(runtime): populate remote branch searches when empty

Keep runtime-backed repos aligned with the local and IPC branch search paths.

* fix: harden branch search prepopulation

Co-authored-by: Orca <help@stably.ai>

* test: align branch search assertions after merge

Co-authored-by: Orca <help@stably.ai>

---------

Co-authored-by: Jinwoo-H <jinwoo0825@gmail.com>
Co-authored-by: Orca <help@stably.ai>
2026-05-29 20:16:11 -04:00
Trevin Chow 10f97509ea fix: preserve unmerged branch when removing a worktree (#2927) (#2939)
fix: preserve unmerged branch when removing a worktree (#2927)
2026-05-28 20:19:53 -04:00
Jinjing 47dffe5308 fix: address review findings (#3014) 2026-05-28 16:13:45 -07:00
Jinwoo HongandOrca 8f172f538c Fix clone abort cleanup ownership (#2981)
Co-authored-by: Orca <help@stably.ai>
2026-05-28 01:17:05 -07:00
Jinwoo HongandOrca d917240499 Guard untracked discard against symlink escapes (#2947)
Co-authored-by: Orca <help@stably.ai>
2026-05-27 19:48:27 -07:00
659fe79226 feat: add source control action to abort merge (#2092)
Co-authored-by: Orca <help@stably.ai>
Co-authored-by: brennanb2025 <brennankbenson@gmail.com>
2026-05-27 14:59:23 -07:00
Trevin Chowandbrennanb2025 a65f7b4216 feat: auto-rename workspace branch from the first prompt (#2888)
Co-authored-by: brennanb2025 <brennankbenson@gmail.com>
2026-05-27 14:09:43 -07:00
Trevin ChowandNeil b2b5cac9a9 Add per-file line counts to the source control sidebar (#2865)
* Add per-file line counts to the source control sidebar

Show +N/-N (green/red) next to each file in the Changes, Untracked, and
Committed-on-branch sections so the magnitude of a change is visible at a
glance. Counts are computed per staging area via `git diff --numstat`;
untracked/new files count their full contents as additions and binary
files show no count.

Consolidate numstat parsing and binary-buffer detection into shared
modules reused by the local status path, the SSH/relay path, and the
existing branch-compare code. Include added/removed in the status-entry
equality check so the sidebar doesn't re-render on unchanged polls.

* fix: harden source control line counts

---------

Co-authored-by: Neil <4138956+nwparker@users.noreply.github.com>
2026-05-26 20:09:54 -07:00
Trevin Chow 286729fc7d fix(worktree): match slash-named branches in base-ref search (#2861)
Match single-token base-ref search against both leaf and ancestor segments for local and remote slash-named branches. Keeps the SSH relay argv in parity and adds regression coverage.
2026-05-26 19:33:37 -07:00
Brennan BensonandOrca 91991d6186 Improve refresh local base ref UX (#2570)
Co-authored-by: Orca <help@stably.ai>
2026-05-26 18:28:41 -07:00
Brennan BensonandOrca b7832c0790 Persist worktree creation base in git config (#2859)
Co-authored-by: Orca <help@stably.ai>
2026-05-26 15:54:07 -07:00
Brennan Benson 5287a581a6 Revert "Allow OS metadata during worktree delete preflight" (#2776) 2026-05-24 23:23:31 -07:00
Brennan BensonandOrca fdb63366d3 Allow OS metadata during worktree delete preflight (#2760)
Co-authored-by: Orca <help@stably.ai>
2026-05-24 23:00:40 -07:00
Brennan BensonandOrca 9cb9a9d5e3 Respect GitHub username branch prefix (#2599)
Co-authored-by: Orca <help@stably.ai>
2026-05-22 02:20:32 -07:00
Jinjing 41a2d7ba90 Target source-control actions to publish branches (#2612) 2026-05-22 00:35:30 -07:00
Jinjing d4e9c22f8b Fix worktree creation for selected existing branches (#2543)
* fix: address review findings

* fix: address CI failures
2026-05-21 12:25:32 -07:00
Brennan BensonandOrca a140313d4a Add local diagnostics error tracking (#2351)
Co-authored-by: Orca <help@stably.ai>
2026-05-21 11:15:01 -07:00
Anwesh 6e949d6ec8 Fix worktree base ref ambiguity
Resolve ambiguous git worktree base refs by qualifying local and remote branch refs before invoking git worktree add.
2026-05-21 00:46:31 -07:00
Jinjing bcb86d0778 Fix pull status for legacy origin/main worktrees (#2487)
- Resolve an effective upstream so legacy branches tracking origin/main use
  origin/<branch> when that remote branch exists.
- Pull, sync, and ahead/behind status now operate on the same branch the UI
  reports, including after non-fast-forward push rejections.
2026-05-20 22:10:51 -07:00
Jinjing e0104372da Squashed commits (#2485)
- Fix workspace space cache and git status cleanup checks

- Treat browser tabs as workspace delete blockers

- Move deletion readiness into shared presentation logic so tests cover it
- Preserve explicit empty git status entries for clean worktrees

- Add package manager cache cleanup to space manager

- Detect npm, pnpm, Yarn, and Bun caches from lockfiles during scans
- Add explicit cleanup IPC for safe and aggressive cache actions
- Support local, SSH, and Windows command execution paths safely
- Tighten workspace deletion decisions with git, editor, agent, and terminal state
2026-05-20 22:09:35 -07:00
JinjingandOrca aeaf0dece4 Create PRs from Source Control (#2478)
* Create PRs directly from Source Control

- Replace the modal flow with an inline PR composer in the sidebar
- Keep PR creation state and validation scoped per worktree
- Rename the recovery action to clarify it only pushes before creating PRs

* Clean up fork PR remotes after worktree deletion

- Track Orca-created push target remotes in worktree metadata
- Reuse ownership markers when later worktrees share the same fork remote
- Fetch only the selected PR base instead of every remote before drafting PRs
- Mirror local branch cleanup for SSH worktree deletion

* Stabilize pull request creation flow

- Keep PR actions and composer fields locked while generation or creation is in flight
- Refresh git status, branch comparison, and history after remote actions settle
- Disable push-only actions on diverged branches so users sync first

* Make PR context generation read-only

- Stop rebasing or probing HEAD before collecting PR draft context
- Allow git operations on known repo roots without refreshing worktree cache

Co-authored-by: Orca <help@stably.ai>

* fix: address review findings

---------

Co-authored-by: Orca <help@stably.ai>
2026-05-20 20:11:38 -07:00
Neil 942bcf7065 Remove small markdown helper dependencies (#2467) 2026-05-20 19:01:22 -07:00