Commit Graph
1368 Commits
Author SHA1 Message Date
Jinwoo-H 3df2be65e9 fix(daemon): skip legacy drain after discovery failure
If legacy session discovery fails after startup probing already found live work,
do not let the post-discovery sweep reinterpret an empty routing map as drained.
Keep that legacy daemon alive for this app session and let the next startup
re-probe it instead.
2026-05-01 17:34:10 -04:00
Jinwoo-H 588306c032 design: preserve legacy daemons after discovery failure
Claude review found a conservative-safety edge in the startup sweep: if legacy
session discovery fails after an earlier probe saw live sessions, sweeping the
empty session map could kill live legacy work. Update the design to exclude
adapters with discovery failures from sweep and runtime drain until a later
startup can safely re-probe.
2026-05-01 17:32:57 -04:00
Jinwoo-H 143ff79668 feat(daemon): auto-kill orphaned legacy daemons on upgrade
Implement the two-tier legacy daemon cleanup path from the design: reclaim idle
or wedged previous-protocol daemons at startup, and shut down live legacy daemons
when their final routed session exits. Current-protocol daemon startup and
session routing remain on the existing path.

Add pid-file compatibility for legacy integer files and new JSON metadata,
including process identity revalidation before SIGKILL. See
docs/auto-kill-old-daemons.md for design rationale.
2026-05-01 17:17:56 -04:00
Jinwoo-H 18aa6846ee design: align daemon cleanup test file list
The implementation keeps the existing daemon-spawner path regression while adding
pid-file serialization coverage, and adds a small daemon-pty-adapter assertion
for the exposed protocolVersion field. Update the design checklist and files
list before landing the code so the handoff matches the actual test scope.
2026-05-01 17:14:23 -04:00
Jinwoo-H 6ea4b10e5c design: auto-kill orphaned legacy daemons on upgrade
Legacy Orca daemon processes can survive protocol-version upgrades forever,
hoarding PTY file descriptors after their sessions have exited. This design
captures the zero-regression constraints for reclaiming those legacy daemons
without changing the current daemon lifecycle.

