Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
395 commits
Select commit Hold shift + click to select a range
cb0b152
test(relay): census every activity-lease reader for phones without le…
Jinwoo-H Oct 19, 2026
9f37fcd
fix(persistence): a commit that runs out of disk no longer stops all …
nwparker Oct 19, 2026
1a41a23
feat(relay): resume paired phones from one device read on memory cell…
Jinwoo-H Oct 19, 2026
90236c3
refactor(browser): one page gate and one owner for a host command's h…
nwparker Oct 19, 2026
b509299
feat(relay-ops): watch a memory phone cell and turn its phone path of…
Jinwoo-H Oct 19, 2026
4f425a2
fix(cli): refuse server names --environment cannot tell apart, and sa…
nwparker Oct 19, 2026
224d126
refactor(composer): split run-target rows and worktree-creation steps…
nwparker Oct 19, 2026
aa739f3
refactor(renderer): one FileTypeIcon component for file icons (#30695)
nwparker Oct 19, 2026
e590699
refactor: round-3 pass-1 follow-ups (#30699)
nwparker Oct 19, 2026
b8f7ece
feat(relay): keep a memory resume's basis in the cell and confirm it …
Jinwoo-H Oct 19, 2026
78bad24
test(e2e): nine sidebar specs create workspaces and links through mai…
Jinwoo-H Oct 19, 2026
1cf7472
feat(relay): batch a memory cell's resume-confirmed audit rows (#30655)
Jinwoo-H Oct 19, 2026
9def13d
ci: run the layout-owner switch-on specs as an advisory PR check (dar…
Jinwoo-H Oct 19, 2026
218b9a7
The layout drift log names the values that differ (dark, layout-owner…
Jinwoo-H Oct 19, 2026
ec89fa6
feat(orcad-migration): host applies a signed editor-drafts blob insid…
nwparker Oct 19, 2026
cffcef7
fix(projects): setup edits and removals name the host, so the twin on…
nwparker Oct 19, 2026
41fdd7e
fix(ssh): keep SFTP uploads pipelined so a high-latency link doesn't …
nwparker Oct 19, 2026
7cc2859
fix(relay-ops): let same-cap rolls run while another cell is reserve;…
Jinwoo-H Oct 19, 2026
148944c
refactor: de-barrel remote-runtime-client, runtime-terminal-stream an…
nwparker Oct 19, 2026
92ed331
refactor(plugins): extract the shared content-pack registry and list …
nwparker Oct 19, 2026
e72d8f9
fix(ssh): say the host's disk is full when a managed-server install r…
nwparker Oct 19, 2026
25e53f4
fix(security): put every trust decision on a host-owned token surface…
nwparker Oct 19, 2026
346f602
fix(git): stage and discard files in WSL repos opened by UNC path (#3…
s-stefanov Oct 19, 2026
ec0c1f1
fix(github): accept SSH certificate org remotes (org-<id>@github.com)…
Yi-111-a Oct 19, 2026
162e07c
fix(browser): refuse agent clicks while the user is mid-IME compositi…
AmoabaKelvin Oct 19, 2026
f22aecf
fix(runtime): one teardown policy per kind; removal closes host brows…
nwparker Oct 19, 2026
a9011d0
fix(projects): refuse to file a folder under a project its own GitHub…
nwparker Oct 19, 2026
4bc3971
fix(sidebar): key folder workspace rows by host so the phone matches …
Jinwoo-H Oct 19, 2026
2b60778
fix(native-chat): show the model picker in a new OMP or Antigravity c…
AmoabaKelvin Oct 19, 2026
5a9e26e
fix(ssh): say a noexec home can't run Orca's server, instead of "inst…
nwparker Oct 19, 2026
1bfebad
fix(runtime): a new terminal the host can't confirm says why, instead…
nwparker Oct 19, 2026
90e99c4
refactor(pty): every PTY retirement names its exit proof; ratchet the…
nwparker Oct 19, 2026
36913fd
test(e2e): a phone lists the desktop's managed SSH workspace as the d…
Jinwoo-H Oct 19, 2026
9a46695
test(e2e): mount-authority spec polls through the host's "can't answe…
nwparker Oct 19, 2026
b358328
test(e2e): pane-close specs close panes the way the user does and che…
Jinwoo-H Oct 19, 2026
8ff19bc
perf(sidebar): announce a burst of sort-stamp writes once (dark switc…
Jinwoo-H Oct 19, 2026
43abe32
refactor(orcad): every snapshot state op fits the gateway exec budget…
nwparker Oct 19, 2026
3d91e9a
fix(projects): removing a project on this computer stops its chats, p…
nwparker Oct 19, 2026
59a9da2
refactor(pane-layout): retire the unread intent tag; renamedLeafIds i…
nwparker Oct 19, 2026
5cc0f85
fix(runtime): a project removal stops its workspaces' terminals toget…
nwparker Oct 19, 2026
40ac8e5
fix(remote): keep a paired host's undelivered tab close across a relo…
nwparker Oct 19, 2026
0ddec6f
fix(ssh): a network cut during a managed-server install no longer han…
nwparker Oct 19, 2026
36bda5e
fix(pty): an exit proof names its incarnation; a spawn is tracked fro…
nwparker Oct 19, 2026
1f555c0
test(e2e): two chat specs follow the pan-and-zoom preview and the ren…
Jinwoo-H Oct 19, 2026
d481363
fix(orcad): orca open-url opens the page on the paired desktop (#30782)
nwparker Oct 19, 2026
baf123e
fix(persistence): repo-row store writes take the row, not the id; rat…
nwparker Oct 19, 2026
e49236f
feat(relay): count and log phone-path failures, and every attach dead…
Jinwoo-H Oct 19, 2026
0454808
fix(mobile): edit a queued message in a plain text box with compact c…
brennanb2025 Oct 19, 2026
20fc7af
test(relay): drill a memory cell through a database outage, and pin p…
Jinwoo-H Oct 19, 2026
30f5bef
fix(ci): background steps are single run steps, so no action reads th…
nwparker Oct 19, 2026
b30a798
fix(runtime): a terminal spawn names its host; the removed-project fe…
nwparker Oct 19, 2026
ca672ef
feat(browser): ask before a page opens another app (#30490)
AmoabaKelvin Oct 19, 2026
9ffb153
chore(relay): pin staging c1 and c4 to image J for the step-6 staging…
Jinwoo-H Oct 19, 2026
236eba1
fix(persistence): folder, group and session-state store writes name t…
nwparker Oct 19, 2026
5319125
Accept messages while any agent starts, and bound each startup step (…
brennanb2025 Oct 19, 2026
95f544a
fix(git): derive clone folder from scp-style remote path (#30763)
wswsadadbaba123 Oct 19, 2026
846cba6
feat(relay-load): drive paired-phone resumes so staging can time the …
Jinwoo-H Oct 19, 2026
a1ea2e3
perf(orchestration): stop recompiling a mailbox lookup on every agent…
Jinwoo-H Oct 19, 2026
b99392e
fix(orcad-migration): a pane saved in two tabs refuses on this deskto…
nwparker Oct 19, 2026
6285797
fix(session-history): the "Reading N / M files" count reaches its tot…
brennanb2025 Oct 19, 2026
6915784
fix(remote): a removed server's saved tab closes go with it; a same-m…
nwparker Oct 19, 2026
86ef00a
fix(projects): a project move names the row it moves; a paired server…
nwparker Oct 19, 2026
eedca5e
fix(persistence): worktree meta and lineage writes take the row's hos…
nwparker Oct 19, 2026
e0a89ba
fix(accounts): copy Devin commands through Orca clipboard bridge (#30…
AmethystLiang Oct 19, 2026
40e7bd1
A pane main first sees when its terminal starts goes where the window…
Jinwoo-H Oct 19, 2026
9637312
The workspace you're on disappearing lands you where a sidebar delete…
brennanb2025 Oct 19, 2026
22b2320
style: format the 10 files on main that oxfmt --check reports (#30828)
nwparker Oct 19, 2026
feba21d
fix: use consistent chat and terminal switch labels (#30829)
AmethystLiang Oct 19, 2026
dd85af1
fix(automations): headless keeps finished per-run sessions asleep ins…
Jinwoo-H Oct 19, 2026
e04c2f9
fix(cli): --environment connects to the server a differently-cased na…
nwparker Oct 19, 2026
2dbcb8c
fix(ssh): an overlapping managed-server update check sees the failure…
nwparker Oct 19, 2026
43abd59
fix(native-chat): save a Codex message's receipt from either of Codex…
brennanb2025 Oct 19, 2026
a75748a
fix(orcad-migration): refuse before fencing a manifest no catalog req…
nwparker Oct 19, 2026
e9fa0cf
fix: a tab close by the handle a split returned finds the new pane (d…
Jinwoo-H Oct 19, 2026
e6658fc
fix(ssh): a bridged relay terminal's proven exit reaches the runtime …
nwparker Oct 19, 2026
9ab194f
fix(persistence): an id-only worktree write refuses same-id twins ins…
nwparker Oct 19, 2026
2b07f0f
fix(managed-server): snapshot capture and restore run on BusyBox befo…
nwparker Oct 19, 2026
bd7633f
fix(runtime): a runtime worktree removal prunes the scan snapshots an…
nwparker Oct 19, 2026
b0c5555
Keep phone chat history in one window while preserving reading positi…
brennanb2025 Oct 19, 2026
7bff50b
fix(native-chat): a new chat in a twin folder, or a twin with no copy…
nwparker Oct 19, 2026
1902acd
test(codex): pin the stopped-send receipt rule where #30403 moved it …
nwparker Oct 19, 2026
575d3b2
docs(editor): design for one editor buffer per file (#30851)
nwparker Oct 19, 2026
b95845f
Revert "docs(editor): design for one editor buffer per file (#30851)"…
nwparker Oct 19, 2026
e932dfb
fix(relay): never send a raw error message to the desktop as a contro…
Jinwoo-H Oct 19, 2026
a0d9457
fix: distinguish history resumes from active-tab switches (#30871)
AmethystLiang Oct 19, 2026
a388005
fix(i18n): stop extracting <style> bodies as translatable copy (#30765)
nwparker Oct 19, 2026
b03ac56
fix(git): forward stdin on buffered Git reads (#30634)
nwparker Oct 19, 2026
4a33cd8
fix(native-chat): a usage limit reads as a pause with its reset time …
brennanb2025 Oct 19, 2026
a201eac
fix(projects): link a cloned or imported folder into a GitLab or gene…
nwparker Oct 19, 2026
1529b0f
fix(sidebar): a status or order drag writes the card you dragged, not…
nwparker Oct 19, 2026
3d0973d
A chat's visuals and sent images live as long as the chat (#30413)
brennanb2025 Oct 19, 2026
0f5c3a4
fix(renderer): restoring or re-selecting a workspace keeps the host i…
nwparker Oct 19, 2026
209e468
fix(ssh): an SSH server update counts terminals again just before it …
nwparker Oct 19, 2026
90797ae
fix(sidebar-inputs): a failed domain read is retried by the next flus…
nwparker Oct 19, 2026
3d880e5
fix(session-tabs): a held paired-tab close survives an undecided re-p…
nwparker Oct 19, 2026
93d89f5
perf(automations): release remote exit waits when a run stops being o…
nwparker Oct 19, 2026
8e1696f
perf(push): deliver queued notifications without waiting for the poll…
nwparker Oct 19, 2026
daad41f
perf: preserve matching Terminal settings sections during search (#23…
nwparker Oct 19, 2026
98ee268
fix(ssh): a managed tunnel follows the host's bound port after anothe…
nwparker Oct 19, 2026
ff70e9a
perf(file-explorer): reject nonmatching names before path checks (#28…
nwparker Oct 19, 2026
c8a4fc6
refactor(editor): keep tab buffer state in a per-tab store record mir…
nwparker Oct 19, 2026
c196901
feat(native-chat): `$` opens Codex skills in the composer (#30827)
brennanb2025 Oct 19, 2026
099350d
fix(terminal): Restart on a failed terminal opens a plain shell inste…
Jinwoo-H Oct 19, 2026
0a3d203
fix(ssh): Disconnect closes the managed server tunnels the SSH sessio…
nwparker Oct 19, 2026
7e75a86
refactor(orcad-migration): drop the host-side editor-drafts transfer;…
nwparker Oct 19, 2026
92eb979
ci: fail the static job on unformatted files (#30863)
nwparker Oct 19, 2026
c5d03fc
fix(ssh): a system SSH forward owns its listener even when ssh_config…
nwparker Oct 19, 2026
30d1e8d
perf(gitlab): skip unused review details in Checks refreshes (#28643)
nwparker Oct 19, 2026
f14475c
fix(browser): label popups from committed document origins (#30540)
AmethystLiang Oct 19, 2026
f3a1238
perf(mobile): shorten output batching during terminal scroll gestures…
innocarpe Oct 19, 2026
cbb9f36
Stop running the experimental layout suite on every matching PR (#30907)
nwparker Oct 19, 2026
e7d6ee6
chore(lint): bring orcad-managed-tunnel-manager.ts back under max-lin…
Jinwoo-H Oct 19, 2026
ad5ef0d
[mem] fix(memory): release consumed buffers, abandoned waits, and del…
OrcaWin Oct 19, 2026
3f9e4ec
chore(format): format the files main's new formatting check rejects (…
Jinwoo-H Oct 19, 2026
fbd0a29
fix(ssh): two overlapping bridged-terminal attaches hand back the vie…
nwparker Oct 19, 2026
da0db9f
fix(ssh): orca open-url on a managed SSH host opens the page on the d…
nwparker Oct 19, 2026
2bdef8d
fix(settings): Antigravity's sign-in reads as an Account line, never …
brennanb2025 Oct 19, 2026
787e7c0
fix(native-chat): keep transcript text clear of the message rail (#30…
brennanb2025 Oct 19, 2026
acdf066
fix(runtime): a terminal start on an SSH twin no longer wakes or is r…
nwparker Oct 19, 2026
c3d3df4
fix(sidebar): a Pinned drop or menu pin pins the card you chose, not …
nwparker Oct 19, 2026
6f96efb
fix(orcad-migration): a host fenced on a manifest no request can carr…
nwparker Oct 20, 2026
08118ec
fix(linear): show a saved Linear credential that cannot be decrypted …
brennanb2025 Oct 20, 2026
d42e6e0
fix(renderer): host writes route only through the strict owner, and t…
nwparker Oct 20, 2026
9c8bdb6
fix(native-chat): keep a typed [Image #N] when the message has no suc…
AmoabaKelvin Oct 20, 2026
5e4139a
feat(browser): ask for a username and password when a site needs one …
AmoabaKelvin Oct 20, 2026
5c182e1
style: format the 22 files main merged unformatted (fix red main) (#3…
brennanb2025 Oct 20, 2026
c9e7147
fix(managed-server): keep the tunnel manager under its line limit aft…
nwparker Oct 20, 2026
8316531
fix(diff-comments): a review note on a twin worktree saves to the ope…
nwparker Oct 20, 2026
d4b65b9
fix(browser): a press an SSH host left held across commands is let go…
nwparker Oct 20, 2026
449cbb0
test(browser): wait for the popup fixture's first paint during startu…
Jinwoo-H Oct 20, 2026
a817602
chore(ratchet): prune the tabs-group-actions layout-writer baseline (…
brennanb2025 Oct 20, 2026
7cc9d95
fix(native-chat): list Pi skills in the / menu as /skill:<name> (#30924)
AmoabaKelvin Oct 20, 2026
883583b
fix(native-chat): hide history before /clear (#30902)
AmoabaKelvin Oct 20, 2026
8d05016
feat(agents): add Auto to the global agent permission switch (#30677)
nwparker Oct 20, 2026
28d9f95
Run selected SSH tests instead of the whole suite on PRs (#30928)
nwparker Oct 20, 2026
f1135dd
fix(ssh): say when this computer can't download Node for a managed se…
nwparker Oct 20, 2026
af6fe23
A pane close by its terminal handle closes only that pane, even befor…
Jinwoo-H Oct 20, 2026
65d671e
fix(wsl): keep the desktop pairing across host restarts (#29042)
brennanb2025 Oct 20, 2026
907694d
fix(hosts): compare complete renderer status snapshots (#29033)
brennanb2025 Oct 20, 2026
bfdf16b
style: format three files #29042 landed before the format check (#30948)
nwparker Oct 20, 2026
577df19
fix(wsl): reconnect hosts when a retained connection stops answering …
brennanb2025 Oct 20, 2026
b2e678a
fix(native-chat): keep /model, /effort, /clear and /compact in the / …
AmoabaKelvin Oct 20, 2026
11b925d
fix(ssh): a legacy relay terminal stays with the relay that runs it w…
nwparker Oct 20, 2026
8aa5d28
test(browser): route input into fresh sandboxed popup iframes before …
nwparker Oct 20, 2026
929dede
test(e2e): give the ACK-backpressured typing scenario the under-load …
nwparker Oct 20, 2026
c0202b4
test(node-runtime): skip retry pauses in the refused-download test in…
nwparker Oct 20, 2026
db89ced
fix(relay-ops): stop the reserve watch cleanly when the cell leaves r…
Jinwoo-H Oct 20, 2026
3ce8012
fix(notifications): a server with no window pushes phones when a term…
Jinwoo-H Oct 20, 2026
912c130
test(e2e): measure typing-time renderer stalls with long tasks, not i…
nwparker Oct 20, 2026
b6eee3e
fix(ssh): download the pinned Node on the host when this computer can…
nwparker Oct 20, 2026
c822123
fix(ssh): a forward edit cut short by Disconnect keeps the host's sav…
nwparker Oct 20, 2026
9a79de5
feat(native-chat): apply per-agent Auto permission defaults (#30853)
nwparker Oct 20, 2026
8de3719
fix(runtime): a failed orphan adoption write rolls back instead of ke…
nwparker Oct 20, 2026
99379d1
fix(mobile): let an add or removal replace corrupt stored terminal ke…
AmoabaKelvin Oct 20, 2026
c4a6081
fix(worktrees): a sort order and a minted push remote land on the cop…
nwparker Oct 20, 2026
036fc58
fix(native-chat): link Antigravity sign-in instructions to settings (…
brennanb2025 Oct 20, 2026
972d6dc
Speed up macOS updates by avoiding background installer throttling (#…
nwparker Oct 20, 2026
0ee0290
feat(accounts): save MiniMax and GLM Coding Plan keys on the Settings…
Jinwoo-H Oct 20, 2026
66d3717
feat(ssh): let a nodejs.org mirror serve the pinned Node on this comp…
nwparker Oct 20, 2026
fe6a2a0
fix(codex): keep Orca's terminal identity in Codex commands when the …
Jinwoo-H Oct 20, 2026
4b6fd92
fix(diff): restore the combined diff view when its tab is reopened (#…
nwparker Oct 20, 2026
81b8bfb
fix(space): speed up selection and support reviewed workspace cleanup…
nwparker Oct 20, 2026
0e7cefb
fix(diff): keep combined diff position stable across worktree switche…
nwparker Oct 20, 2026
920d1e9
fix(status-bar): keep this computer's providers visible as "Not confi…
Jinwoo-H Oct 20, 2026
c09af97
fix(native-chat): say which request a chat start ran out of time on, …
nwparker Oct 20, 2026
67eb94a
perf(release): overlap server checks and share the mobile bundle (#30…
nwparker Oct 20, 2026
a267d9f
fix(runtime): a moved shell history waits only on this machine's shel…
nwparker Oct 20, 2026
00d25d1
Clarify automation run CLI results and follow-up targets (#28262)
nwparker Oct 20, 2026
23d6811
Restored terminals named only on their tab reattach after a restart (…
Jinwoo-H Oct 20, 2026
d6707ff
Give Space rows a dedicated actions menu (#31000)
nwparker Oct 20, 2026
85e690f
fix(provider-process): kill a provider group its SIGKILLed supervisor…
nwparker Oct 20, 2026
09fd0be
Exclude cloud service sources from desktop packages (#31004)
nwparker Oct 20, 2026
acc6354
Shrink feature tour animations without changing pixels or timing (#31…
nwparker Oct 20, 2026
0059d06
fix(relay): keep a host in its region when the database lane is full …
Jinwoo-H Oct 20, 2026
1466dea
Share identical packaged ripgrep binaries across server targets (#31005)
nwparker Oct 20, 2026
8b70b72
fix(sidebar): a pin's reveal follows only the focused copy, by its ow…
nwparker Oct 20, 2026
84a4526
Overlap macOS notarization with serial architecture staging (#31006)
nwparker Oct 20, 2026
937d2d3
Share installed desktop and browser assets (#31010)
nwparker Oct 20, 2026
7b1e73f
Show short Antigravity pool labels in status bar (#31007)
AmethystLiang Oct 20, 2026
d47e3de
Three small fixes in the layout-owner build: repo reads, dragged-out …
Jinwoo-H Oct 20, 2026
e278bc9
feat(orcad-migration): unsaved drafts stay on this desktop and are re…
nwparker Oct 20, 2026
ba6599e
fix(ssh): pair again over SSH when a managed server drops this deskto…
nwparker Oct 20, 2026
49109f3
release: v1.4.232
github-actions[bot] Oct 20, 2026
f884b9f
ci(relay): run cell-flags and reserve-watch on the paid runner pool (…
Jinwoo-H Oct 20, 2026
db6b3fd
fix(web-client): a damaged browser file list disables only the browse…
nwparker Oct 20, 2026
16fa2a8
fix(release): keep Mac qualification runs out of the release build's …
nwparker Oct 20, 2026
4d76e8e
fix(renderer): editor writes and unqualified removals route by the ro…
nwparker Oct 20, 2026
509f198
[mem] Stream saved transcripts and stage large search writes (#30702)
OrcaWin Oct 20, 2026
cf6bbd3
perf(release): overlap Windows builds and gate signing on Mac success…
nwparker Oct 20, 2026
fadcb8a
fix(sidebar): keep project names short and show their machine (#28250)
nwparker Oct 20, 2026
54f1417
fix(relay): give region-correction reconnects and roll re-placements …
Jinwoo-H Oct 20, 2026
764e09b
No empty extra terminal tab from an old saved terminal record (dark, …
Jinwoo-H Oct 20, 2026
52eea6d
docs: update WeChat QR code for group 13 (#31052)
AmethystLiang Oct 20, 2026
e534527
perf(checks): use Bun for end-to-end typechecking (#31046)
nwparker Oct 20, 2026
46d0a00
fix(relay): move director traffic in two steps so a deploy does not l…
Jinwoo-H Oct 20, 2026
536a32a
fix(updater): a live orcad's browser helper pauses for macOS desktop …
nwparker Oct 20, 2026
b822132
Agent titles from one status batch reach main as one rename (dark, la…
Jinwoo-H Oct 20, 2026
14131cd
fix(editor): markdown preview of a terminal-opened file reads with it…
nwparker Oct 20, 2026
30d32d3
fix(relay): let the same-cap trust probe outlast load-balancer warm-u…
Jinwoo-H Oct 20, 2026
e2c52a9
fix(projects): a moved SSH host lists once in a project's Available H…
nwparker Oct 20, 2026
8802b55
fix(orcad): ship node-pty's winpty backend so Windows 1809 / Server 2…
nwparker Oct 20, 2026
c8962bd
perf(build): check CLI with Bun before TypeScript emission (#31043)
nwparker Oct 20, 2026
e0cf91c
feat(ssh): one-click Node.js mirror when neither machine can download…
nwparker Oct 20, 2026
2d41a26
fix(runtime): new local projects never dedupe onto an SSH project at …
nwparker Oct 20, 2026
43b2d95
fix(browser): an SSH host's capture is admitted at each capture and a…
nwparker Oct 20, 2026
e3ad4ac
fix(ssh): a managed tunnel whose forward can't start takes the stdio …
nwparker Oct 20, 2026
41f1580
fix(runtime): PR/MR worktree base refuses SSH projects named only by …
nwparker Oct 20, 2026
a439dfa
fix(runtime): detect Linux libraries reliably across SSH and WSL (#31…
nwparker Oct 20, 2026
6211a5e
fix(ssh): a legacy relay restarted at the same socket never takes ove…
nwparker Oct 20, 2026
abd1fcf
fix(cli): worktree create sends the host --project/--host selected (#…
nwparker Oct 20, 2026
917c577
fix(renderer): no owner route reads the Active Server focus, so a loc…
nwparker Oct 20, 2026
956a6aa
fix(ssh): retry with the saved Node.js mirror once a running connect …
nwparker Oct 20, 2026
63246eb
fix(pairing): adding a server you already saved updates it instead of…
nwparker Oct 20, 2026
e01a539
test(ai-vault): pin the appended transcript's mtime so the cold-autho…
Jinwoo-H Oct 20, 2026
94e55a2
fix(mobile): phone list resends lost option changes, trusts the feed'…
Jinwoo-H Oct 20, 2026
4e99886
test: shared switch-on fixtures so 71 layout tests pass with main own…
Jinwoo-H Oct 20, 2026
d9a89dc
fix(editor): a rename retargets only editors whose own owner is the r…
nwparker Oct 20, 2026
0ee13f8
fix(ssh): say "Orca on <host>" instead of "managed server" in the UI …
nwparker Oct 20, 2026
41b219d
fix(renderer): say which saved servers are the same machine paired tw…
nwparker Oct 20, 2026
085cc38
fix(sidebar-inputs): republish workspace rows on visibility settings …
Jinwoo-H Oct 20, 2026
4440641
build(orcad): a dark test template opt-in, marked so packaging refuse…
Jinwoo-H Oct 20, 2026
8b11d90
fix(editor): refuse saves that would overwrite unnoticed disk changes…
nwparker Oct 20, 2026
c2b3364
fix(sidebar): one agent phase history, so a compaction raises no unre…
Jinwoo-H Oct 20, 2026
0848dbf
fix(editor): disk-checked save follow-ups: repeatable stale reloads, …
nwparker Oct 20, 2026
35f5072
fix(sidebar): same-id workspaces on two hosts sort, nest and stay ret…
Jinwoo-H Oct 20, 2026
f11f1b8
fix(sidebar): a read Done no longer hides a pane that is still Workin…
Jinwoo-H Oct 20, 2026
a2e0f20
Main sends one layout update per action, with only what changed (dark…
Jinwoo-H Oct 20, 2026
49a2203
Remote Orca Servers: one list instead of six sections; SSH Hosts: bul…
nwparker Oct 20, 2026
6e1ca05
Merge commit '49109f362f057cd2dc3d81cd378cb84d140c3dc5' into zpyoung/…
zpyoung Oct 20, 2026
8fdee2d
sync: resolve file ownership for upstream v1.4.232
zpyoung Oct 20, 2026
cea4b0d
fix(sync): import moved upstream helpers from their new modules
zpyoung Oct 20, 2026
c62061a
fix(sync): hand host rows to upstream's host-scoped store writes
zpyoung Oct 20, 2026
01b5644
fix(sync): import remote PTY id helpers from shared/remote-runtime-pt…
zpyoung Oct 20, 2026
6a96bca
fix(sync): follow the picker's sessionSkills and positional params in…
zpyoung Oct 20, 2026
4ea1fc6
fix(sync): accept onStarted on the fork's continuation dialog
zpyoung Oct 20, 2026
559b5c0
fix(sync): let fork sidebar seams degrade under upstream's list and d…
zpyoung Oct 20, 2026
d8a1a15
fix(sync): replay upstream's sign-in progress button into the fork pu…
zpyoung Oct 20, 2026
aa86361
perf(mobile): prepare the worktree checkout while the new-workspace f…
AmoabaKelvin Oct 20, 2026
133fc98
fix(mobile): keep session tab icons full size beside long titles (#31…
AmoabaKelvin Oct 20, 2026
6132d42
ci: match main's workflow files so the release token can tag this branch
brennanb2025 Oct 20, 2026
c60a9b0
release: v1.4.233
github-actions[bot] Oct 20, 2026
eea537b
fix(sync): port upstream's /resume into the fork composer
zpyoung Oct 20, 2026
15e8408
fix(sync): ship upstream's pnpmfile into the test-sandbox image
zpyoung Oct 20, 2026
26c4d78
fix(sync): pass removeProject options only when ledgers are expected
zpyoung Oct 20, 2026
e44603f
fix(sync): expect upstream's notifyFailure option in the fork launch-…
zpyoung Oct 20, 2026
c67e3af
fix(sync): let the ask forwarding seam no-op on a runtime double
zpyoung Oct 20, 2026
3fa880a
Merge tag 'v1.4.233' into zpyoung/auto-sync-fork-with-upstream-stably…
zpyoung Oct 20, 2026
48ce29d
sync: resolve file ownership for upstream v1.4.233
zpyoung Oct 20, 2026
81c03bb
fix(sync): give upstream's duplicate-pty startup test an ipcMain double
zpyoung Oct 20, 2026
ca08c3d
fix(sync): hold upstream's Windows signing-gate test to the fork's re…
zpyoung Oct 20, 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.
18 changes: 18 additions & 0 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,24 @@ In PowerShell, use `$env:ORCA_DEV_MAIN_SOURCEMAPS='0'` before `pnpm dev`.
Remove the variable when debugging the main process with source maps. Renderer and
preload settings are unaffected; production builds always keep their hidden main maps.

Local installs use pnpm's global virtual store: each package version is one slot
under `~/pnpm/store` that every worktree links to, instead of a full `node_modules` per worktree.
An existing worktree converts on its next `pnpm install`, and an older branch without the setting
converts back the same way. CI always uses the normal layout. On Windows, pnpm links with
junctions when you lack the symlink privilege, so no administrator rights or Developer Mode are
needed. Things to know:

- Keep `~/node_modules` (and any other `node_modules` above the store) out of your home
directory. Node resolves upward from the store slot, so a stray one there supplies
dependencies the package never declared and hides missing-dependency bugs; `pnpm install` warns
when it finds one.
- Native addons are never rebuilt in place in a shared slot: each CPU gets its own build
beside it (see [`native-build-entry.cjs`](../config/scripts/native-build-entry.cjs)), so
cross-arch packaging is safe for other worktrees.
- `ORCA_PNPM_GLOBAL_VIRTUAL_STORE=0` opts out. Keep it set
in your shell: `pnpm run` re-checks the install and relinks a worktree whose layout no longer
matches.

Ordinary installs include native optional dependencies for the current OS and CPU only.
Before a cross-architecture build (including `pnpm build:mac`, which produces both x64 and
arm64 artifacts by default), run `pnpm install:release` to add the other CPU's variants.
Expand Down
2 changes: 1 addition & 1 deletion .github/actions/install-node-dependencies/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ runs:
case "$LOOKUP_REQUEST" in
[aA][uU][tT][oO])
# Hosted runners have Node for this manifest-only check before toolchain setup.
lookup_only="$(node -p 'const p = require("./package.json"); p.engines?.node === "24" && typeof p.packageManager === "string" && p.packageManager.split("+")[0] === "pnpm@12.8.1"')"
lookup_only="$(node -p 'const p = require("./package.json"); p.engines?.node === "24" && typeof p.packageManager === "string" && p.packageManager.split("+")[0] === "pnpm@12.14.0"')"
;;
esac
printf 'lookup-only=%s\n' "$lookup_only" >> "$GITHUB_OUTPUT"
Expand Down
2 changes: 1 addition & 1 deletion .github/actions/prepare-headless-compiler/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ runs:
- id: identity
shell: bash
env:
COMPILER_POLICY_HASH: ${{ hashFiles('package.json', 'pnpm-lock.yaml', 'pnpm-workspace.yaml', '.npmrc', '.pnpmfile.cjs', 'config/patches/**', '.github/actions/install-node-dependencies/**', '.github/actions/restore-pnpm-verification/**', 'config/scripts/headless-detector-compiler-cache.mjs', '.github/actions/prepare-headless-compiler/action.yml') }}
COMPILER_POLICY_HASH: ${{ hashFiles('package.json', 'pnpm-lock.yaml', 'pnpm-workspace.yaml', '.npmrc', 'config/pnpmfile.cjs', 'config/patches/**', '.github/actions/install-node-dependencies/**', '.github/actions/restore-pnpm-verification/**', 'config/scripts/headless-detector-compiler-cache.mjs', '.github/actions/prepare-headless-compiler/action.yml') }}
run: node config/scripts/headless-detector-compiler-cache.mjs identity
- id: cache
uses: actions/cache/restore@v5
Expand Down
34 changes: 9 additions & 25 deletions .github/actions/prepare-linux-package-fixture/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,16 @@ inputs:
save-cache:
description: Build and save a missing fixture on the default branch.
default: 'false'
load:
description: Load the image here; 'false' only restores, so the caller can load it in a background run step.
default: 'true'
outputs:
image:
description: Loaded image to use as a Docker build cache, or empty on a cache miss.
value: ${{ steps.image.outputs.image }}
cache-hit:
description: Whether the fixture archive was restored under the exact key.
value: ${{ steps.cache.outputs.cache-hit }}
runs:
using: composite
steps:
Expand All @@ -20,39 +26,17 @@ runs:
continue-on-error: true
with:
path: ${{ runner.temp }}/orca-package-fixtures/${{ inputs.fixture }}.tar
key: linux-package-fixture-v1-${{ runner.os }}-${{ runner.arch }}-linux-amd64-${{ inputs.fixture }}-${{ hashFiles(format('config/docker/{0}/**', inputs.fixture), '.github/actions/prepare-linux-package-fixture/action.yml') }}
key: linux-package-fixture-v1-${{ runner.os }}-${{ runner.arch }}-linux-amd64-${{ inputs.fixture }}-${{ hashFiles(format('config/docker/{0}/**', inputs.fixture), '.github/actions/prepare-linux-package-fixture/action.yml', '.github/actions/prepare-linux-package-fixture/load-fixture.sh') }}

- name: Load or seed fixture build cache
id: image
if: inputs.load != 'false'
shell: bash
env:
FIXTURE: ${{ inputs.fixture }}
SAVE_CACHE: ${{ inputs.save-cache }}
CACHE_HIT: ${{ steps.cache.outputs.cache-hit }}
run: |
set -euo pipefail
case "$FIXTURE" in
headless-serve-shutdown|cli-launch-contract|daemon-shutdown-descendants) ;;
*) echo "Unsupported package fixture: $FIXTURE" >&2; exit 1 ;;
esac
archive="$RUNNER_TEMP/orca-package-fixtures/$FIXTURE.tar"
image="orca-package-fixture-$FIXTURE:cache"
if [[ "$CACHE_HIT" == true ]] && docker load --input "$archive"; then
if docker image inspect "$image" > /dev/null; then
echo "image=$image" >> "$GITHUB_OUTPUT"
exit 0
fi
fi
if [[ "$SAVE_CACHE" != true ]]; then
echo 'No usable fixture cache; the package runner will build normally.'
exit 0
fi
docker build --platform linux/amd64 --build-arg BUILDKIT_INLINE_CACHE=1 \
--tag "$image" --file "config/docker/$FIXTURE/Dockerfile" "config/docker/$FIXTURE"
mkdir -p "$(dirname "$archive")"
docker save --output "$archive" "$image"
echo "image=$image" >> "$GITHUB_OUTPUT"
echo 'built=true' >> "$GITHUB_OUTPUT"
run: bash "$GITHUB_ACTION_PATH/load-fixture.sh"

- name: Save fixture image
if: inputs.save-cache == 'true' && steps.cache.outputs.cache-hit != 'true' && steps.image.outputs.built == 'true'
Expand Down
25 changes: 25 additions & 0 deletions .github/actions/prepare-linux-package-fixture/load-fixture.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
#!/usr/bin/env bash
# Loads a restored fixture image; only the default-branch warmer builds and exports a missing one.
set -euo pipefail
case "$FIXTURE" in
headless-serve-shutdown|cli-launch-contract|daemon-shutdown-descendants) ;;
*) echo "Unsupported package fixture: $FIXTURE" >&2; exit 1 ;;
esac
archive="$RUNNER_TEMP/orca-package-fixtures/$FIXTURE.tar"
image="orca-package-fixture-$FIXTURE:cache"
if [[ "${CACHE_HIT:-}" == true ]] && docker load --input "$archive"; then
if docker image inspect "$image" > /dev/null; then
echo "image=$image" >> "$GITHUB_OUTPUT"
exit 0
fi
fi
if [[ "${SAVE_CACHE:-}" != true ]]; then
echo 'No usable fixture cache; the package runner will build normally.'
exit 0
fi
docker build --platform linux/amd64 --build-arg BUILDKIT_INLINE_CACHE=1 \
--tag "$image" --file "config/docker/$FIXTURE/Dockerfile" "config/docker/$FIXTURE"
mkdir -p "$(dirname "$archive")"
docker save --output "$archive" "$image"
echo "image=$image" >> "$GITHUB_OUTPUT"
echo 'built=true' >> "$GITHUB_OUTPUT"
2 changes: 1 addition & 1 deletion .github/actions/prepare-native-runtime/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ runs:
env:
NATIVE_RUNTIME: ${{ inputs.native-runtime }}
NODE_VERSION: ${{ inputs.node-version }}
NATIVE_SOURCE_HASH: ${{ hashFiles('pnpm-lock.yaml', 'pnpm-workspace.yaml', '.npmrc', '.pnpmfile.cjs', '.github/actions/prepare-native-runtime/action.yml', 'config/scripts/ensure-native-runtime.mjs', 'config/scripts/initialize-windows-native-toolchain.mjs', 'config/scripts/capture-windows-native-environment.cmd', 'config/scripts/rebuild-native-deps.mjs', 'config/scripts/node-pty-job-ownership.cjs', 'config/scripts/windows-pe-machine.cjs', 'config/scripts/windows-process-tree-gyp-rebuild.mjs', 'config/scripts/windows-process-tree-creation-time.cjs', 'config/scripts/install-electron-package-binary.mjs', 'config/scripts/electron-platform-path.mjs', 'config/scripts/zip-extractor-command.mjs', 'src/shared/zip-extractor-command.ts', 'config/scripts/shared-electron-dist-cache.mjs', 'config/scripts/space-sharing-copy.mjs', 'config/patches/node-pty@1.1.0.patch', 'config/patches/@vscode__windows-process-tree@0.8.0.patch', 'native/windows-registry/src/addon.cc', 'native/windows-registry/binding.gyp', 'native/windows-registry/package.json', 'native/windows-registry/index.js', 'native/windows-security/src/addon.cc', 'native/windows-security/binding.gyp', 'native/windows-security/package.json', 'native/windows-security/index.js') }}
NATIVE_SOURCE_HASH: ${{ hashFiles('pnpm-lock.yaml', 'pnpm-workspace.yaml', '.npmrc', 'config/pnpmfile.cjs', '.github/actions/prepare-native-runtime/action.yml', 'config/scripts/ensure-native-runtime.mjs', 'config/scripts/initialize-windows-native-toolchain.mjs', 'config/scripts/capture-windows-native-environment.cmd', 'config/scripts/rebuild-native-deps.mjs', 'config/scripts/node-pty-job-ownership.cjs', 'config/scripts/windows-pe-machine.cjs', 'config/scripts/windows-process-tree-gyp-rebuild.mjs', 'config/scripts/windows-process-tree-creation-time.cjs', 'config/scripts/install-electron-package-binary.mjs', 'config/scripts/electron-platform-path.mjs', 'config/scripts/zip-extractor-command.mjs', 'src/shared/zip-extractor-command.ts', 'config/scripts/shared-electron-dist-cache.mjs', 'config/scripts/space-sharing-copy.mjs', 'config/patches/node-pty@1.1.0.patch', 'config/patches/@vscode__windows-process-tree@0.8.0.patch', 'native/windows-registry/src/addon.cc', 'native/windows-registry/binding.gyp', 'native/windows-registry/package.json', 'native/windows-registry/index.js', 'native/windows-security/src/addon.cc', 'native/windows-security/binding.gyp', 'native/windows-security/package.json', 'native/windows-security/index.js') }}
run: |
scope="${ImageOS:-$RUNNER_OS}"
if [ -r /etc/os-release ]; then
Expand Down
22 changes: 11 additions & 11 deletions .github/actions/prepare-wayland-clipboard/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,14 @@ inputs:
save-cache:
description: Publish a validated helper from the default branch.
default: 'false'
build:
description: Build here; 'false' only restores, so the caller can build in a background run step.
default: 'true'

outputs:
cache-hit:
description: Whether the helper was restored under the exact key.
value: ${{ steps.cache.outputs.cache-hit }}

runs:
using: composite
Expand All @@ -30,22 +38,14 @@ runs:
key: ${{ steps.identity.outputs.key }}

- name: Build or validate Wayland clipboard helper
if: inputs.build != 'false'
shell: bash
env:
CACHE_HIT: ${{ steps.cache.outputs.cache-hit }}
run: |
if node config/scripts/build-wayland-clipboard.mjs; then
exit 0
fi
if [ "$CACHE_HIT" != true ]; then
exit 1
fi
echo 'Discarding an unusable Wayland clipboard cache and rebuilding from source.'
rm -rf -- native/wayland-clipboard/.build
node config/scripts/build-wayland-clipboard.mjs
run: bash "$GITHUB_ACTION_PATH/build-or-validate.sh"

- name: Save validated Wayland clipboard helper from main
if: inputs.save-cache == 'true' && steps.cache.outputs.cache-hit != 'true' && github.ref == 'refs/heads/main' && github.event_name != 'pull_request'
if: inputs.build != 'false' && inputs.save-cache == 'true' && steps.cache.outputs.cache-hit != 'true' && github.ref == 'refs/heads/main' && github.event_name != 'pull_request'
uses: actions/cache/save@v5
continue-on-error: true
with:
Expand Down
12 changes: 12 additions & 0 deletions .github/actions/prepare-wayland-clipboard/build-or-validate.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#!/usr/bin/env bash
# Validates a restored helper and rebuilds once from source when the restored copy is unusable.
set -e
if node config/scripts/build-wayland-clipboard.mjs; then
exit 0
fi
if [ "${CACHE_HIT:-}" != true ]; then
exit 1
fi
echo 'Discarding an unusable Wayland clipboard cache and rebuilding from source.'
rm -rf -- native/wayland-clipboard/.build
node config/scripts/build-wayland-clipboard.mjs
Loading
Loading