Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
333 commits
Select commit Hold shift + click to select a range
ad5f787
chore(process-host): drop the WSL hook relay launcher from the direct…
nwparker Oct 26, 2026
268f3d3
fix(wsl-host): a clean watch or holder exit is settled like a failed …
nwparker Oct 26, 2026
c2c545f
fix(wsl-host): no-boot connects stay quiet, and liveness recovery nev…
nwparker Oct 26, 2026
b58513a
test: import mocked-module graphs one at a time after vi.mock (#34103)
nwparker Oct 26, 2026
86f2f24
feat(mobile): open PDFs from the file browser in Quick Look or the sy…
AmoabaKelvin Oct 26, 2026
1a72319
chore(native-chat): delete the orphaned duplicate structured chat pan…
Jinwoo-H Oct 26, 2026
4a8cb6f
fix(terminal): keep legacy bash prompt dispatch out of OSC 133 comman…
mkjung Oct 26, 2026
86a75e9
perf(bench): measure startup memory and cold SSH latency (#33912)
OrcaWin Oct 26, 2026
8a001a9
fix(runtime): a restored host pane resumes its agent from the hook st…
nwparker Oct 26, 2026
8291297
fix(mobile): recover terminal input lease on attach and preserve pick…
zhangxaochen Oct 26, 2026
037cf27
fix(codex): show live usage on the active account row, including Syst…
moonrailgun Oct 26, 2026
d4a5609
refactor(connector): provider-neutral connector core with Slack as it…
Jinwoo-H Oct 26, 2026
ffb7561
Stop hidden chats re-rendering on every tab change (#34020)
brennanb2025 Oct 26, 2026
d7a8bb9
fix(mobile): show the diff when tapping a changed file from a session…
AmoabaKelvin Oct 26, 2026
b8c596e
test: remove 68 low-value cases and 18 suites (#34112)
OrcaWin Oct 26, 2026
a97c7ab
fix(terminal): a WSL bridge pane whose distro went away keeps its tab…
nwparker Oct 26, 2026
3f256ad
fix(browser): keep annotate session alive across iframe loads (#24032)
Brant-lzh Oct 26, 2026
73ede0f
fix(terminal): keep a brand-new remote pane's typing for the terminal…
nwparker Oct 26, 2026
d4544c8
test(relay): wait for the relay's own close before confirming a resum…
Jinwoo-H Oct 26, 2026
067c614
fix(orcad): use the app's bundled agent-browser driver for orca serve…
nwparker Oct 26, 2026
01fea97
refactor(mobile): group native chat options and queued editing (#34074)
nwparker Oct 26, 2026
ccfe30a
feat(connector): Slack-started agents can reply in their thread (orca…
Jinwoo-H Oct 26, 2026
1d1c6da
fix(terminal): a parked local tab whose process exits closes as a pty…
nwparker Oct 26, 2026
aec426c
feat(connector): Discord adapter on the shared connector core (#34100)
Jinwoo-H Oct 26, 2026
f06f737
Unify Source Control action permissions and card layout (#30449)
brennanb2025 Oct 26, 2026
0fef4a8
feat(wsl-host): start a WSL host's distro when one of its automations…
nwparker Oct 26, 2026
2218581
test(connector): freeze the shipped connector schema behind an upgrad…
Jinwoo-H Oct 26, 2026
ebeb677
test: remove 30 low-value cases and seven suites (#34120)
OrcaWin Oct 26, 2026
e630f27
test(terminal): a pinned parked tab's process exit asks first, then c…
nwparker Oct 26, 2026
ccedfe3
fix(ssh): move enabled SSH automations to the host's Orca server (#34…
nwparker Oct 26, 2026
d5ac6eb
fix(connector): one turn id from the host's stamp everywhere (#33909)
Jinwoo-H Oct 26, 2026
ca8eb29
feat(orchestration): add a Settings switch to turn worker heartbeats …
brennanb2025 Oct 26, 2026
95ffa4f
fix(wsl-host): a cold wake that loses orcad recovers by itself instea…
nwparker Oct 26, 2026
923bea9
fix(files): open host files outside workspaces for any client with te…
nwparker Oct 26, 2026
d1f6f6a
fix(mobile): resume history sessions with desktop's resume and host r…
AmoabaKelvin Oct 26, 2026
0b30b28
fix(terminal): keep ConPTY's viewport top through a width change (#34…
nwparker Oct 26, 2026
c1198d2
refactor(connector): the desktop takes Discord and Linear conversatio…
Jinwoo-H Oct 26, 2026
823ca68
fix(settings): show cookie import as available before skill setup (#3…
brennanb2025 Oct 26, 2026
1b64adb
Linux cookie import says when secret-tool is missing instead of blami…
brennanb2025 Oct 26, 2026
7782fd5
test: extract WSL host connector fixture to restore lint (#34132)
OrcaWin Oct 26, 2026
316b188
Size tabs to titles and preserve floating panel drag space (#34025)
AmethystLiang Oct 26, 2026
a141886
test: remove 81 low-value cases and 12 suites (#34130)
OrcaWin Oct 27, 2026
43097c5
fix(agents): launch Claude Agent Teams as plain orca on Orca servers …
nwparker Oct 27, 2026
a8c871a
fix(ssh): Stop and remove keeps an SSH host's managed server removed …
nwparker Oct 27, 2026
a37c159
fix(web): a TUI copy the browser refuses offers a Copy button (#34135)
nwparker Oct 27, 2026
bec8276
fix(editor): let desktop edit host files outside workspaces (#34119)
nwparker Oct 27, 2026
8bd6e36
fix(runtime-environments): keep session partitions of saved servers t…
nwparker Oct 27, 2026
6fe0476
fix(session-tabs): keep the server's per-device tab pick on the tab t…
nwparker Oct 27, 2026
19b930e
fix(source-control): stream large Antigravity generation prompts over…
nwparker Oct 27, 2026
fdd9151
fix(rate-limits): show agy's own error when Antigravity usage can't b…
Jinwoo-H Oct 27, 2026
653908a
fix(antigravity): save an agy account whose credential has no id_toke…
thefrikidude Oct 27, 2026
875d89a
Refine lint performance and safe process execution (#34147)
OrcaWin Oct 27, 2026
52f4db7
fix(agent-status): keep an Antigravity run working while its helper a…
Jinwoo-H Oct 27, 2026
1d80721
fix(mobile): match history sessions and scope paths with desktop's ru…
AmoabaKelvin Oct 27, 2026
acf1a8c
test: load real modules before timed waits, and ratchet in-test vi.im…
nwparker Oct 27, 2026
7713098
test: remove 47 low-value cases and 13 suites (#34136)
OrcaWin Oct 27, 2026
05bbbb9
Compact worktree project and host pickers with stacked details (#34098)
nwparker Oct 27, 2026
7a9abe4
refactor: group remote runtime client modules (#34133)
nwparker Oct 27, 2026
5b4c779
Revert benchmark-only startup loading study (#33912) (#34162)
OrcaWin Oct 27, 2026
4e0f391
test: remove 294 low-value cases and 12 suites (#34156)
OrcaWin Oct 27, 2026
8d32eb0
fix(connector): the Discord gateway sends queued posts, so its replie…
Jinwoo-H Oct 27, 2026
72f8c87
refactor(mobile): share agent child-row text and favicon domains with…
AmoabaKelvin Oct 27, 2026
57aa892
fix(mobile): show chat images stored on the host as thumbnails (#33731)
AmoabaKelvin Oct 27, 2026
53c426f
feat(connector): each Slack app verified with its own signing secret …
Jinwoo-H Oct 27, 2026
0cee6cb
test: remove 368 low-value cases and 4 suites (#34157)
OrcaWin Oct 27, 2026
0f47bb1
refactor(mobile): organize native chat prompts and permissions (#34189)
nwparker Oct 27, 2026
891f7e6
fix(source-control): fit local argv prompts to Windows and Linux limi…
bbingz Oct 27, 2026
8c07114
build: serialize bundled guides one markdown line at a time (#33712)
brennanb2025 Oct 27, 2026
a43b076
Restored floating editors share file edits with ordinary tabs (#33617)
brennanb2025 Oct 27, 2026
28b4c55
fix(native-chat): keep successful launches usable when tab lists lag …
brennanb2025 Oct 27, 2026
6e3c10c
Honor browser preferences and modifiers for HTML preview links (#33622)
brennanb2025 Oct 27, 2026
5ad2d09
fix(terminal): a slept pane wakes in its own folder, with its prompt …
nwparker Oct 27, 2026
028f609
Keep chat thinking before its answer across history loads (#33628)
brennanb2025 Oct 27, 2026
7f846fd
Codex restarts keep the configured command before a session is record…
brennanb2025 Oct 27, 2026
584b112
fix(agent-hooks): the WSL hook relay stays down while its distro is s…
nwparker Oct 27, 2026
cf38125
perf(wsl): return orcad's startup compile memory with a malloc mmap t…
nwparker Oct 27, 2026
29a5f89
Keep same-machine folders with matching Git remotes in separate proje…
brennanb2025 Oct 27, 2026
9c0d30d
fix(native-chat): keep the model an agent actually runs, not its star…
AmoabaKelvin Oct 27, 2026
89e272a
fix(mobile): use desktop's merge gating and PR link rules in the PR p…
AmoabaKelvin Oct 27, 2026
07b5c08
AI fix actions use the + menu's agent picker and remember chat or ter…
brennanb2025 Oct 27, 2026
01db1c6
feat(orchestration): let users choose the worker heartbeat interval (…
brennanb2025 Oct 27, 2026
e792353
fix: restore main typecheck after concurrent merges (#34202)
brennanb2025 Oct 27, 2026
f4103b8
test(accounts): cover the workspace-folder fallback for account-resta…
nwparker Oct 27, 2026
ea1cb2f
fix(terminal): a WSL bridge pane that lost its distro keeps its sessi…
nwparker Oct 27, 2026
284411d
fix(wsl-host): uninstall and startup release WSL holders; a partial R…
nwparker Oct 27, 2026
7574335
fix(mobile): prepare Create PR and the commit button with desktop's r…
AmoabaKelvin Oct 27, 2026
88ffc5c
fix(mobile): use desktop's check rules and fix-checks prompt in the P…
AmoabaKelvin Oct 27, 2026
68cb284
fix(terminal): copy from pi on a remote host reaches the viewer's cli…
nwparker Oct 27, 2026
76349e8
fix(mobile): build chat approval and question cards with desktop's ru…
AmoabaKelvin Oct 27, 2026
71b55ab
fix(mobile): use desktop's setup config and trust rules when creating…
AmoabaKelvin Oct 27, 2026
3347d47
fix(mobile): use desktop's PR lanes and status-dot rollup in the work…
AmoabaKelvin Oct 27, 2026
c5f48b5
fix(terminal): scope account restart metadata to its execution host (…
nwparker Oct 27, 2026
6357bd7
refactor(shared): organize native chat task-list evidence (#34226)
nwparker Oct 27, 2026
8d62374
chore(terminal): log the WSL bridge exit verdict and how long the pro…
nwparker Oct 27, 2026
e882d8e
fix(window): pump hidden-window frames from the renderer on Windows b…
nwparker Oct 27, 2026
6c2423d
fix(mobile): list Source Control changes with desktop's sections, ord…
AmoabaKelvin Oct 27, 2026
fe82078
fix(wsl): background file reads and watches never start a stopped WSL…
nwparker Oct 27, 2026
425425e
test: remove 262 low-value cases and 31 suites (#34161)
OrcaWin Oct 27, 2026
7e5f9a4
fix(mobile): use desktop's sort, colour, count, agent-row and delete …
AmoabaKelvin Oct 27, 2026
a9f90e7
fix(mobile): use desktop's terminal paste, key and query-reply rules …
AmoabaKelvin Oct 27, 2026
9f789a4
fix(mobile): use desktop's terminal width, contrast and selection rul…
AmoabaKelvin Oct 27, 2026
4c5af5d
fix(terminal): one tab agent icon rule for desktop and mobile (#33963)
AmoabaKelvin Oct 27, 2026
75bcd32
fix(mobile): answer multi-question asks like desktop and clear Claude…
AmoabaKelvin Oct 27, 2026
e2b8332
fix(terminal): closing a kept host-loss tab after a relaunch ends its…
nwparker Oct 27, 2026
887b781
Move palette matching utilities into shared modules (#34252)
AmethystLiang Oct 27, 2026
3c8e40a
fix(browser): make orca set media --reduced-motion apply and reject u…
AmoabaKelvin Oct 27, 2026
192f578
fix(runtime): keep terminal.send under the file-length limit with one…
brennanb2025 Oct 27, 2026
ad4b9af
Stop opening a Google sign-in page every hour when agy is signed out …
Jinwoo-H Oct 27, 2026
3b1ecd6
Antigravity: show usage for a login Orca can't identify instead of "a…
Jinwoo-H Oct 27, 2026
c23ab55
Antigravity: show a login with no quota as unavailable, not "Refresh …
Jinwoo-H Oct 27, 2026
51c393b
fix(wsl): close a WSL host's loopback listener once it idles out or i…
nwparker Oct 27, 2026
19c53e5
fix(browser): let Grab page element pick and track elements inside op…
AmoabaKelvin Oct 27, 2026
e79388e
fix(agents): keep OMP session titles when a turn finishes (#34266)
AmoabaKelvin Oct 27, 2026
619ee95
fix(browser): paste the local clipboard into streamed browser pages (…
AmoabaKelvin Oct 27, 2026
bff2843
refactor(shared): organize native chat ask input owners (#34251)
nwparker Oct 27, 2026
4514634
fix(scripts): resolve pnpm when npx or npm run exports npm's own CLI …
nwparker Oct 27, 2026
9dd4471
fix(mobile): keep a renamed tab's name on mobile after the host resta…
clayphi Oct 27, 2026
2e181b1
Reuse chat history snapshots across readers (#34215)
brennanb2025 Oct 27, 2026
577af08
fix(browser): scroll off-screen elements into view before agent click…
AmoabaKelvin Oct 27, 2026
a8f7afe
test: remove 128 low-value cases and 22 suites (#34206)
OrcaWin Oct 27, 2026
362104c
fix(wsl): background Git and the roots catalog never start a stopped …
nwparker Oct 27, 2026
a7c9d19
fix(file-explorer): offer permanent delete when moving to Trash fails…
noripto Oct 27, 2026
c915be1
fix(test): carry Error objects across the node-runtime vitest pool IP…
maxmilian Oct 27, 2026
6d43596
fix(wsl): keep a user's GLIBC_TUNABLES and delegate the launch-env wr…
nwparker Oct 27, 2026
9d2e441
fix(mobile): compare branches and show diffs with desktop's base-ref …
AmoabaKelvin Oct 27, 2026
f719d0f
fix(mobile): open terminal urls and file paths with desktop's link de…
AmoabaKelvin Oct 27, 2026
d5070de
fix(app-icon): restore the sharp bundle icon on the Dock for packaged…
nwparker Oct 27, 2026
1fdf896
fix(i18n): use the product name "Finder" in Japanese reveal/open labe…
hiro0218 Oct 27, 2026
6ae3fbc
fix(browser): open target=_blank file links from a local page in an O…
nwparker Oct 27, 2026
7815c07
fix(session-history): close other row action menus when opening one (…
umi008 Oct 27, 2026
8d72873
fix(i18n): resolve plugin-pack plurals with the pack's declared local…
smwbev Oct 27, 2026
18da0e9
fix(mobile): offer Retry on a stuck terminal while other tab recovery…
AmoabaKelvin Oct 27, 2026
bca8912
fix(updater): apply the app proxy to electron-updater's session (#34276)
nwparker Oct 27, 2026
483573f
fix(browser): focus newly opened image tabs (#34127)
hwantage Oct 27, 2026
fa4d2e9
fix(wsl): reap the bash stdio relay's cats before it exits (#34260)
nwparker Oct 27, 2026
84494ce
test: remove 338 low-value cases and 28 suites (#34234)
OrcaWin Oct 27, 2026
845e466
fix(orchestration): stop calling unobserved worker input "submitted" …
innocarpe Oct 27, 2026
0fcc74e
test: remove 56 low-value cases and 5 suites (#34268)
OrcaWin Oct 27, 2026
ec8f4dd
refactor: group repository source-control AI settings (#34278)
nwparker Oct 27, 2026
43eb0b9
fix(opencode): give OpenCode 2 a private server only when another dat…
nwparker Oct 27, 2026
cd757f4
fix(browser): pass orca wait's timeout through to agent-browser (#34283)
AmoabaKelvin Oct 27, 2026
b29ae01
fix(automations): show why a hook-review-blocked automation fails, ke…
nwparker Oct 27, 2026
47567c6
fix(terminal): refuse non-finite mouse coordinates so scroll never se…
Meapri Oct 27, 2026
136721f
test: remove53 low-value cases and8 suites (#34264)
OrcaWin Oct 27, 2026
8655ce6
fix(browser): deliver agent clicks and keys to pages that loaded whil…
AmoabaKelvin Oct 27, 2026
50f898f
fix(agents): recognise OMP and Pi titles after Orca rebrands them (#3…
AmoabaKelvin Oct 27, 2026
217f935
fix(updater): skip IPC when the main window is destroyed (#11567)
innocarpe Oct 27, 2026
b01dc62
fix(browser): copy and cut from streamed browser pages to the local c…
AmoabaKelvin Oct 27, 2026
1c4d4a0
feat: drag to reorder queued messages on desktop and phone (#34026)
brennanb2025 Oct 27, 2026
a0e7fa0
Keep Claude approval choices across model changes without freezing de…
brennanb2025 Oct 27, 2026
3087283
fix(browser): type text that starts with a dash literally instead of …
AmoabaKelvin Oct 27, 2026
1dec1eb
refactor(shared): group native chat visual contracts (#34296)
nwparker Oct 27, 2026
cbbaa2d
fix(agents): stop reading "action required" in a Pi/OMP session name …
AmoabaKelvin Oct 27, 2026
2c6dd27
refactor: group shared native chat shell environment policy (#34301)
nwparker Oct 27, 2026
4c66f91
perf(native-chat): stop unrelated host status flips from rerendering …
nwparker Oct 27, 2026
e59e4eb
fix(wsl): close a WSL host channel with stdin EOF before killing wsl.…
nwparker Oct 27, 2026
16ea126
fix(repos): remove a paired-server project while its server is unreac…
nwparker Oct 27, 2026
bbc35c1
test: remove 30 low-value cases and 11 suites (#34288)
OrcaWin Oct 27, 2026
3414917
docs(codex): explain wrapper scripts that force CODEX_HOME (#34319)
nwparker Oct 27, 2026
80c9278
fix(wsl): say why a silent WSL guest command failed (#34304)
nwparker Oct 27, 2026
c0f9df5
fix(ssh): keep the IME confirmation Enter from submitting the port-fo…
nwparker Oct 27, 2026
d1f3532
docs: restore AGENTS.md reference docs under docs/agents-md-refs (#34…
OrcaWin Oct 27, 2026
3cf0908
refactor: group shared native chat scope cache (#34314)
nwparker Oct 27, 2026
4378e2f
perf(native-chat): load the chat host and agent adapters on first use…
OrcaWin Oct 27, 2026
755bbfa
test: remove 53 low-value cases and eight suites (#34302)
OrcaWin Oct 27, 2026
0cff8e0
ci(windows): rehearse the orcad template reseal over SignPath-signed …
nwparker Oct 27, 2026
0ed5f4b
fix(orcad): materialize the app's agent-browser driver into the local…
nwparker Oct 27, 2026
ab9532e
feat(wsl): let an idle WSL distro stop once its server idle-exits (#3…
nwparker Oct 27, 2026
b1d1200
perf(mobile): stop chat redraws per keystroke and page-wide row scans…
AmoabaKelvin Oct 27, 2026
8b9f878
ci: split busy hours in the runner demand report instead of failing (…
OrcaWin Oct 27, 2026
581e233
ci: run the macOS computer-use smoke only for macOS-relevant changes …
OrcaWin Oct 27, 2026
72a4fd1
test(wsl): make the bash relay reap test deterministic (#34329)
nwparker Oct 27, 2026
17caf3d
test: remove 20 low-value cases and a presentation suite (#34333)
OrcaWin Oct 27, 2026
e3affc0
fix(github): enqueue a merge-queue PR when auto-merge is disabled (#2…
innocarpe Oct 27, 2026
c8823b4
refactor: group shared native chat composer input (#34328)
nwparker Oct 27, 2026
6708d27
Cookie import adds cookies without signing you out of sites (#34113)
brennanb2025 Oct 27, 2026
becf899
fix(test): stop Vitest failing green unit shards with EISDIR on direc…
OrcaWin Oct 27, 2026
8c72569
test: disable commit/tag signing in release fixture repos (#11793)
Gldywn Oct 27, 2026
46cc9ea
ci: retry transient 5xx responses in the runner demand report (#34337)
OrcaWin Oct 27, 2026
04f5104
test(native-chat): close queued-message journal DB before fixture cle…
toodeceptive Oct 27, 2026
3b7ee71
refactor: group repository settings composition (#34347)
nwparker Oct 27, 2026
6409041
ci(adhoc): start the 12-vCPU Mac packaging jobs after template qualif…
OrcaWin Oct 27, 2026
b13bc4f
fix(scripts): scope the flaky-test ratchet to check:changed's resolve…
eatmoreduck Oct 27, 2026
f699660
test: remove 32 low-value cases and five suites (#34346)
OrcaWin Oct 27, 2026
b066fc4
fix(i18n): translate native notification copy (#34348)
nwparker Oct 27, 2026
164ced2
ci: run the node-server Windows x64 lane on the free hosted windows-2…
OrcaWin Oct 27, 2026
433d044
fix(i18n): localize every contextual tour step (#12713)
5Hyeons Oct 27, 2026
2dca6a8
test(wsl): hand the reap test's fake cat its real stdin (#34352)
nwparker Oct 27, 2026
afdb59a
fix(startup): discover worktrees without waiting for slow hosts (#34331)
nwparker Oct 27, 2026
df95be4
test: remove 17 low-value cases and six suites (#34359)
OrcaWin Oct 27, 2026
325ab0d
fix(projects): register a folder once when two adds race on a server …
nwparker Oct 27, 2026
e49cab0
fix(workspace-board): paired hosts keep their own custom status colum…
nwparker Oct 27, 2026
48de731
perf(test): read locale catalogs in the worker instead of inlining 11…
OrcaWin Oct 27, 2026
184748c
test: remove 66 low-value cases and four suites (#34370)
OrcaWin Oct 27, 2026
6a7d9aa
Revert "perf(test): read locale catalogs in the worker instead of inl…
OrcaWin Oct 27, 2026
71f0c74
fix(wsl): start no running-distro read inside the stop settle window …
nwparker Oct 27, 2026
acdb9b4
test: remove 35 low-value permission and search cases (#34375)
OrcaWin Oct 27, 2026
1b86ad9
test: remove 44 low-value settings cases and four suites (#34379)
OrcaWin Oct 27, 2026
2327180
feat(quit): add Quit and Stop All Sessions to the app menu and tray (…
seijikohara Oct 27, 2026
c2b4819
fix(wsl): re-read a settled exit only from a probe started after the …
nwparker Oct 27, 2026
9f5c32b
fix(kiro): manage status hooks in agent configs kiro-cli agent upgrad…
nwparker Oct 27, 2026
295ed99
refactor: group shared native-chat session options (#34356)
nwparker Oct 27, 2026
ffed50d
test: remove 48 low-value presentation cases and four suites (#34386)
OrcaWin Oct 27, 2026
bd88b2a
fix(orchestration): resolve worker-start new-child/new-top-level targ…
nwparker Oct 27, 2026
20411c1
docs: fix typos in the PR template (#29692)
ttrweb Oct 27, 2026
0e871e8
test: remove18 low-value settings cases and an auth-warning suite (#3…
OrcaWin Oct 27, 2026
d69d16a
fix(agent-dashboard): restore focus to the opener when the drawer clo…
nwparker Oct 27, 2026
532dc7f
refactor(mobile): group native chat tool transcript modules (#34399)
nwparker Oct 27, 2026
176852a
fix(terminal): highlight the active IME conversion range (#27903)
akiya3 Oct 27, 2026
3816457
fix(mac): declare Contacts, Calendars and Reminders permissions for t…
nwparker Oct 27, 2026
70d8159
fix(i18n): localize sidebar copy and correct Japanese mistranslations…
kojikojikojikoji Oct 27, 2026
0f76063
test: remove 70 low-value cases and four suites (#34400)
OrcaWin Oct 27, 2026
9b0170c
fix(i18n): localize hosted review creation errors (#33368)
seijikohara Oct 27, 2026
0363bb3
refactor(mobile): group native chat visual and media modules (#34402)
nwparker Oct 27, 2026
b35fb1c
fix(orchestration): route dispatched workers to the skill and stop he…
nwparker Oct 27, 2026
9e8c601
docs(hibernation): describe per-pane reclaim and per-tab foreground p…
bercedev Oct 27, 2026
44f4b1d
docs(contributing): list the native toolchain and system libraries a …
younghwan91 Oct 27, 2026
e11b8ac
test: remove 49 low-value cases and four suites (#34407)
OrcaWin Oct 27, 2026
5b90733
fix(terminal): detect Codex footer when shortcut help sits under the …
v01dstar Oct 27, 2026
ad4b814
fix(orchestration): drop the subshell parens from typed setup command…
mmarabel Oct 27, 2026
0ddc7fc
test: remove 21 low-value tests and a catalog suite (#34411)
OrcaWin Oct 27, 2026
5666ad4
fix(editor): only let a line-start <details> interrupt a paragraph (#…
fbartho Oct 27, 2026
d08aa8f
fix(native-chat): show Codex compaction markers in transcripts (#14765)
erishforG Oct 27, 2026
9631d46
fix(jcode): append Orca hooks to user-defined hook arrays in config.t…
TheophileDiot Oct 27, 2026
342b535
fix(renderer): keep render-phase guards in state so discarded renders…
nwparker Oct 27, 2026
4583236
refactor(renderer): group Jira task creation and summary modules (#34…
nwparker Oct 27, 2026
6dc9ff4
fix(acp): report exit status and keep stderr as a log detail (#33190)
anmol0b Oct 27, 2026
d2cc9e7
docs(cli): document that terminal send --text writes control bytes ve…
bbingz Oct 27, 2026
62d9eb6
fix(browser): keep annotation badges when a page updates its URL frag…
AmoabaKelvin Oct 27, 2026
27a8963
fix(windows): probe fnm's real default alias dir for Node fallback (#…
iFwu Oct 27, 2026
c903d30
fix(mobile): build the Source Control action sheet from desktop's men…
AmoabaKelvin Oct 27, 2026
89dea21
test: remove 43 low-value tests and five replay suites (#34417)
OrcaWin Oct 27, 2026
b0ad924
fix(browser): keep the Annotate pick armed when a page rewrites its U…
AmoabaKelvin Oct 27, 2026
14c04fe
refactor(mobile): group native chat message presentation (#34424)
nwparker Oct 27, 2026
f61e7f8
fix(browser): stop malformed localhost pages from freezing the new ta…
AmoabaKelvin Oct 27, 2026
7c921b0
test: remove 81 low-value tests and five replay suites (#34426)
OrcaWin Oct 27, 2026
51d0dd1
refactor(mobile): group native chat row and turn presentation (#34430)
nwparker Oct 27, 2026
cb511d7
fix(native-chat): list an idle Claude chat's / commands from the acco…
AmoabaKelvin Oct 27, 2026
dc57b3d
test: remove 61 low-value runtime tests and five suites (#34431)
OrcaWin Oct 27, 2026
f776923
fix(mobile): use desktop's rules for chat tool rows, pending echoes a…
AmoabaKelvin Oct 27, 2026
c98a2d6
test: remove 19 low-value runtime file and Jira tests (#34436)
OrcaWin Oct 27, 2026
16a29bc
refactor(pty): group IPC test harness and provider fixtures (#34440)
nwparker Oct 27, 2026
beb62fe
test: remove 25 low-value tests and redundant parity suite (#34443)
OrcaWin Oct 27, 2026
e310a63
fix(mobile): use desktop's rules for queued messages, turn status, St…
AmoabaKelvin Oct 27, 2026
dc73505
test: remove 20 low-value CLI and runtime tests (#34445)
OrcaWin Oct 27, 2026
7140e7f
test: remove 22 low-value CLI tests (#34448)
OrcaWin Oct 27, 2026
2a08315
refactor: group Claude structured session lifecycle owners (#34449)
nwparker Oct 27, 2026
93a0650
test: remove 47 low-value CLI and runtime tests (#34451)
OrcaWin Oct 27, 2026
0fba66c
test(e2e): repair specs that missed intentional product changes
SimonSQLML Oct 27, 2026
8c5d5dc
test(e2e): stub host Linear status in linear-url-workspace-entry spec
nwparker Oct 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
24 changes: 24 additions & 0 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,27 @@ Install Node 24, pnpm, and the Bun version in [`config/.bun-version`](../config/
native PTYs, socket liveness, and V8 memory behavior. `pnpm test:node` runs the same suites
entirely on Node. Builds and dependency installation still use Node and pnpm.

Use the pnpm version in `packageManager` in [`package.json`](../package.json): `corepack enable`
needs Corepack 0.34.5 or newer to start the pinned pnpm (`npm install -g corepack@latest`). On
Windows it writes shims next to `node.exe` and fails with `EPERM` outside an elevated shell when
Node is in `C:\Program Files\nodejs`; run `npm install -g pnpm@<that version>` instead.

`pnpm install` compiles native modules such as `node-pty` with `node-gyp` and loads them in
Electron, so a fresh machine also needs:

- **macOS**: Xcode Command Line Tools (`xcode-select --install`).
- **Windows**: Python 3 and Visual Studio Build Tools with the "Desktop development with C++"
workload.
- **Linux**: a C++ toolchain, Python 3, and the libraries Electron loads even on a headless
machine, plus `xvfb`, which the `*.electron.test.ts` files in `pnpm test` use when `DISPLAY` is
unset. On Ubuntu 24.04+ and Debian 13+:

```bash
sudo apt-get update && sudo apt-get install -y build-essential python3 xvfb libgtk-3-0 libnss3 libgbm1 libasound2t64
```

Older releases name the last package `libasound2`.

```bash
pnpm install
pnpm dev
Expand Down Expand Up @@ -175,6 +196,9 @@ pnpm test
pnpm build
```

`pnpm lint` runs independent checks in a bounded pool. Use
`pnpm lint --maxWorkers=2 --timings` to limit concurrent checks and print their durations.

For repeated local typechecks, use `pnpm tc` (or `pnpm tc:node`, `pnpm tc:web`,
and `pnpm tc:cli`). On Apple Silicon macOS and x64/arm64 Linux, these use the pinned
`tsrs` compiler with incremental caches. Keep `.cache/typecheck/` between checks;
Expand Down
6 changes: 3 additions & 3 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,15 @@

## Linked Issue

_If you do not have one and are an outside contributors, your PR **wiil** be ignored. Refs is not sufficient. Link an actual issue_
_If you do not have one and are an outside contributor, your PR **will** be ignored. Refs is not sufficient. Link an actual issue_
<!-- Link the issue this PR addresses, there should ALWAYS be one (for outside contributors) -->
<!-- SPECIAL CASE: If you are a maintainer (member of stablyai org) AVOID opening needless issues. Only attach pre-existing ones -->

Fixes #

## Visual Proof

<!-- REQUIRED for UI / behavior changes. Please attach a BEFORE and AFTER that can easily tabbed/switched. Use videos for when appropriate over screenshots -->
<!-- REQUIRED for UI / behavior changes. Please attach a BEFORE and AFTER that can easily be tabbed/switched. Use videos for when appropriate over screenshots -->
<!-- If there is truly no visual or interaction change, write exactly: `N/A` and briefly say why. -->
<!-- For attachments NEVER add directly to the PR files (do not commit to files), use `gh image` extension or drag + drop (works for any attachment) -->

Expand All @@ -44,7 +44,7 @@ Fixes #

## Notes

Ensure no issues in: Security, Cross-platoform support (Linux, Windows, Mac), Remote SSH, Mobile, general backwards compatibility, performance
Ensure no issues in: Security, Cross-platform support (Linux, Windows, Mac), Remote SSH, Mobile, general backwards compatibility, performance

## Checklist

Expand Down
36 changes: 10 additions & 26 deletions .github/workflows/adhoc-mac-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -250,11 +250,19 @@ jobs:
echo "tag=$TAG" >>"$GITHUB_OUTPUT"

build-adhoc-mac-arch:
needs: [resolve-ref, orcad-template-support, release-javascript, prepare-adhoc-mac-release]
# Template qualification gates packaging after desktop preparation.
needs:
[
resolve-ref,
orcad-template-support,
orcad-template,
release-javascript,
prepare-adhoc-mac-release
]
# Start after template qualification: overlapping ~2.5 min of preparation left both 12-vCPU Macs idle ~7 min.
if: >-
!cancelled() && github.repository == 'stablyai/orca' &&
needs.orcad-template-support.result == 'success' &&
(needs.orcad-template.result == 'success' || needs.orcad-template-support.outputs.ships != 'true') &&
needs.release-javascript.result == 'success' &&
needs.prepare-adhoc-mac-release.result == 'success'
# Signing environment must restrict deployments to main after MAC_CERTS/password, APPLE_ID/app password/team and hourly App secrets move there; referencing it alone enforces nothing.
Expand Down Expand Up @@ -374,30 +382,6 @@ jobs:
# Leave build identity unset: telemetry accepts only official stable/rc, so branch artifacts stay silent.
ORCA_DIAGNOSTICS_TOKEN_URL: https://www.onorca.dev/diagnostics/token

- name: Wait for the qualified orcad template
if: needs.orcad-template-support.outputs.ships == 'true'
uses: actions/github-script@v8
with:
script: |
const deadline = Date.now() + 30 * 60_000
while (Date.now() < deadline) {
const jobs = await github.paginate(github.rest.actions.listJobsForWorkflowRun, {
...context.repo, run_id: context.runId, filter: 'latest', per_page: 100
})
const lanes = jobs.filter(job => job.name.startsWith('orcad-template / '))
const failed = lanes.find(job => job.status === 'completed' &&
['failure', 'cancelled', 'timed_out', 'action_required', 'startup_failure'].includes(job.conclusion))
if (failed) throw new Error(`Template qualification failed: ${failed.name}`)
const artifacts = await github.paginate(github.rest.actions.listWorkflowRunArtifacts, {
...context.repo, run_id: context.runId, per_page: 100
})
const ready = artifacts.some(artifact => artifact.name === 'orcad-template' && !artifact.expired)
const completed = lanes.length > 0 && lanes.every(job => job.status === 'completed')
if (ready && (process.env.WAIT_FOR_TEMPLATE_COMPLETION !== '1' || completed)) return
await new Promise(resolve => setTimeout(resolve, 15_000))
}
throw new Error('Timed out waiting for the qualified orcad template')

# After the app build so nothing that cleans out/ can drop it; electron-builder ships it.
- name: Download the orcad deployment template
if: needs.orcad-template-support.outputs.ships == 'true'
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/ci-closed-pr-caches.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ jobs:
['ssh-hostile-hosts', 'ssh-hostile-hosts.yml'],
['mobile', 'mobile.yml'],
['computer-e2e', 'computer-e2e.yml'],
['computer-macos-native', 'computer-macos-native.yml'],
['wsl-orcad-e2e', 'wsl-orcad-e2e.yml'],
['performance-contracts', 'performance-contracts.yml'],
['pr-test-loc', 'pr-test-loc.yml'],
Expand Down
32 changes: 1 addition & 31 deletions .github/workflows/computer-e2e.yml
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ jobs:
src/main/runtime/rpc/methods/computer.test.ts
src/main/runtime/rpc/methods/computer-actions.test.ts
src/cli/runtime/envelope-schema.test.ts
src/shared/remote-runtime-client.test.ts
src/shared/remote-runtime/remote-runtime-client.test.ts
- run: pnpm verify:computer-native
- run: pnpm build:cli
- run: pnpm run build:electron-vite:parallel
Expand All @@ -134,36 +134,6 @@ jobs:
- name: Windows daemon workspace-close repro
if: runner.os == 'Windows'
run: node config/scripts/windows-daemon-workspace-close-repro.mjs
# Hosted macOS runners cannot receive persistent Accessibility/Screen Recording
# grants. Keep the real native build/owner-loss checks on every trigger instead.
mac-native-owner-smoke:
if: github.event_name != 'pull_request' || github.event.pull_request.draft != true
runs-on: blacksmith-6vcpu-macos-15
permissions:
contents: read
steps:
- uses: actions/checkout@v6
with:
persist-credentials: false
- uses: ./.github/actions/install-node-dependencies
with:
native-runtime: electron
- name: Owner-loss benchmark process cleanup
run: >-
pnpm vitest run
config/scripts/macos-computer-helper-owner-loss-group-recovery.test.mjs
config/scripts/macos-computer-helper-owner-loss-processes.test.mjs
# Why: the parallel launcher's cancellation tests are darwin-only and no
# other PR job runs on macOS.
- name: Parallel native build launcher cancellation
run: >-
pnpm vitest run --config config/vitest.config.ts
config/scripts/build-native-for-platform.test.mjs
- name: Authenticated helper owner-loss smoke
run: pnpm bench:macos-computer-helper-owner-loss --expect reaped --trials 1
- name: Swift tests and signed universal helper verification
run: pnpm verify:computer-native

linux:
if: github.event_name != 'pull_request'
runs-on: blacksmith-4vcpu-ubuntu-2204
Expand Down
64 changes: 64 additions & 0 deletions .github/workflows/computer-macos-native.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
name: Computer-use macOS native

# Split from computer-e2e.yml so CLI/daemon-only PRs skip the paid macOS runner: this job builds the
# Swift helper and forks out/main/computer-sidecar.js, whose imports never reach src/cli or src/main/daemon.
on:
pull_request:
types: [opened, synchronize, reopened, ready_for_review, converted_to_draft]
paths:
- '.github/workflows/computer-macos-native.yml'
- 'electron.vite.config.ts'
- 'config/build-plugins/**'
- 'config/scripts/build-computer-macos.mjs'
- 'config/scripts/build-native-for-platform.mjs'
- 'config/scripts/build-native-for-platform.test.mjs'
- 'config/scripts/pnpm-cli-invocation.mjs'
- 'config/scripts/macos-computer-helper-owner-loss-*'
- 'config/scripts/verify-computer-native.mjs'
- 'native/computer-use-macos/**'
- 'native/computer-use-linux/**'
- 'native/computer-use-windows/**'
- 'skills/computer-use/SKILL.md'
- 'src/main/computer/**'
- 'src/shared/computer-use-*.ts'
workflow_dispatch:
schedule:
- cron: '0 6 * * *'

concurrency:
group: computer-macos-native-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}

permissions:
contents: read

jobs:
# Hosted macOS runners cannot receive persistent Accessibility/Screen Recording
# grants. Keep the real native build/owner-loss checks on every matching trigger instead.
mac-native-owner-smoke:
if: github.event_name != 'pull_request' || github.event.pull_request.draft != true
runs-on: blacksmith-6vcpu-macos-15
permissions:
contents: read
steps:
- uses: actions/checkout@v6
with:
persist-credentials: false
- uses: ./.github/actions/install-node-dependencies
with:
native-runtime: electron
- name: Owner-loss benchmark process cleanup
run: >-
pnpm vitest run
config/scripts/macos-computer-helper-owner-loss-group-recovery.test.mjs
config/scripts/macos-computer-helper-owner-loss-processes.test.mjs
# Why: the parallel launcher's cancellation tests are darwin-only and no
# other PR job runs on macOS.
- name: Parallel native build launcher cancellation
run: >-
pnpm vitest run --config config/vitest.config.ts
config/scripts/build-native-for-platform.test.mjs
- name: Authenticated helper owner-loss smoke
run: pnpm bench:macos-computer-helper-owner-loss --expect reaped --trials 1
- name: Swift tests and signed universal helper verification
run: pnpm verify:computer-native
3 changes: 3 additions & 0 deletions .github/workflows/e2e.yml
Original file line number Diff line number Diff line change
Expand Up @@ -382,6 +382,9 @@ jobs:
exit 0
fi
E2E_ENV=(SKIP_BUILD=1 ORCA_E2E_FORWARD_APP_LOGS=1 ORCA_E2E_WEB_CLIENT=1)
if printf '%s\n' "${TEST_FILES[@]}" | grep -Fxq 'tests/e2e/browser-image-link-focus.spec.ts'; then
E2E_ENV+=(ORCA_BACKGROUND_LAUNCH=1 ORCA_E2E_BROWSER_NATIVE_XVFB=1)
fi
E2E_PROJECT_ARGS=()
if [ -n "$LAYOUT_OWNER" ]; then
test -f out/main/ORCA_LAYOUT_OWNER_MAIN
Expand Down
11 changes: 10 additions & 1 deletion .github/workflows/macos-updater-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,10 @@ on:
- 'src/main/window/main-window-state-lifecycle*'
- 'src/main/window/dashboard-popout-window*'
- 'src/packages/process-host/**'
- 'src/main/runtime/structured-agent-cli-writers*'
- 'src/main/providers/macos-tcc-login-shell*'
- 'src/shared/process-table-snapshot*'
- 'src/shared/darwin-process-table-capture*'
- 'src/shared/update-status-types.ts'
- 'pnpm-lock.yaml'
workflow_dispatch:
Expand All @@ -29,7 +33,7 @@ concurrency:
jobs:
updater:
if: github.event_name != 'pull_request' || github.event.pull_request.draft != true
runs-on: blacksmith-6vcpu-macos-15
runs-on: macos-15
timeout-minutes: 20
steps:
- uses: actions/checkout@v6
Expand All @@ -55,3 +59,8 @@ jobs:
src/main/startup/main-process-quit-update-veto.test.ts
src/main/window/main-window-state-lifecycle.test.ts
src/main/window/dashboard-popout-window.test.ts
- name: Prove login-backed terminal writer census on the disposable runner
env:
ORCA_MACOS_LOGIN_CENSUS_CI: '1'
ORCA_BACKGROUND_LAUNCH: '1'
run: pnpm exec vitest run --config config/vitest.config.ts src/main/runtime/structured-agent-cli-writers.test.ts
5 changes: 3 additions & 2 deletions .github/workflows/node-server-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -153,9 +153,10 @@ jobs:
fail-fast: false
matrix:
os: ${{ fromJSON(needs.changes.outputs.runners || '["ubuntu-22.04","ubuntu-24.04-arm","macos-15","macos-15-intel","windows-2022","windows-11-arm"]') }}
# Keep platform keys stable for slot names and Windows cross-compilation.
# Keep platform keys stable for slot names and Windows cross-compilation. Hosted Windows x64 is free and
# still finishes before the windows-11-arm and macos-15-intel lanes that set wall time.
runs-on: >-
${{ (inputs.fast_runners || github.event_name == 'pull_request' || github.event_name == 'schedule') && fromJSON('{"ubuntu-22.04":"blacksmith-8vcpu-ubuntu-2204","ubuntu-24.04-arm":"blacksmith-8vcpu-ubuntu-2404-arm","macos-15":"blacksmith-6vcpu-macos-15","macos-15-intel":"macos-15-intel","windows-2022":"blacksmith-8vcpu-windows-2025","windows-11-arm":"windows-11-arm"}')[matrix.os] || matrix.os }}
${{ (inputs.fast_runners || github.event_name == 'pull_request' || github.event_name == 'schedule') && fromJSON('{"ubuntu-22.04":"blacksmith-8vcpu-ubuntu-2204","ubuntu-24.04-arm":"blacksmith-8vcpu-ubuntu-2404-arm","macos-15":"blacksmith-6vcpu-macos-15","macos-15-intel":"macos-15-intel","windows-2022":"windows-2022","windows-11-arm":"windows-11-arm"}')[matrix.os] || matrix.os }}
timeout-minutes: 20
env:
ORCA_BACKGROUND_LAUNCH: '1'
Expand Down
4 changes: 1 addition & 3 deletions .github/workflows/pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,7 @@ jobs:
/config/scripts/pr-package-test-paths.mjs
/config/scripts/pr-layout-oracle-route.mjs
/config/scripts/pr-e2e-source-routing.mjs
/config/scripts/pr-browser-e2e-source-routes.mjs
/config/scripts/ci-e2e-job-selection.mjs
/config/scripts/pr-ready-check-reuse.mjs
sparse-checkout-cone-mode: false
Expand Down Expand Up @@ -1089,10 +1090,7 @@ jobs:
xvfb-run --auto-servernum pnpm exec vitest run --config config/vitest.config.ts
--no-file-parallelism
src/main/browser/browser-client-page-renderer-lifecycle.electron.test.ts
src/main/browser/browser-route-tcp-egress.electron.test.ts
src/main/browser/browser-route-webrtc-egress.electron.test.ts
src/main/browser/browser-route-h3-egress.electron.test.ts
src/main/browser/browser-route-dns-prefetch.electron.test.ts
src/main/persistence/profile-state/profile-state-writer-stall.electron.test.ts
src/main/browser/popup-origin-chrome.electron.test.ts
src/main/browser/browser-link-materialization.electron.test.ts
Expand Down
30 changes: 30 additions & 0 deletions .github/workflows/windows-signing-rehearsal.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,28 @@ on:
default: windows-inner-binaries-zip

jobs:
# Ship the same qualified template as release-cut so the reseal over SignPath-rewritten binaries is rehearsed too.
orcad-template:
permissions:
contents: read
actions: read
uses: ./.github/workflows/qualified-orcad-template.yml
with:
ref: ${{ github.sha }}
# SignPath origin verification covers reusable-workflow jobs, so they stay GitHub-hosted.
fast_runners: false

rehearse:
needs: orcad-template
# Why: SignPath origin verification requires GitHub-hosted runners, and
# windows-2022 matches the real release job's build environment.
runs-on: windows-2022
timeout-minutes: 360
permissions:
actions: read
contents: read
env:
ORCA_REQUIRE_ORCAD_TEMPLATE: '1'

steps:
- name: Checkout
Expand Down Expand Up @@ -79,6 +93,13 @@ jobs:
env:
NODE_OPTIONS: --max-old-space-size=4096

# After the app build so nothing that cleans out/ can drop it; electron-builder ships it.
- name: Download the orcad deployment template
uses: actions/download-artifact@v8
with:
name: orcad-template
path: out/orcad-template

# Build full --win: --dir never creates the NSIS uninstaller needed for MDE evidence.
- name: Package Windows app and export the NSIS uninstaller
shell: pwsh
Expand Down Expand Up @@ -111,6 +132,11 @@ jobs:
Where-Object { $_.Extension -in '.exe', '.dll', '.node' } |
ForEach-Object {
$relative = [System.IO.Path]::GetRelativePath($root, $_.FullName)
# The orcad template's Linux/macOS addons are data for SSH hosts, not PE files.
if ($relative -match '^resources[\\/]orcad-template[\\/]targets[\\/](?!win32-)') {
$skipped.Add("$relative <non-Windows orcad template payload>")
return
}
$signature = Get-AuthenticodeSignature -FilePath $_.FullName
if ($signature.Status -eq 'Valid') {
$skipped.Add("$relative <already signed: $($signature.SignerCertificate.Subject)>")
Expand Down Expand Up @@ -214,6 +240,10 @@ jobs:
throw "Signed inner artifact did not round-trip cleanly ($($failures.Count) failures)."
}

# Recompute template checksums over the signed bytes, then verify the template as release-cut does.
- name: Reseal the orcad template over its signed binaries
run: node config/scripts/packaged-orcad-template.cjs --reseal-signed dist/win-unpacked inner-signing-list.txt

- name: Restore signed uninstaller for the installer rebuild
shell: pwsh
env:
Expand Down
Loading
Loading