Commit Graph

6 Commits

Author SHA1 Message Date
Brennan Benson 1d2ba1e39d
fix: never surface coding-agent scratch worktrees in the sidebar (#9535)
* fix: never surface coding-agent scratch worktrees in the sidebar

Sub-agent runs (e.g. Claude Code worktree isolation) create throwaway
git worktrees at tool-internal paths like <repo>/.claude/worktrees/.
These showed up as workspace rows for repos whose non-Orca worktree
visibility is 'show', and would otherwise ping the discovery card and
new-worktrees inbox on every fan-out.

Classify them as 'agent-scratch' via a curated path-segment matcher and
suppress them unconditionally: sidebar, discovery card, inbox, dialog
counts, add-handoff reveal trigger, and the metadata fallback. Selected
checkouts and explicitly imported paths still win.

Fixes #9388

* fix: preserve scratch worktree visibility boundaries

* fix: hide scratch worktrees from linked checkouts

* docs: explain scratch root normalization
2026-07-20 12:50:47 -07:00
Brennan Benson 4c03924618
Show Git-created worktrees in external discovery (#7078) 2026-07-02 11:24:07 -07:00
Brennan Benson 8ed890374a
Refresh project worktrees created outside Orca (#6241)
Co-authored-by: Orca <help@stably.ai>
2026-06-28 13:09:05 -07:00
Brennan Benson 5424582b51
Suggest enabling local-main freshness when a new workspace finds it stale (#4888)
* Suggest enabling local-main freshness when a new workspace finds it stale

Adds a "Keep Local Main Up to Date" suggestion path: when the setting is
off and a new workspace's local base branch is behind its remote, Orca
surfaces a one-time, dismissible toast nudging the user to enable it. The
toast is sticky (no auto-expire) so it can't be missed, with explicit
Turn On / Dismiss actions; dismissing (button, close X, or swipe) persists
localBaseRefSuggestionDismissed so the nudge — and its backend probe —
never runs again.

Also refactors the refresh logic so the advisory and mutating paths share
one fast-forward-safety evaluator, adds an SSH relay RPC for the ref
mutation, and fixes remote-tracking base parsing for fully-qualified refs.

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

* fix: restore update-ref fast-forward for un-checked-out local base ref

The refactor that split refresh into evaluate + mutate dropped the
non-owner case: a local base branch checked out in no worktree was left
stale (return undefined) instead of fast-forwarded. Restore it across all
three layers — local evaluator/mutator, SSH evaluator, and relay handler
(which also removes the dead duplicated throw) — using the expected-old-OID
compare-and-swap form of update-ref so a concurrent ref move is a no-op.
The suggestion toast now also fires for this case.

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

* refactor: restore resultBase spread in local-base-ref mutators

The evaluate/mutate split spelled out { baseRef, localBranch, status }
literally in the mutating paths; main used a resultBase spread. Restore
that pattern in both the local and SSH mutators — behavior-preserving,
collapses two identical skipped_error returns.

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

---------

Co-authored-by: Orca <help@stably.ai>
2026-06-08 13:19:45 -07:00
Neil eaf8076e61
perf: handle large workspace layout history (#3833) 2026-05-30 11:49:05 -07:00
Jinjing 102cc09622
Improve worktree import handling (#2677)
* feat: improve worktree import handling

* chore: remove PR docs assets

* rm html
2026-05-23 01:13:33 -07:00