Commit Graph
2946 Commits
Author SHA1 Message Date
Brennan Benson fab37014fa Fix Resolve with AI icon (#2918) 2026-05-27 15:45:52 -07:00
github-actions[bot] d6298dd723 release: v1.4.31-rc.3 [rc-slot:2026-05-27-15] v1.4.31-rc.3 2026-05-27 22:36:51 +00: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
Jinwoo HongandOrca 770536ef7e Auto-detect repo icons when adding projects (#2786)
Co-authored-by: Orca <help@stably.ai>
2026-05-27 13:48:40 -07:00
3c59c019fc fix(worktree): add SSH preflight check for dirty worktree before archive hooks (#2912)
Co-authored-by: Orca <help@stably.ai>
Co-authored-by: Prethish-Complyance <prethish@complyance.io>
Co-authored-by: brennanb2025 <brennankbenson@gmail.com>
2026-05-27 13:32:52 -07:00
Jinjing 8014516253 Add failed automation rerun action (#2913)
* Add rerun action for failed automations

Adds a recoverable failed automation rerun action in the run detail view, with pending-state handling and focused view-state coverage.

Design doc: docs/failed-automation-rerun-action.md

* Rebuild Electron binary before PR tests

- Ensure Node-based unit tests can import `electron` after install blocks package postinstall
- Generate Electron's required `path.txt` in the PR workflow
2026-05-27 11:28:16 -07:00
Jinwoo HongandOrca df911ba59a Fix terminal URL click fallback regression (#2914)
Co-authored-by: Orca <help@stably.ai>
2026-05-27 11:27:09 -07:00
github-actions[bot] 312cda876c release: v1.4.31-rc.2 v1.4.31-rc.2 2026-05-27 18:20:49 +00:00
Brennan Benson 2541f64dc6 Fix Windows release publish command (#2905) v1.4.31-rc.1 2026-05-27 01:12:51 -07:00
48a1923756 fix(terminal): flatten multiline quick commands into shell list (#2903)
Multiline quick commands should behave like a shell command list, not a series of already-queued PTY lines. When a foreground command reads stdin, raw newline delivery can be consumed before the shell sees later cd/pwd lines; terminal paste avoids that but shows the whole block as pasted input before execution.

Flatten newline-separated quick commands into a semicolon-delimited command list before active-pane dispatch and new-tab startup queuing. The shell parses the list once, so later commands run after earlier foreground commands exit and directory changes remain in the active shell.

Fixes #2844

Co-authored-by: Prethish-Complyance <prethish@complyance.io>
Co-authored-by: Orca <help@stably.ai>
2026-05-27 01:06:47 -07:00
Neil c40a430596 Fix Antigravity agent status stability (#2904) 2026-05-27 00:53:10 -07:00
Trevin ChowandJinjing 3cb09cc844 fix(computer-use): stop malformed numeric args from crashing the agent (#2894)
* fix(computer-use): stop malformed numeric args from crashing the agent

requiredNumber only checked isFinite, and several request handlers cast the
resulting Double straight to Int/UInt32 (elementIndex, clickCount, pages,
from/toElementIndex, windowId, windowIndex). Int(Double) traps when the value
is outside the integer's representable range, so a single malformed request
such as `{"elementIndex": 1e300}` crashed the entire agent process, killing
all in-flight automation.

Add a bounded conversion helper in the Core library and route every untrusted
Double->integer cast through it. boundedInteger truncates toward zero like
Int(Double) but returns nil (via init(exactly:)) instead of trapping when the
value is non-finite or out of range; the request handlers then surface a clean
invalid_argument error (or resolve to nil for the optional window lookups).

The helper lives in the Core library because the test target cannot import the
executable target where the handlers live. A negative-control run confirms the
out-of-range test traps with the previous Int(Double) cast and passes with the
fix.

* review: close remaining numeric crash paths

- parse stale-element validation indexes through bounded conversion
- reject malformed window selectors instead of dropping the target window
- bound synthetic scroll wheel deltas and cover Int32 conversion

---------

Co-authored-by: Jinjing <6427696+AmethystLiang@users.noreply.github.com>
2026-05-27 00:53:09 -07:00
Brennan BensonandOrca 5c8f56d052 Fix update checks during release publishing (#2898)
Co-authored-by: Orca <help@stably.ai>
2026-05-27 00:47:01 -07:00
Trevin Chow 563d4ff64b fix(cli): allow flag values that start with -- via --flag=value (#2892) 2026-05-27 00:19:43 -07:00
Jinjing 5783c4192b Improve Linear issue editing flow (#2901)
* fix: address review findings

* fix: update Linear RPC test
2026-05-26 23:15:33 -07:00
Jinjing f037e1c3d6 Strengthen contributing compatibility guidelines (#2899) 2026-05-26 22:36:07 -07:00
Jinwoo Hong 52096f07e8 Preserve mobile microphone usage description
Keep the iOS microphone usage string in Expo config after prebuild plugin resolution.
2026-05-27 01:25:16 -04:00
Jinwoo Hong fc1ea1a536 Prepare mobile 0.0.10
Bump mobile app version to 0.0.10 for App Store submission.
2026-05-27 01:18:55 -04:00
Jinwoo HongandOrca 3f8fad9e9e Improve mobile terminal startup and scrolling (#2828)
Co-authored-by: Orca <help@stably.ai>
2026-05-27 00:59:14 -04:00
github-actions[bot] f6e902a10f release: v1.4.31-rc.1 2026-05-27 03:56:38 +00:00
Brennan BensonandOrca b36df114d1 Preserve update nudges during release publishing (#2878)
Co-authored-by: Orca <help@stably.ai>
2026-05-26 20:56:11 -07:00
Brennan BensonandOrca 54c2ef89da Handle force delete for orphaned worktree directories (#2757)
Co-authored-by: Orca <help@stably.ai>
2026-05-26 20:28:51 -07:00
Neil dafc35bbc8 fix: clean daemon init startup listeners (#2884)
* fix: clean daemon init startup listeners

* test: cover daemon startup listener cleanup
2026-05-26 20:27:47 -07:00
Neil efcc0c315f fix: clear deleted profile session policies (#2886) 2026-05-26 20:24:47 -07:00
Neil fe7042b948 fix: clean production launcher startup listeners (#2885) 2026-05-26 20:24:42 -07:00
Neil 9d396e115c fix: remove SSH startup listeners after connect (#2882) 2026-05-26 20:24:36 -07:00
Neil 8950cec04f fix: clear model extraction abort pollers (#2881) 2026-05-26 20:24:30 -07:00
Neil b9165ac4bd fix: tear down timed-out speech workers (#2880) 2026-05-26 20:24:25 -07:00
Neil 03e43ef165 fix: avoid stacking browser download handlers (#2879) 2026-05-26 20:14:38 -07:00
Neil 721ef42ab8 fix: clear daemon server startup error listener (#2877) 2026-05-26 20:14:17 -07:00
Neil 57990fdcf3 fix: clear CDP proxy startup error listener (#2876) 2026-05-26 20:13:56 -07:00
Neil 3134496a6d fix: clean up PDF scale event listener (#2875) 2026-05-26 20:13:34 -07:00
Neil 50803c9d45 docs: record memory leak audit coverage (#2874) 2026-05-26 20:13:11 -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
Jinjing 6a9be249f5 feat: add external task filter links (#2871) 2026-05-26 20:07:03 -07:00
github-actions[bot] 3b7bc2366a release: v1.4.31-rc.0 v1.4.31-rc.0 2026-05-27 02:52:56 +00:00
Brennan BensonandOrca 6c6e3157f7 Fix updater release asset readiness checks (#2870)
Co-authored-by: Orca <help@stably.ai>
2026-05-26 19:52:25 -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
Xipeng JinandNeil e10d16b3c2 fix: Node native runtime rebuild verification (#2845)
* Fix Node native runtime rebuild verification

* Add native runtime rebuild regression test

---------

Co-authored-by: Neil <4138956+nwparker@users.noreply.github.com>
2026-05-26 19:15:42 -07:00
Jinwoo HongandOrca 4d59f3b9e5 Fix wrapped terminal file links (#2690)
Co-authored-by: Orca <help@stably.ai>
2026-05-26 19:14:04 -07:00
Jinjing cf5dfd7127 fix: address review findings (#2868) 2026-05-26 18:44:57 -07:00
Neil 9b2c05fa77 Fix keyboard layout shortcut dispatch
Fix shortcut dispatch so app commands follow the produced logical key for the active keyboard layout, while preserving intentional physical-code fallbacks for terminal byte paths and unavailable logical keys.\n\nCloses #2858
2026-05-26 18:28:55 -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
Trevin ChowandNeil 1790e3bb9b fix(sidebar): keep scroll position stable when deleting a workspace (#2863)
* fix(sidebar): keep scroll position stable when deleting a workspace

Deleting a workspace made the sidebar scroll and shift instead of just
removing the row. Two causes: the scroll-anchor restore fell straight to
scrollToIndex(align:'start') — snapping the anchor row to the viewport
top — whenever the post-delete virtual window briefly lacked the row's
DOM node; and scroll preservation was only wired to the context menu at
click time, never to the async removal that actually drops the row.

Restore now pins from the measured slot before that snapping fallback,
and removeWorktree records the top-row anchor in the same tick it removes
the row, covering every delete entry point (modal, card, SSH, batch).

* fix(sidebar): preserve delete scroll anchor

Keep virtualized scroll listener registration stable across row changes so cleanup cannot overwrite the pre-delete anchor after the row list mutates.

Add a regression test for the listener dependency contract.

---------

Co-authored-by: Neil <4138956+nwparker@users.noreply.github.com>
2026-05-26 17:49:49 -07:00
Jinwoo Hong bc706ef1bf Clean up hidden rate limit PTYs
Clean up hidden Claude/Codex rate-limit fallback PTYs and cap Codex fallback output.
2026-05-26 20:30:04 -04:00
github-actions[bot] 679d06f69f release: v1.4.30 v1.4.30 2026-05-27 00:21:52 +00:00
Jinwoo HongandOrca c134b1c31d Fix hidden browser automation paintability (#2851)
Co-authored-by: Orca <help@stably.ai>
2026-05-26 16:27:23 -07:00
github-actions[bot] 2d9aed70ea release: v1.4.30-rc.1 v1.4.30-rc.1 2026-05-26 23:02:34 +00:00
Neil e896dd3eb7 Recover hidden terminal output from main-owned state (#2848)
* fix: avoid renderer stalls on terminal backlogs

* Recover hidden terminal output from main state
2026-05-26 16:01:56 -07:00