Commit Graph
14638 Commits
Author SHA1 Message Date
OrcaWinandOrcaWin d5cd08217c test(ci): route favicon navigation cases through Bun (#29794)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-10-16 11:31:12 -07:00
OrcaWinandOrcaWin afea81ba78 test(ci): narrow real status store for command cleanup (#29791)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-10-16 11:28:00 -07:00
Kelvin Amoaba 70510e0f00 feat(native-chat): offer actions for what you right-click in chat (#28729) 2026-10-16 18:23:20 +00:00
OrcaWinandOrcaWin 10a8ecf98d test(terminal): observe shared completion after banner changes (#29786)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-10-16 11:14:57 -07:00
Neil 41bd7baafb perf(palette): avoid filtering qualities for identifier tokens (#29785) 2026-10-16 11:12:41 -07:00
Kelvin Amoaba 4446d4f628 fix(native-chat): stop following the end when the reader scrolls over a visual (#29116) 2026-10-16 18:11:33 +00:00
OrcaWinandOrcaWin 42dfd813fe test(ci): consolidate import resolution behavior proof (#29782)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-10-16 11:05:42 -07:00
OrcaWinandOrcaWin f73ab77b46 test: advance scripted Claude close deadlines (#29779)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-10-16 10:52:19 -07:00
Brennan Benson 79b6bad7bd Offer Claude's own / commands (like /goal) in a chat before Claude starts (#29026)
* Ask Claude for a resting chat's / menu instead of rebuilding it from folders

A Claude chat whose Claude isn't running (a new chat, or any chat after a
restart) offered only clear/compact plus folder commands and skills, so
Claude's own built-ins like /goal, /init and /review were missing until the
first message started Claude.

The at-rest catalog now sends Claude one initialize control request in the
chat's launch folder, through the same sessionless path the model list uses
(same binary, env, account pin and supervised runner), and shows the list
Claude answers. Hooks and MCP servers are off for that one process. Results
are cached per workspace and account for 5 minutes, and at most two probes
run at once. If Claude can't answer, the folder scan is used as before.

* fix(claude): keep Claude's own / list when a later refresh fails

* fix(claude): preserve CLI commands across overlapping fallback scans

* fix(claude): keep overlapping command refreshes eligible

* test(claude): await fallback settlement in overlap case
2026-10-16 10:50:51 -07:00
OrcaWinandOrcaWin 320f34aecf test: advance speech download retry timers (#29774)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-10-16 10:39:21 -07:00
Brennan Benson 2fa848395b refactor(pty): one host-env step for both terminal spawn lanes (#29297)
* test(pty): pin where the two spawn lanes build a daemon spawn's host env differently

Characterization on main's code before the host-env step merges: which failed env builds sweep
per-PTY state (minted ids only, both lanes), the empty-id split, the host-only WSL Pi/OMP guest
readiness wait, and that a host create operation still waits on a managed Codex login.

* refactor(pty): one host-env step for both terminal spawn lanes

The window (pty:spawn) and host (runtime controller) lanes each carried a copy of Codex resume,
Codex home selection, the managed-auth wait, backfill recovery and the daemon host-env build.
Both now call resolvePtySpawnHostEnv. Lane differences are explicit inputs: two TEMPORARY ones
(the host-only WSL Pi/OMP guest readiness wait; the host skipping host env for an empty id) and
three that mean the same in both lanes. The resume step's launchEnv was never read and is gone.

* test(pty): pin that both lanes hand Codex resume prep the request's CODEX_HOME

orca serve (#29209) skips resume prep for a launch whose env names a client-sent CODEX_HOME.

* test(pty): type the new lane-pin requests instead of asserting them

* test: pin selected Codex home on terminal restart
2026-10-16 10:32:03 -07:00
Brennan Benson 85254f9ecd refactor(runtime): plan paired agent sessions with the host planner (#29041)
* test(launch): pin what a paired agent session spawns today

Characterization on main's code before createAgentSession moves onto the
host planner: plain launch, short/long/multi-line prompts on macOS, a
stdin-prompt agent starting clean, Windows PowerShell and cmd quoting, and
the identity-required refusal when no launch can be built.

* refactor(runtime): plan paired agent sessions with the host planner

terminal.createAgentSession built its own launch command beside the planner
every other host launch uses, and the two had drifted. It now hands the
request to createTerminal as a startupAgent, so one planner builds it.

The planner gains a draft delivery input, and one TEMPORARY input
(startupPromptCarry: 'force-line') keeps what createAgentSession did: the
prompt always rides the typed line, and an agent that reads its prompt
after start launches clean. The later change that delivers uncarried
prompts after start removes it. A launch that can't be built still refuses
with agent_session_identity_required.

* test(accounts): pin that the selected account wins over Settings agent env

A paired agent session now layers the host-selected account env the way
every other host launch does.

* fix(runtime): report prompt carry truthfully on the planner's direct path

Review round 1: a stdin-prompt agent's text never rides its launch line, a
draft comment that overstated the carry rule, the error class's name, and
formatting the cherry-picked commit skipped.

* docs(runtime): scope the account-order and draft comments accurately

Review round 2.

* test(launch): drop paired-session parity rows that pin nothing new

The no-prompt and short-prompt rows plan the same with or without
force-line, and the Windows cmd row repeats the OpenCode-model Windows
row's createAgentSession runtime and cmd quoting. The long-prompt,
aider, PowerShell, refusal and account-env pins keep the coverage.

* docs(runtime): label the draft's carry-rule exemption temporary

Skipping the typed-line carry rule for drafts is createAgentSession
parity, not design: a draft on the line has the same hazards as a
submitted prompt. The one prompt/draft delivery policy removes it with
force-line.

* fix(runtime): keep main's error name for an unbuildable agent launch

Overriding the name made every other planner caller's stringified
error read 'AgentLaunchUnbuildableError: ...' instead of main's
'Error: ...', which renderer code that strips an 'Error:' prefix
would show raw. createAgentSession matches by instanceof, so the
override bought nothing.
2026-10-16 10:29:23 -07:00
Kelvin Amoaba 8af2324f29 fix(source-control): let npm-installed agents generate commit messages on Windows (#29434) 2026-10-16 17:27:46 +00:00
OrcaWinandOrcaWin fa59ed0295 test: advance mocked OpenCode probe close timers (#29772)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-10-16 10:27:31 -07:00
Žan MlakarandKelvin Amoaba 14f0f8481c fix(emulator): remove only Orca's own adb forwards when an Android session stops (#28780)
Co-authored-by: Kelvin Amoaba <97001695+AmoabaKelvin@users.noreply.github.com>
2026-10-16 17:26:45 +00:00
Kelvin Amoaba fbe8f76e7a fix(native-chat): keep saved visuals from before the chat-scratch rename (#29717) 2026-10-16 17:24:35 +00:00
Neil 44167e816f test(mobile): model the slow link per window so the slow-link test does no CPU-bound work (#29773)
CI's Mobile verify timed the 'finishes' case out at 5s: it hashed and base64-encoded
twelve real 384 KiB windows under fake timers. The link now costs a fixed 17s of
fake time per window over a 1 KiB grid, so the test runs in ~20ms and still fails
on the per-read timeout without the #29751 fix.
2026-10-16 10:19:58 -07:00
OrcaWinandOrcaWin cd35ef9622 test(palette): validate performance work and reuse warm corpus (#29771)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-10-16 10:15:27 -07:00
Neil 43c066edff fix(mobile): keep the app download going over a slow link instead of timing out each queued read (#29751)
* fix(mobile): keep the app download going over a slow link instead of timing out each queued read

Each bundle window read had its own 30s request timeout, but its reply queues
behind the other three reads in flight. On a slow link (Tailscale through a
relay) the fourth reply could not land within 30s, so the download showed
progress and then failed with 'Request timed out: mobileWeb.bundle.range'.

The fetch now fails only when no window reply lands for 30s, and each read's
own deadline is a long backstop.

Fixes #29697

* fix(mobile): bound a stalled bundle fetch's pending reads to the in-flight budget

* test(mobile): re-record bundle-fetch goldens for the per-read backstop option
2026-10-16 10:13:14 -07:00
OrcaWinandOrcaWin 94336d1599 test(ssh): advance retry clock after real credential answer (#29766)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-10-16 09:59:36 -07:00
Neil aecffcc696 perf: isolate browser eviction veto from pure retention selectors (#29765) 2026-10-16 09:54:58 -07:00
Jinjing 5a72a206b7 chore(i18n): translate new keys to es/fr/ja/ko/zh (scan 2026-10-15) (#29281)
* chore(i18n): translate new keys to es/fr/ja/ko/zh

Scan 2026-10-15 (window 7244bf3e6f..e2f2277d512): 38 new en keys, 16
removed, 0 changed. All five locales missed the same 18 keys (the other
14 are pinned English-fallback). Translated the 18 x5, fixed badly
translated existing strings, and ran two review rounds.

* rm worklog file
2026-10-16 09:53:51 -07:00
Jinjing 922014afcb Let Cmd+J open typed websites in a new browser tab (#29050)
* Add website navigation to the Cmd+J palette

Typing a URL or host such as brex.com or localhost:3000 in Cmd+J now
offers a "Go to <url>" row that opens the site in a new browser tab in
the invoking group. Previously the query only went to search, and the
new tab always opened the default page.

- Classify input with the existing tab-create URL classifiers. Blocked
  schemes such as javascript: and file:, oversized queries, and plain
  words stay on the normal search path.
- Pass an optional URL through openNewBrowserTabInActiveWorkspace. A
  requested URL skips address-bar focus so the page can load directly.
- Rank the website row first unless an exact entity match or an
  issue/PR URL should lead. Query-bound actions carry sourceQuery and
  are ignored on select if the live input has changed, so a stale row
  cannot open the wrong site.

* Open typed websites from Cmd+J in a browser tab

Cmd+J now opens a typed site such as brex.com or localhost:3000 in a new
browser tab. Bare dotted names only count as sites when the suffix is a
listed domain, so file names like App.vue or Cargo.lock still resolve as
files. Browser open failures show a toast instead of an unhandled rejection.

* Fix Cmd+J website action availability
2026-10-16 09:29:22 -07:00
OrcaWinandOrcaWin fea129713d test: narrow remote input model handler registration (#29747)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-10-16 09:23:33 -07:00
Jinwoo Hong 99c72ffa65 Leave adopted live terminals' tabs to the layout updates in the layout-owner build (dark, build switch off by default) (#29710)
* Leave adopted live terminals' tabs to main's frames in a layout-owner build (dark, build switch off by default)

* Adopt only into a pane main's frames hold for that terminal; test a tab-bar id that differs from its terminal id

* Count only a pane main binds to the adopted terminal; check the pane key's tab

* Read frame-held panes through a small module so window-owned builds keep the frame sync out
2026-10-16 09:14:17 -07:00
OrcaWinandOrcaWin 964e6ed52c test: answer setup probes in real ACP process fixtures (#29742)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-10-16 09:06:11 -07:00
OrcaWinandOrcaWin 3d478da344 test: load the closed editor controller fixture once (#29738)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-10-16 08:59:56 -07:00
OrcaWinandOrcaWin c134fe1a16 test: reuse the macOS launcher clock for mocked polling waits (#29734)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-10-16 08:46:41 -07:00
Neil 8fad95829a fix(agents): direct work-item and checks-fix launches quote for the execution host (#29716)
* fix(agents): direct work-item and checks-fix launches quote for the execution host

GitHub Project Start, PR checks Fix and the source-control/checks preflights
resolved their launch platform from the client OS whenever the repo had no SSH
connection, so a Windows client starting work on a paired Linux Orca server sent
a PowerShell-quoted --prefill to bash. They now read the execution-host facts
#27259 introduced (server-reported OS, SSH-reported OS, WSL), and the
path-shape resolver is removed so one helper decides.

* fix(agents): resolve direct-launch and preflight platforms from the repo owner

Review follow-up: a WSL worktree on a paired Windows server quotes for Linux,
the owner-row fixture reports its server OS, and the source-control preflights
read the repo owner rather than the focus-defaulted worktree route.

* fix(agents): preflight platform honours a worktree's own host

Review follow-up: a per-worktree host outranks the repo owner, the host-platform
test's mutable client platform is typed, and the source-control panel fixture
carries the host slices.

* fix(agents): a server-projected SSH worktree reads its server's SSH state

Review follow-up: the preflight resolver keeps the runtime owner for nested SSH
worktrees instead of reading this client's own SSH connections.

* fix(agents): cmd.exe pastes a multi-line draft instead of prefilling it

Review follow-up: now that direct launches pass the local Windows shell, a
multi-line --prefill under cmd.exe would submit at its first newline.

* fix(agents): direct launches quote for the shell their tab spawns

A project's Windows runtime can override the terminal setting (WSL setting,
Windows runtime spawns PowerShell), so resolve the tab's effective shell before
quoting. The cmd.exe parity row now expects cmd quoting.
2026-10-16 08:46:22 -07:00
OrcaWinandOrcaWin 7fc7f3d142 test(codex): overlap isolated backfill process shutdown proofs (#29732)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-10-16 08:37:13 -07:00
OrcaWinandOrcaWin fbca4a32dc test(updater): remove duplicate expired preflight launch proof (#29731)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-10-16 08:32:34 -07:00
OrcaWinandOrcaWin 5bfed726d1 test: drive keyboard filter proof through terminal input (#29726)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-10-16 08:24:57 -07:00
Jinwoo Hong c353ef4a34 One write path for main's split panes, late-shown splits reported again (dark, build switch off by default) (#29723)
* One pane-commit path for main's splits, a late-mounted split recorded again, and one fresh-pane exit rule (dark, build switch off by default)

* Runtime panes write only touched records in the layout-owner build; main keeps a split the window already recorded

* Admission patch that finds no change writes nothing, as layout.apply
2026-10-16 08:19:05 -07:00
Neil 572bde869e test: avoid full runtime imports in RPC boundary tests (#29721) 2026-10-16 08:15:05 -07:00
OrcaWinandOrcaWin 41beb2d0a3 test: require cursor reset before same-turn repaint negative (#29722)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-10-16 08:13:49 -07:00
OrcaWinandOrcaWin fc26e27591 test: exercise interrupt admission and exit preconditions (#29719)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-10-16 08:09:48 -07:00
OrcaWinandOrcaWin ce3a18a128 test: detect quarantined input forwarded with provenance (#29715)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-10-16 08:03:37 -07:00
OrcaWinandOrcaWin d5e5815dc6 test: reuse local catalog recovery app fixture (#29712)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-10-16 07:52:46 -07:00
OrcaWinandOrcaWin 40f56eb7bb test: consolidate duplicate terminal redraw scenarios (#29709)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-10-16 07:44:40 -07:00
OrcaWinandOrcaWin eada95e960 test: consolidate duplicate terminal theme subscription cleanup (#29708)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-10-16 07:40:38 -07:00
Neil 86aa232876 test: advance mocked terminal clocks and share status setup (#29704)
* test: advance mocked terminal restore observation windows

* test: share setup across agent status entry contracts
2026-10-16 07:38:00 -07:00
Jinwoo Hong 44a86bb188 test(orcad): make the retiring-daemon teardown test independent of exit timing (#29702)
The test let a child exit on a 1 s timer and then required kill(pid, 0) to
report ESRCH. On Linux the teardown wait rightly accepts an unreaped zombie,
which kill(pid, 0) still reports as present, so the assertion raced Node's reap.
The child now exits only when told, and the test asserts teardown is still
pending while it lives and resolves once it exits.
2026-10-16 07:24:18 -07:00
Jinwoo Hong 90addf474e Number layout stream updates so a layout command's answer names the update holding it (dark, build switch off by default) (#29696)
* Number layout frames so a layout command's reply names the frame holding its effect (dark, build switch off by default)

* Report every frame's position, test the reply's frame end to end

* Rewrap sendLayoutApply's doc comment
2026-10-16 07:22:01 -07:00
OrcaWinandOrcaWin 5851ecd96d test: exercise plugin startup completing after cancellation (#29699)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-10-16 07:17:22 -07:00
Neil 54dc2d609d test: share repository store setup and advance mocked mail clocks (#29698) 2026-10-16 07:16:30 -07:00
OrcaWinandOrcaWin adf26f9ec5 test: share browser catalog startup across allowlist and CDP checks (#29693)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-10-16 07:13:34 -07:00
OrcaWinandOrcaWin a3dfb05258 test: share mobile presence and subscription runtime startup (#29694)
* test: share mobile presence and subscription runtime startup

* test: route mobile reliability gate through retained suite

---------

Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-10-16 07:10:40 -07:00
OrcaWinandOrcaWin e141e13384 test: keep disconnected plugin fixture alive until supervised stop (#29695)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-10-16 07:08:22 -07:00
Jinwoo Hong dbc1e18b07 Route the remaining window pane-layout changes through main (dark, build switch off by default) (#29689)
* Route the remaining window pane-tree writers through main (dark, build switch off by default)

* E1b review fixes: valid pane ids, keep a mounted split, automatic closes skip the user mark, sole-pane exit guard
2026-10-16 07:04:34 -07:00
Neil e40f8ec115 test: remove real waits and repeated catalog setup (#29690) 2026-10-16 06:53:02 -07:00