Commit Graph
2552 Commits
Author SHA1 Message Date
OrcaWinandOrcaWin 5fc5aa435e test: remove 295 low-value tests (#39494)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-11-07 05:10:40 -08:00
OrcaWinandOrcaWin 274b3e359f test: remove 65 low-value tests (#39491)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-11-07 04:51:05 -08:00
OrcaWinandOrcaWin 3ca9cb8bc2 test: remove 242 low-value tests (#39487)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-11-07 04:36:43 -08:00
OrcaWinandOrcaWin cecfa9865d test: remove 158 low-value tests (#39483)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-11-07 04:18:13 -08:00
OrcaWinandOrcaWin c8ed5c6be4 test: remove 295 low-value tests (#39480)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-11-07 04:03:51 -08:00
Neil 23808bb73f refactor(renderer): organize host and terminal owners and remove forwarding shells (#39320)
* refactor(renderer): organize host and terminal implementation owners

* fix(refactor): align active adoption reliability references

* refactor(terminal): remove forwarding shells and stale mocks

* fix(renderer): consolidate direct owner imports

* fix(refactor): route incoming issue trust type to its owner

* test(runtime): give independent status viewers separate pairing tickets

* style(refactor): normalize rebased terminal mock formatting
2026-11-07 03:31:13 -08:00
OrcaWinandOrcaWin a523f1d4c5 test: remove 32 low-value shared helper tests (#39475)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-11-07 03:20:35 -08:00
OrcaWinandOrcaWin 67c9d04ee4 test: remove 131 low-value terminal, session and transport tests (#39460)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-11-07 02:55:40 -08:00
OrcaWinandOrcaWin 153d6d000c test: remove 18 low-value session tests (#39459)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-11-07 02:44:40 -08:00
OrcaWinandOrcaWin f6874cc512 refactor(renderer): make memo invalidators and layout flushes compiler-safe (#39414)
React Compiler drops bare `void x;` reads, narrows callback deps to the fields
read, and oxc 0.152 emits `a[q.head++]` as a prefix update. Rewrite those
sites so they behave the same with the compiler on, and identically to today
with it off:

- `void tick` memo invalidators -> `recomputeOn([tick], () => ...)`
- `void el.offsetWidth` transition resets -> `forceLayoutReflow(el)`
- pty termination queue reads, then advances, the head index
- host agent preference subscription takes the whole subscription object

Prunes the compiler-compat hazard baseline from 40 to 2 entries.

Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-11-07 02:37:53 -08:00
OrcaWinandOrcaWin 92ef9440db test: remove 221 low-value cloud, mobile and journal tests (#39449)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-11-07 02:12:41 -08:00
OrcaWinandOrcaWin a89cdae5dc build(renderer): fail compiler-compat baseline shrinks only in touched files (#39440)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-11-07 01:59:33 -08:00
Kelvin Amoaba ffaf887e78 feat(mobile): transcribe dictation on the phone, with the computer as fallback (#39386)
* feat(mobile): define the on-device speech contract for the native audio module and page bridge

* feat(mobile): dictate on the phone first and replay to the computer when the phone fails

* refactor(mobile): type the on-device speech module without a cast

* fix(mobile): point dictation's finish ref at the committed callback

* test(mobile): wait on the takeover request instead of a fixed sleep

* fix(mobile): release each dictation request's own share of a replayed backlog

* fix(mobile): let the computer's text replace the phone's after a fallback
2026-11-07 09:37:45 +00:00
OrcaWinandOrcaWin 95fadd01ba test: remove 321 low-value main and shared tests (#39429)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-11-07 01:37:39 -08:00
OrcaWinandOrcaWin 1e3eb5701c test: remove 186 low-value main, scripts and shared tests (#39404)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-11-07 00:54:22 -08:00
OrcaWinandOrcaWin 75910ba631 build(renderer): gate React Compiler compatibility with a ratchet (#39324)
Adds oxc-transform-react as a devDependency and a ratchet that runs React
Compiler in analysis mode over the shipped renderer sources. Files can't gain
bailouts (new files must compile fully), and new code the compiler would run
differently is banned: hooks it memoizes into a cached block, bare `void x;`
reads, member postfix updates used as values, and "use no memo" opt-outs.
Both baselines are generated by --update / --prune.

Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-11-07 00:42:01 -08:00
OrcaWinandOrcaWin 90433cd212 test: remove 235 low-value main, scripts and shared tests (#39376)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-11-07 00:21:18 -08:00
OrcaWinandOrcaWin 8004bfd425 test: remove 364 low-value main, renderer and shared tests (#39365)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-11-07 00:13:23 -08:00
Jinwoo Hong 228263d566 feat(automations): launch desktop runs from main, not the renderer window (#39247)
Desktop automation runs now launch from the main process through the same launcher orca serve uses. The renderer dispatch path is deleted.
2026-11-07 03:04:56 -05:00
OrcaWinandOrcaWin ff416c2f6c test: remove 181 low-value mobile, CI and runtime tests (#39351)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-11-06 23:39:35 -08:00
OrcaWinandOrcaWin f5f45784e2 test: remove 212 low-value mobile shell and routing tests (#39334)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-11-06 23:07:50 -08:00
OrcaWinandOrcaWin 6de93713ef test: remove 439 low-value browser and runtime tests (#39318)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-11-06 22:33:46 -08:00
Neil 97f2de9913 refactor(renderer): organize runtime clients and feature state owners (#39292)
* refactor(renderer): organize runtime clients and feature state owners

* fix(refactor): preserve incoming consumers and validation routing

* fix(refactor): consolidate defining-owner type imports
2026-11-06 21:32:59 -08:00
Kelvin Amoaba c158c82c71 perf(mobile): skip the Suspense fallback on page boot (#39184)
* perf(mobile): skip the Suspense fallback on page boot

* fix(mobile): keep open-target boots on the lazy path

* test(mobile): pin that the page waits for its held route chunk

* refactor(mobile): preload every page layout and keep screens apart
2026-11-07 04:04:45 +00:00
Kelvin Amoaba cc6a66ed01 feat(mobile): let pages read and write the device store (#39147)
* feat(mobile): let pages read and write the device store

* fix(mobile): import zod as a namespace in the page store verb

The page bundle check rejects `import { z }`: it ships zod's locale tables.
2026-11-07 04:02:52 +00:00
Neil 944ed9f2ca refactor(terminal): organize remaining pane features by owner (#39270)
* refactor: organize remaining terminal pane features by owner

* refactor(terminal): consolidate replay guard type imports

* refactor(terminal): retarget notification mocks and generated consumer import

* refactor(terminal): repair benchmark owner lookup and stale mock export
2026-11-06 19:45:07 -08:00
Kelvin Amoaba bd88cdeca8 perf(mobile): trim the page bundle back under its old budget (#39182)
* perf(mobile): trim the page bundle back under its old budget

* build(mobile): simplify the route entry anchors and zod table guard

* fix(mobile): import zod as a type in the RPC result reader
2026-11-07 03:28:04 +00:00
Neil 7823b122f1 refactor(renderer): organize terminal pane lifecycle and layout owners (#39242) 2026-11-06 17:52:55 -08:00
Kelvin Amoaba a3a0e68380 fix(packaging): require macOS 13.4, the minimum the on-device speech engine runs on (#39135)
* fix(packaging): require macOS 13.4, which the bundled speech engine needs

* fix(updater): keep the macOS requirement title clear of the close button

* fix(packaging): check out the Darwin floor table for adhoc builds and raise the cask floor

* refactor(updater): reuse the parsed Darwin floor for the macOS requirement

* fix(updater): use a margin to keep the macOS requirement title clear of the close button

* fix(updater): say the macOS requirement comes from Electron and the speech engine
2026-11-07 00:18:50 +00:00
NeilandClaude a943631bd2 test(e2e): wait for the editor to see each pointer selection before Markdown Find takes focus (#39204)
ProseMirror reads a click's selection from the selectionchange event, which a
hidden Xvfb window delivers after Playwright's next step. The spec focused Find
right after clicking, so the editor still held an old selection when focus left,
and the Shift-click extended from the document start. Wait for that event after
the caret click and the range Shift-click; route Find sources to its specs.

Co-authored-by: Claude <noreply@anthropic.com>
2026-11-06 16:00:54 -08:00
Neil 9cb56ebc4c test(e2e): wait for the shell-ready deadline after a startup exec (#39203)
* test(e2e): wait for the shell-ready deadline after a startup exec

Since #30978 the terminal host no longer probes for a prompt when a profile
exec drops Orca's ready marker; it submits the startup command once at the
15 s shell-ready deadline. The oracle allowed only 8 s, so the headless serve
case failed unless the exec barrier happened to run long. Wait until that
deadline (measured from terminal creation) plus the recovery budget, and
route the spec from the shell-ready barrier and shell startup sources.

* ci(e2e): route the startup-exec oracle helper to its spec
2026-11-06 23:31:07 +00:00
Neil cf47e79147 test(e2e): isolate same-path editor models across two real hosts (#39208)
The spec forged an SSH owner for a local file and relied on the read
falling back to local transport. Since #31617 a tab reads only from its
captured owner, so the forged tab correctly shows 'Couldn't verify which
host owns this file'. Use a paired client that opens the same checkout
locally and on its runtime host instead, and route editor model identity
sources to the spec.
2026-11-06 23:25:30 +00:00
Neil 95a4d9b9af test(e2e): give each CSV preview its own link so the link opens a new tab (#39196)
A link whose page is already open now reuses that tab (#32907), so the paged
preview's click of the same URL never added the second tab the spec counted.
Also route CSV viewer sources to the CSV specs.
2026-11-06 23:24:35 +00:00
Neil 051bc5bc15 refactor(terminal): organize PTY connection lifecycle owners (#39188)
* refactor(terminal): organize PTY connection lifecycle owners

* refactor(terminal): consolidate imports from concrete owners

* test(e2e): assert durable pending automation acknowledgement
2026-11-06 15:23:27 -08:00
Neil c8ea52d37b test(e2e): drive the other-agents permission menu in agent-auto-permissions (#39202)
permission dropdown, and fresh profiles keep OpenCode on its own settings, so
the agents without Auto read Mixed after Full access -> Approve for me. Assert
that, track OpenCode in the stored-permission checks, and route the spec on
permission settings sources.
2026-11-06 23:08:29 +00:00
Neil f1ab15045f test(e2e): keep the descendant-kill stand-in's marker path out of argv (#39201)
Claude launches now get --plugin-dir prepended (subagent navigation, #33322),
so the stand-in read '--plugin-dir' as its marker path and the spec never saw
the detached child. Route the spec on descendant-kill and Claude launch-flag
sources.
2026-11-06 22:58:52 +00:00
NeilandClaude 4430743ab7 test(e2e): restart the WSL move fence spec from a phase startup recovery keeps (#39200)
Since #34683 a move journal promotes the WSL hosts gate to serve-only, so startup
recovery now runs and undoes a move interrupted before blobs-transferred. The
spec restarted at source-fenced and expected the fence to survive; assert the
undo there, fence from blobs-transferred, and expect the committed refusal to
name the host (#34880). Route fence and recovery sources to the spec.

Co-authored-by: Claude <noreply@anthropic.com>
2026-11-06 22:55:03 +00:00
Neil 7b39d39aa4 test(e2e): measure terminal link tooltip geometry against the pane bottom padding (#39195)
Terminal padding now insets the bottom edge too (#36789), so the terminal sits
paddingY above the pane bottom. Route pane geometry sources to the spec.
2026-11-06 14:53:43 -08:00
Neil a2ad899954 test(e2e): keep the client-hosted browser tour off the convergence spec's suggestions (#39197)
The one-time 'This page renders on your desktop' tour opens beside the address
bar of the first client-hosted page and intercepts clicks on the address-bar
suggestion. Seed it as seen for this spec via a new paired-client launch
option, and route address-bar conversion sources to the spec.
2026-11-06 14:46:25 -08:00
Neil 97530ccaff test(e2e): pair runtime-host recovery spec with two distinct servers (#39198)
Since #31080 a client keeps one saved entry per server, so pairing the same
host a second time under another name is refused. The steady 'Direct host' is
now a different server than the interrupted one. Tooltip checks name the host
so a closing tooltip from the previous card cannot match. Route the spec from
its pairing-store and runtime-status sources.
2026-11-06 14:45:00 -08:00
Neil 880d7ca1f0 test(e2e): align GitHub project board spec with click-wake and localized error toasts (#39193)
Board drops send wakeWslDistro (#36230) and network failures toast localized
copy (#34621). Route GitHub Projects sources to the board spec so PRs run it.
2026-11-06 14:43:04 -08:00
Neil a1650f78d0 test(e2e): route confirmed paired preview links through the in-app link preference (#39190)
Since #33622 a confirmed HTML preview link honors openLinksInApp (default off,
so it opens the system browser) and no longer calls
openBrowserProfileTabInActiveWorkspace, so the spec's store spy never fired.
Opt the client into in-app links and observe the opened page URL directly.
Route doc-preview sources to the spec.
2026-11-06 14:35:35 -08:00
Neil 1824515698 fix(plugins): warn, not fail, when a language pack translates protected security text (#39187)
Orca already drops protected strings when it loads a language pack and keeps
its own English text for trust, permission and destructive dialogs.
validate:plugin and orca plugin validate still rejected the whole pack, so the
community directory refused otherwise-good packs. They now report how many
protected strings are ignored as a warning; every other pack rule stays strict.
2026-11-06 14:35:22 -08:00
Neil c85d633837 test: fail unit tests that run a real agent CLI from PATH (#38961)
* test: stop unit tests from running the developer's real agent CLIs

A live relay test reached the host's real `claude --version` through the
inherited PATH. On a machine whose claude wrapper never exits, each run left
an orphaned loop behind (14 were found on one host, running for days).

- Add a unit-test setup guard that shadows agent CLI names on PATH with
  stand-ins that fail the test which ran them.
- Give the live relay test its own claude/codex stubs.
- Kill the whole process tree when the WSL guest's version probe times out.

* test: keep structured-session tests off the real codex CLI

These hosts get a scripted transport, but the at-rest `/` command read
spawns the resolved codex command directly, so on a machine with codex
installed each run started a real `codex app-server`. Point them at a
missing binary, as on CI.

* test: isolate agent discovery in session fixtures
2026-11-06 12:56:01 -08:00
Neil 10b8666c45 refactor(terminal): organize rendering and parked-view owners (#39146) 2026-11-06 12:11:27 -08:00
Brennan Benson bfa43ba82a ci(e2e): drop the dictation route to a deleted spec (#39149)
#38014 deleted tests/e2e/voice-microphone-selection.spec.ts but the feature-area
route still selects it, so every PR touching dictation or src/main/speech fails
'changed e2e specs' with 'No such file or directory'.
2026-11-06 19:48:21 +00:00
Neil 2462e9cac4 refactor(renderer): organize terminal PTY transport owners (#39134)
* refactor(renderer): organize terminal PTY transport owners

* test(terminal): mock concrete PTY shutdown owner
2026-11-06 11:36:05 -08:00
Neil 4941215ad1 refactor(terminal): organize input, clipboard, links and completion owners (#39113)
* refactor(terminal): group input, clipboard, links and completion owners

* test(terminal): mock concrete file action owners

* refactor(terminal): preserve file routing import admission

* test(acp): import host fixtures from defining owners

* ci: follow concrete journal item lifecycle owners
2026-11-06 11:12:24 -08:00
Neil 3228095e97 refactor(renderer): organize launch, workspace, browser and search owners (#38845)
* refactor(renderer): group launch, workspace, and browser owners

* fix(renderer): restore workspace name Enter focus to agent picker
2026-11-06 10:37:45 -08:00
Kelvin Amoaba f76e6eebda perf(mobile): stop live input and keyboard height re-rendering the whole session (#39032)
* perf(mobile): stop live input and keyboard height re-rendering the whole session

* refactor(mobile): drop the web soft-keyboard state hook nothing reads

* refactor(mobile): read the session keyboard lift from the shared occlusion hook

* test(mobile): give the command dock render probe a live input store
2026-11-06 18:17:31 +00:00