Commit Graph
21428 Commits
Author SHA1 Message Date
Neil 16f8b0461b refactor(editor): group core modules by feature owner (#42325) 2026-11-14 00:10:17 -08:00
OrcaWinandOrcaWin a92db9d4d0 test: remove low-value native, cache, and trust examples (#42321)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-11-13 23:55:09 -08:00
Jinwoo Hong aaa61af50a fix(computer): report a locked screen instead of missing Accessibility (#42277)
* fix(computer): report a locked screen instead of missing Accessibility

Behind the lock screen (display sleep, screen saver or a manual lock) macOS reports Accessibility as untrusted. Orca read that as a missing permission, and its recovery hint led agents to open System Settings. Check the session lock first and return screen_locked; permission setup refuses while locked.

* fix(computer): recheck the lock under the provider lock and at setup launch

* fix(computer): read the lock fresh for setup and keep locked status reads out of the cache

* refactor(computer): drop the extra lock read at setup; the status and setup helper already check it
2026-11-14 02:43:37 -05:00
Jinjing 924887bd44 Update E2E tests for project menu and startup readiness (#41923)
* test: update e2e project entry and readiness

* ci: keep targeted e2e launches in background
2026-11-13 23:39:26 -08:00
Neil 48e3da9231 refactor: organize editor document and viewer modules (#42310) 2026-11-13 23:36:10 -08:00
Jinjing d8c75a6903 Keep question previews inside the focused option ring (#42317) 2026-11-13 23:30:01 -08:00
OrcaWinandOrcaWin 30e94b4ad0 test: remove low-value navigation and recovery coverage (#42319)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-11-13 23:23:58 -08:00
OrcaWinandOrcaWin 7f736d7c4a test: remove low-value launch removal and persistence examples (#42318)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-11-13 23:14:08 -08:00
Jinjing 3e0a9585a6 Improve browser extensions (#41829)
* Improve browser extensions

* Fix browser extension reporting

* Keep extension reporting responsive
2026-11-13 23:07:43 -08:00
OrcaWinandOrcaWin b9b4a115c5 test: remove low-value CLI dashboard and browser examples (#42316)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-11-13 23:03:02 -08:00
Jinjing f41a912017 Explain updates to experimental worktree cards (#42314)
* wip

* Refine worktree card update preview
2026-11-13 22:54:50 -08:00
OrcaWinandOrcaWin 19e400856a test: remove low-value mobile runtime and utility suites (#42315)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-11-13 22:53:07 -08:00
Jinjing 7b4cabd6f6 Add card style switch to workspace options (#42313) 2026-11-13 22:41:37 -08:00
Brennan Benson 02f30c3f1b Run Archive scripts for project-group folder workspaces (#41687)
* feat: run setup and archive hooks for group folder workspaces

* fix: align group workspace owners and create result consumers

* chore: carry terminal extraction allowances through validation

* fix: remove extracted terminal import cycle and refresh deletion fixtures

* fix: show group setup settings in project navigation

* Run Archive scripts before removing group folder workspaces

* Tighten workspace record read allowance after removal extraction

* Correct Archive waiver regression expectation

* Complete Archive hook settings test fixture

* Refresh group hook Settings when runtime contact returns

* Cover group hook support across replacement pairings
2026-11-13 22:36:57 -08:00
buf0-bot[bot] 40c64b58fa Update README downloads badge (#42311)
Co-authored-by: buf0-bot[bot] <252831055+buf0-bot[bot]@users.noreply.github.com>
2026-11-14 06:26:29 +00:00
OrcaWinandOrcaWin 15d4bd1d1a test: remove mobile and transport helper suites (#42306)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-11-13 22:25:47 -08:00
Neil 6ff736b828 refactor: organize dashboard and popout modules by owner (#42302) 2026-11-13 22:11:46 -08:00
OrcaWinandOrcaWin 9e42fe12a2 test: remove low-value boundary and utility suites (#42304)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-11-13 22:07:25 -08:00
OrcaWinandOrcaWin 7af5cbfe65 test: remove synthetic scheduler and routing examples (#42299)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-11-13 21:56:16 -08:00
Brennan Benson 1ca705d5f4 Skip unchanged managed Codex launch preparation (#42225)
* Skip completed Codex launch preparation when inputs match

* Stop validation work once preparation cannot be reused

* Combine file observation imports for code quality checks

* Use annotations for preparation test controls

* Read preparation snapshots asynchronously and refresh context after waits

* Reuse Codex configuration preparation at the actual launch boundary
2026-11-13 21:52:03 -08:00
Brennan Benson f0b3161448 perf(cli): avoid Electron startup for ordinary Mac commands (#42259)
* perf(cli): use packaged Node for ordinary Mac commands

* test(cli): couple Mac shim fixture to packaged helper layout

* fix(cli): narrow optional native process replacement API

* test(cli): isolate native replacement API across test platforms

* test(cli): allow spying on the isolated replacement API

* test(cli): use NodeNext-compatible dynamic import specifiers

* Keep desktop lifecycle commands on the direct Electron route
2026-11-13 21:51:23 -08:00
OrcaWinandOrcaWin 60b6db23c4 test: remove low-value UI and process suites (#42297)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-11-13 21:44:51 -08:00
Jinjing b5bfbf58c8 fix(macos): FDA toast copy + inline action row (#41892)
* fix(macos): FDA toast copy claims only observed file prompts, not agent interruptions

* fix(macos): keep FDA toast actions inline on roomy cards and ring the dismiss link on focus
2026-11-13 21:34:27 -08:00
Jinjing 2105344a21 fix(native-chat): offer Submit on the last question step after skipping (#42268)
* fix(native-chat): offer Submit on the last question step after skipping

The last step's footer label came from the current question only, so a
skipped last question showed an outlined Skip even when earlier answers
would be submitted. Label the last step Submit whenever any question is
answered; an all-skipped prompt keeps Skip, which still dismisses.

* test(native-chat): add skipped-last-step question card fixture
2026-11-13 21:25:31 -08:00
NeilandClaude Opus 5.5 7cef794a4a fix(browser): make orca cookie delete remove only the named cookie (#42279)
agent-browser's `cookies clear` ignores --name/--domain and wipes the
whole profile cookie jar, so `orca cookie delete` signed users out of
every site. Delete through the guest debugger instead: list cookies with
Network.getAllCookies, match by name and host (host-only, dot-prefixed,
and parent-domain cookies for --url / tab URL), and call
Network.deleteCookies per match, passing CHIPS partition keys back.
Report deleted:false when nothing matched, and reject tab URLs without a
cookie host (about:, file:, data:) asking for --domain or --url. The
external Chromium provider no longer maps cookie delete to the
jar-wiping agent-browser command.

Fixes #42229

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-11-13 21:23:03 -08:00
Jinjing c7ebf68173 Revert "fix: explain merged workspace cleanup and keep visible reviews fresh (#41200)" (#42275) 2026-11-13 22:22:59 -07:00
OrcaWinandOrcaWin b7f6fe3cee test: remove redundant browser and runtime mock suites (#42292)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-11-13 21:09:07 -08:00
OrcaWinandOrcaWin d06458173d test: remove low-value relay, workspace and UI suites (#42288)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-11-13 20:59:03 -08:00
Brennan Benson 869f6bbef7 Restore workspace deletion on server hosts (#41858)
* Fix worktree deletion on server hosts

* Finish workspace removal cancellation and final saves

* Wait for WSL workspace deletion to finish

* Capture CLI deletion errors in the server integration test

* test: canonicalize removal fixture and expose serve stop phases

* test: align serve fixture versions and report workspace paths

* test: isolate removal lifetimes and resolve native fixture paths

* Type-check cancellation assertions on the shared removal mock
2026-11-13 20:50:00 -08:00
OrcaWinandOrcaWin 8ee811174f test: remove mock-only suites and native text-entry harness (#42283)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-11-13 20:45:01 -08:00
OrcaWinandOrcaWin a899d48611 test: remove mock-only suites and brittle harness assertions (#42281)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-11-13 20:32:47 -08:00
lucas.wuandNeil d0882ca38c fix(pi): accept --model/--effort for Pi agent launch and worker-start (#42255)
Pi's launch catalog now opts into launch-time model/effort preferences, so
`orca agent launch --agent pi` and `orca orchestration worker-start --agent pi`
accept `--model <provider/id>` and `--effort <level>` instead of refusing.

Pi models without a provider/id shape are refused up front, before a
worktree or worker is created. A new host capability,
`agent.launch.pi-model.v1`, lets the CLI refuse a Pi model/effort on older
execution hosts that would otherwise start Pi on its default model.

Co-authored-by: Neil <neil@stably.ai>
2026-11-13 20:27:30 -08:00
Henry SuandNeil b2bb38873e fix(browser): preserve backslashes in POSIX file paths (#42257)
On macOS and Linux a backslash is an ordinary filename character, but
absolutePathToFileUrl converted every backslash into a path separator, so
typing /tmp/site\draft.html opened /tmp/site/draft.html instead.

Keep backslashes (encoded as %5C) for rooted paths when the local host is not
Windows. On Windows every path still has backslashes normalized to slashes,
so drive, UNC and rooted /foo\bar inputs behave as before.

Fixes #42256

Co-authored-by: Neil <neil@stably.ai>
2026-11-13 20:17:16 -08:00
OrcaWinandOrcaWin 6b1738fad2 test: remove low-value shared and workspace tests (#42276)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-11-13 20:14:15 -08:00
Neil 4dbfc70cb4 chore(test): load Vitest config as native ESM to drop configLoader warning (#42266)
* chore(test): load Vitest config as native ESM to drop configLoader warning

* chore(test): use rewriteRelativeImportExtensions so type-aware lint accepts .ts imports
2026-11-13 20:12:19 -08:00
OrcaWinandOrcaWin 98d73ddcae test: remove low-value sidebar and UI suites (#42273)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-11-13 20:00:45 -08:00
Jinwoo Hong 2a6e96b522 fix(mac): give the terminal host the app's executable UUID (#42270)
macOS Local Network caches one executable UUID per bundle id, and the terminal host shares the app's bundle id. With a UUID of its own the cache flips between the two, which blocked some connections and prompted again after an update. Give the host exactly the main executable's UUID per CPU type, and check that in packaging and after notarization.
2026-11-13 23:00:25 -05:00
JinjingandGarrett Peppers e2061f5b73 fix(markdown): highlight YAML frontmatter in the source editor (#42169)
The markdown grammar's frontMatter rule embeds source.yaml at the start
of the document, but Orca loaded YAML only when a ```yaml fence label
was seen, so frontmatter stayed plain text. Load the YAML grammar
together with markdown.

Fixes #41658

Co-authored-by: Garrett Peppers <garrett@pepperstech.net>
2026-11-13 19:55:43 -08:00
Neil cee89b8f62 chore(e2e): use compact dot reporter when an AI agent runs Playwright (#42267) 2026-11-13 19:54:09 -08:00
Brennan Benson 95b8118e97 test(browser): reset proxy resolvers at fixture boundaries (#42269) 2026-11-13 19:52:37 -08:00
Brennan Benson 14e0ef51d9 fix(native-chat): /fork during a reply forks through the newest finished response (#42215)
* fix(native-chat): say /fork is refused while the agent replies, and to run it again

The old notice read as a promise to fork later. Like the common pattern, a running turn is not forkable and nothing is deferred, so the copy now names the agent and tells the user to run /fork again.

* chore(fixtures): show the /fork refusal notice at a narrow composer width

* Revert "chore(fixtures): show the /fork refusal notice at a narrow composer width"

This reverts commit 4ae7756dfd.

* fix(native-chat): /fork during a reply forks through the newest finished response

Like /btw and the common pattern for a fork that names no response, a running reply no longer refuses /fork when a finished response exists; only a first reply or an agent that forks only its latest turn still refuses, with the retry wording.
2026-11-13 19:43:31 -08:00
OrcaWinandOrcaWin cdf1f8f272 test: remove low-value UI suites and vacuous deletion test (#42265)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-11-13 19:39:48 -08:00
Brennan BensonandClaude Opus 5.5 956af75404 perf: window agent dashboard cards (#41372)
* perf(dashboard): window agent board lanes instead of mounting every card

Each dashboard lane now renders its cards through a measured per-lane
virtualizer in the existing scroller, so opening a board with thousands of
cards mounts only the viewport, overscan and a constant set of pinned cards
(lane first/last, last focused, dialog opener, pending Tab target).

Search, filters, grouping, counts, dialog routing and acknowledgments still
run on the full card arrays. Subagent disclosure moves to lane-owned state so
it survives scrolling away and resets when the card leaves the lane, as the
old unmount did. Tab and Shift+Tab bridge to the logical neighbour card when
native order would skip to a distant pinned card.

The workspace board's single-index range extractor is generalized into a
shared pinned-index extractor with the same behavior for its caller.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* perf(dashboard): keep the lane card list compiler-compatible

Move the lane virtualizer into its own hook so the card list compiles, and
prune lane disclosure/focus keys during render instead of in an effect.
Give the dashboard destination integration test a lane viewport, since
cards now mount only inside the measured window.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* chore(dashboard): record isolated virtualizer compiler diagnostic

* perf(dashboard): preserve layout identity and retire departed measurements

* fix(dashboard): reveal the focused edge of tall cards

---------

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-11-13 19:33:03 -08:00
OrcaWinandOrcaWin 6f43f12837 test: remove mock-only notification and IPC suites (#42263)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-11-13 19:26:31 -08:00
Kelvin Amoaba 4d005cf8b8 fix(computer): read wait --enabled state from the host, not label text (#42260) 2026-11-14 03:18:36 +00:00
OrcaWinandOrcaWin d7c6ab1852 test: remove mock-only editor, IPC status and startup suites (#42258)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-11-13 19:14:21 -08:00
Kelvin Amoaba 8e522d68ac fix(native-chat): forget a chat tab's open subagent when the tab closes (#42254)
The pane-to-subagent map only dropped an entry on going back to the main
agent, so a tab closed with a subagent open kept its entry for the
renderer's life. The removed-chat-tab seam that retires draft positions
now retires those entries too.
2026-11-14 03:05:34 +00:00
Neil 2ba3f6f6b4 fix(mac): give the terminal host its own executable UUID so Local Network access works in terminals (#42245)
Orca terminals run under the signed helper, whose executable was stock Node,
sharing its LC_UUID with every install of that Node build. macOS Local Network
privacy maps a responsible process to an app by that UUID, so terminals could be
attributed to another program and blocked from the LAN while Orca showed allowed.

Rewrite the helper executable's UUID during assembly (same scheme as #41676),
and fail packaging and the release check if it drifts.

Fixes #21988
2026-11-13 19:03:23 -08:00
Kelvin Amoaba 4ab90e56f3 perf(workspace-cleanup): scope each removal's fresh re-check to its target (#42252)
The per-removal safety re-check listed and projected every workspace on the
host before filtering to one id, so M removals rebuilt the listing M times.
getWorktreePs now takes an optional id and projects only that workspace's
rows; PTY liveness still refreshes against every worktree.

Refs STA-15293
2026-11-14 02:57:18 +00:00
Kelvin Amoaba c760f19cea fix(settings): drop cleanup activity toggle state for runs that left history (#42251) 2026-11-14 02:48:23 +00:00