Use a two-tier event-driven cleanup path: sweep idle or wedged previous-version
daemons on startup, then keep live legacy sessions routed to their original
daemon and shut that daemon down when its final session exits.
2026-05-01 17:07:43 -04:00
Brennan BensonandOrca 5bf114787f feat(sidebar): move worktree filter out of search bar into header (#1303)
Co-authored-by: Orca <help@stably.ai>
2026-05-01 11:53:20 -07:00
github-actions[bot] d17ba3e036 release: 1.3.26-rc.0 [rc-slot:2026-05-01-03] v1.3.26-rc.0 2026-05-01 10:27:22 +00:00
github-actions[bot] 73ce1d4af7 release: v1.3.25 v1.3.25 2026-05-01 07:55:30 +00:00
github-actions[bot] 265512200c release: v1.3.25-rc.15 v1.3.25-rc.15 2026-05-01 07:34:17 +00:00
NeilandOrca b8ded7e9fe feat(tabs): stronger tab icons — blue browser globe, bold terminal tile (#1305)
- BrowserTab: Globe icon uses text-blue-500 on both active and inactive tabs
  for a distinct, recognizable anchor in the tab strip.
- shell-icons: GenericTerminalIcon now renders a pitch-black tile with a
  thick stroked >_ (chevron at 3.2px, underscore at 2.6px, taller chevron)
  so mac/linux/default terminal tabs match the colored-badge treatment of
  the PowerShell/CMD/WSL icons instead of a flat lucide chevron.
- SortableTab: all terminal tabs use ShellIcon. On Windows, tabs without a
  per-tab shellOverride fall back to the user's configured default
  Windows shell so the tab-strip icon reflects what's actually running.

Co-authored-by: Orca <help@stably.ai>
2026-05-01 00:33:46 -07:00
NeilandOrca ff22944fd7 feat(release): publish Orca as a Homebrew cask (#1304)
Co-authored-by: Orca <help@stably.ai>
2026-05-01 00:33:21 -07:00
Brennan BensonandOrca 98506a6848 fix(sidebar): smoothly animate off-screen worktree reveal on click (#1302)
Clicking a worktree card whose row lies outside the sidebar viewport
caused an instant jump when scrolling it into view. Switching
`scrollToIndex` to `behavior: 'smooth'` turns that minimum-distance
scroll into an animated slide while keeping `align: 'auto'` so visible
cards still no-op (no re-centering).

Co-authored-by: Orca <help@stably.ai>
2026-04-30 23:58:06 -07:00
Brennan BensonandOrca 639e65f774 fix(sidebar): smoothly animate off-screen worktree reveal on click (#1301)
Co-authored-by: Orca <help@stably.ai>
2026-04-30 23:52:25 -07:00
JinjingandOrca 7fbea584ca docs(agents): note SSH use case in AGENTS.md (#1299)
Co-authored-by: Orca <help@stably.ai>
2026-04-30 23:01:06 -07:00
Brennan BensonandOrca 12858f37e3 feat(github): source-repo indicator + surface issue fetch errors (#1250)
Co-authored-by: Orca <help@stably.ai>
2026-04-30 22:53:37 -07:00
github-actions[bot] 1da0defb90 release: v1.3.25-rc.14 v1.3.25-rc.14 2026-05-01 05:26:14 +00:00
Jinwoo HongandOrca 03e7284e3c fix: prevent 401 errors from CLI-refreshed tokens being clobbered (#1286)
Co-authored-by: Orca <help@stably.ai>
2026-04-30 22:24:10 -07:00
Jinwoo HongandOrca b4f1f0ea6a fix(terminal): prevent dead terminal after split via WebGL lifecycle and worktree dedup (#1298)
Co-authored-by: Orca <help@stably.ai>
2026-04-30 22:24:03 -07:00
JinjingandOrca be0e3c2fa7 fix: handle unhydrated store in file-explorer→terminal drop (#1296)
getConnectionId returns undefined during store hydration, which was
misclassified as remote by `!== null` check. Changed to `typeof === 'string'`
so unhydrated state falls through to client-OS quoting, consistent with
terminal-drop-handler.ts behavior.

Co-authored-by: Orca <help@stably.ai>
2026-04-30 20:39:04 -07:00
JinjingandOrca 3ef62afcdb fix(sidebar): avoid re-centering on worktree selection unless out of view (#1295)
Switch the reveal scroll from align:'center' to align:'auto' so clicking
a worktree only scrolls the sidebar when its card is not already visible.
Centering on every click made the list feel jumpy during normal navigation.

Co-authored-by: Orca <help@stably.ai>
2026-04-30 20:18:04 -07:00
Brennan BensonandOrca ff8771b609 revert(sidebar): restore emerald dot for workspace 'done' status (#1294)
Co-authored-by: Orca <help@stably.ai>
2026-04-30 20:17:55 -07:00
github-actions[bot] 28b25f0519 release: v1.3.25-rc.13 v1.3.25-rc.13 2026-05-01 02:19:06 +00:00
Brennan BensonandOrca 2e372779b6 fix(persistence): add 'inline-agents' to cardProps for existing experiment opt-ins (#1293)
Co-authored-by: Orca <help@stably.ai>
2026-04-30 18:49:09 -07:00
NeilandOrca dcf46e367e fix(browser): route in-app webcam/mic requests through macOS TCC (#1291)
Co-authored-by: Orca <help@stably.ai>
2026-04-30 17:19:07 -07:00
caee6f91f8 fix(sidebar): differentiate 'active' vs 'done' status colors (#1277)
Co-authored-by: Orca <help@stably.ai>
Co-authored-by: brennanb2025 <brennankbenson@gmail.com>
2026-04-30 16:09:10 -07:00
Brennan BensonandOrca 35c4b63ac3 feat(settings): add status bar toggles to Appearance pane (#1289)
Co-authored-by: Orca <help@stably.ai>
2026-04-30 16:03:59 -07:00
github-actions[bot] cd01fa8b6e release: v1.3.25-rc.12 v1.3.25-rc.12 2026-04-30 22:48:26 +00:00
Jinwoo Hong 000d4dc08b Revert sparse checkout worktree creation (#1290) 2026-04-30 15:47:40 -07:00
Brennan BensonandOrca df31f40f1e fix(window): meaningful visible area + atomic bounds/maximized persist (#1288)
Co-authored-by: Orca <help@stably.ai>
2026-04-30 13:54:32 -07:00
Brennan BensonandOrca 8b56b16b9a fix(window): discard off-screen saved bounds and refuse to persist min-size bounds (#1287)
Co-authored-by: Orca <help@stably.ai>
2026-04-30 13:38:54 -07:00
github-actions[bot] ad4627a098 release: v1.3.25-rc.6 v1.3.25-rc.6 2026-04-30 18:47:28 +00:00
Brennan BensonandOrca 0f3aaab9f8 feat: default sidebar sort to 'recent' instead of alphabetical (#1285)
Co-authored-by: Orca <help@stably.ai>
2026-04-30 11:07:54 -07:00
github-actions[bot] 559fce6849 release: 1.3.25-rc.5 [rc-slot:2026-04-30-03] v1.3.25-rc.5 2026-04-30 10:31:33 +00:00
8e5114a7bf feat: implement hierarchical tree view for PR diff file list fixes #1109 (#1278)
Co-authored-by: Orca <help@stably.ai>
Co-authored-by: Jinwoo-H <jinwoo0825@gmail.com>
2026-04-30 01:28:52 -07:00
Jinwoo HongandOrca cb73b372ff feat(file-explorer): support drag-and-drop file import over SSH (#1279)
Co-authored-by: Orca <help@stably.ai>
2026-04-30 01:28:43 -07:00
79faafcc98 Add sparse checkout worktree creation (#1131)
Co-authored-by: Orca <help@stably.ai>
Co-authored-by: Jinwoo-H <jinwoo0825@gmail.com>
2026-04-30 00:43:00 -07:00
NeilandOrca 8c83c8c971 chore: move dev-app-update.yml into config/ (#1276)
Co-authored-by: Orca <help@stably.ai>
2026-04-30 00:11:14 -07:00
Neil 8a4e64519e Delete .editorconfig 2026-04-30 00:10:20 -07:00
NeilandOrca 4318f3bfa7 chore: reduce root-directory clutter (#1275)
Co-authored-by: Orca <help@stably.ai>
2026-04-30 00:09:46 -07:00
JinjingandOrca 61909fff03 fix(tab-bar): dismiss tab context menu on window blur for webview clicks (#1274)
Electron <webview> elements run in a separate process, so clicks inside
them don't dispatch pointerdown on the renderer document. Radix
DropdownMenu relies on document pointerdown for outside-click detection
and therefore misses webview clicks, leaving the menu stuck open.
Listening for window blur catches the moment focus leaves the renderer
(including into a webview) and closes the menu.

Co-authored-by: Orca <help@stably.ai>
2026-04-30 00:02:46 -07:00
NeilandOrca fb3d46710b fix(mac-perms): fall through to Privacy pane when in-app prompt is a no-op (#1273)
Co-authored-by: Orca <help@stably.ai>
2026-04-29 23:50:41 -07:00
Jinwoo HongandOrca 066c245d14 fix(terminal): force WebGL repaint after split when dimensions match (#1272)
Co-authored-by: Orca <help@stably.ai>
2026-04-29 23:33:36 -07:00
NeilandOrca a02987e604 feat(settings): replace task-icon toggle with Tasks-button toggle, expose in View menu (#1271)
Co-authored-by: Orca <help@stably.ai>
2026-04-29 21:13:13 -07:00
Neil 020780c4dd feat(hooks): restore always-trust repo option
Restores repo-level always-trust for orca.yaml hooks and surfaces CLI warnings when --run-hooks is omitted and a hook is skipped.
2026-04-29 20:47:04 -07:00
JinjingandOrca db956ed6db fix(window): prevent teardown resize events from clobbering saved window bounds (#1269)
On close/quit (especially auto-updater relaunch via quitAndInstall),
Electron/OS emit resize/move/unmaximize while the window is torn down.
The debounced persistence was capturing those near-minimum bounds, so
the next launch came up at minWidth x minHeight.

- Freeze bounds persistence on window 'close' and app 'before-quit'
  (updater strips the window 'close' listener before quitting, so
  the app-level latch is needed as a second line of defense).
- Release the freeze on will-prevent-unload so aborted Cmd+Q keeps
  saving bounds.
- On restore, discard saved bounds at/below the min dimensions to
  recover users who already persisted corrupt bounds.

Co-authored-by: Orca <help@stably.ai>
2026-04-29 20:37:19 -07:00
JinjingandOrca 6f9c97ef99 fix(browser-pane): keep focus in Orca window when destroying focused webview (#1270)
Before removing a <webview> that currently owns focus, blur the active
element and refocus the window. Without this, macOS hands activation to
the previously-active app (e.g. Slack) because the focused webContents
is gone with no replacement, pulling the user out of Orca on worktree
delete.

Co-authored-by: Orca <help@stably.ai>
2026-04-29 20:30:28 -07:00
github-actions[bot] 964202c897 release: v1.3.25-rc.4 v1.3.25-rc.4 2026-04-30 02:41:26 +00:00
Jinwoo HongandOrca 7993fb5aaa feat(status-bar): show inline usage for inactive accounts in switcher (#1259)
Co-authored-by: Orca <help@stably.ai>
2026-04-29 19:29:11 -07:00
github-actions[bot] 977d56b975 release: v1.3.25-rc.3 v1.3.25-rc.3 2026-04-30 02:04:17 +00:00
Brennan BensonandOrca b5d8eb6d31 fix(sidebar): restore green dot for 'active' worktree status (#1266)
Co-authored-by: Orca <help@stably.ai>
2026-04-29 19:03:52 -07:00