Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
262 commits
Select commit Hold shift + click to select a range
26f9fd8
Update README downloads badge
github-actions[bot] Sep 10, 2026
4b1b717
fix(orchestration): scope @ group addresses to the sender's Run (#19783)
Jinwoo-H Sep 10, 2026
f2af92b
feat(native-chat): show live background work and name each row by kin…
brennanb2025 Sep 10, 2026
4408fe8
feat(sidebar): show native-chat subagents as sidebar child rows, like…
brennanb2025 Sep 10, 2026
5a96158
feat(native-chat): focus the message box when a chat appears (#19868)
brennanb2025 Sep 10, 2026
a6e6de9
fix(relay): keep failed rehome polls out of the durable failure budge…
Jinwoo-H Sep 10, 2026
6e9de5f
fix(orchestration): revalidate an attempted Enter instead of resendin…
brennanb2025 Sep 10, 2026
68e207c
test(native-chat): split structured question fixtures
Sep 10, 2026
4f5a827
Revert "test(native-chat): split structured question fixtures"
Sep 10, 2026
721a269
test(native-chat): split structured question fixtures (#19924)
brennanb2025 Sep 10, 2026
2626e2e
Make the structured turn lifecycle row durable so completed durations…
brennanb2025 Sep 10, 2026
33436c3
refactor(native-chat): unify agent session launch and open drafts in …
brennanb2025 Sep 10, 2026
eb2f2d5
feat(cloud): native push gateway and dedicated infrastructure (1/3) (…
Jinwoo-H Sep 10, 2026
fb85f88
fix(browser): restore the Chrome-shaped browser identity (STA-7147) (…
brennanb2025 Sep 10, 2026
4e16813
refactor(mobile): extract settings, diagnostics and editor-document s…
Jinwoo-H Sep 10, 2026
a933843
fix(native-chat): never adopt an unlisted model as the launch default…
brennanb2025 Sep 10, 2026
027acb4
fix(native-chat): settle a structured send on admission, not on the p…
brennanb2025 Sep 10, 2026
74cc9b5
feat(desktop): native mobile push integration (2/3) (#19935)
Jinwoo-H Sep 11, 2026
b0505f0
fix(sidebar): let an agent row show the provider title (#19936)
brennanb2025 Sep 11, 2026
fb9ba4b
fix(editor): make markdown images inline so a paragraph stays schema-…
OrcaWin Sep 11, 2026
25b5fac
feat(native-chat): record the provider's name for an agent session (#…
brennanb2025 Sep 11, 2026
254a07b
fix(release): port three release-gate fixes to main so cuts stop re-i…
brennanb2025 Sep 11, 2026
ae72912
refactor(renderer): share path head elision (#19938)
AmethystLiang Sep 11, 2026
54216a7
feat(cmd-j): compact palette location layout (#19939)
AmethystLiang Sep 11, 2026
58ff95b
refactor(mobile): name the RPC acceptance policies call sites hand-ro…
Jinwoo-H Sep 11, 2026
47b6c75
fix: prompt unexpectedly signed-out Cloud users once per version (#19…
Jinwoo-H Sep 11, 2026
2c984bc
feat(ai-vault-search): session search index as a transcript reader co…
Jinwoo-H Sep 11, 2026
ecd7b19
fix(native-chat): pass agent-implemented slash commands through to th…
brennanb2025 Sep 11, 2026
cdf41df
perf(terminal): stop rebuilding per-workspace collections on a worktr…
nwparker Sep 11, 2026
c84007c
feat(rpc): generate a shared params catalog from the host registry, g…
Jinwoo-H Sep 11, 2026
9b83f97
feat(native-chat): describe slash commands from the provider's own re…
brennanb2025 Sep 11, 2026
3b99a59
perf(terminal): stop spending reveal-restore frames on panes that rep…
nwparker Sep 11, 2026
6c1580a
i18n: Make file reveal labels translatable (#20010)
OrcaWin Sep 11, 2026
1798786
perf(native-chat): mount only the transcript rows near the viewport (…
brennanb2025 Sep 11, 2026
d33354c
feat(mobile): receive native push notifications from paired desktops …
Jinwoo-H Sep 11, 2026
2ffac47
fix(workspaces): seed shells only for blank selection (#19940)
brennanb2025 Sep 11, 2026
8acce09
Hide desktop theme imports from paired web clients (#20015)
OrcaWin Sep 11, 2026
cf7408a
feat(ai-vault-search): session search query engine over the index (#1…
Jinwoo-H Sep 11, 2026
37603a6
refactor(shared): derive WellKnownAgentType from TuiAgent (#19645)
AmethystLiang Sep 11, 2026
f31bfa8
Revert "feat(ai-vault-search): session search query engine over the i…
Jinwoo-H Sep 11, 2026
1fedda1
feat(ai-vault-search): session search indexer library owning backfill…
Jinwoo-H Sep 11, 2026
2ecde71
refactor(rpc): make defineMethod preserve the method name and handler…
Jinwoo-H Sep 11, 2026
1113df6
fix(daemon): pin owner-only modes on persisted terminal history (#19954)
nwparker Sep 11, 2026
e187c82
Revert mobile push rollout pending delivery investigation (#20040)
Jinwoo-H Sep 11, 2026
a93e0ae
fix(pi): retire stale spinner and prompt timers across reloads (#20035)
nwparker Sep 11, 2026
7d367b2
fix(terminal): stop the recovery budget erasing itself during a remou…
OrcaWin Sep 11, 2026
26db907
fix(monaco): bound embedded-language recursion in svelte/astro/vue gr…
OrcaWin Sep 11, 2026
b3e0a33
fix(runtime): agent-neutral wait-blocked reasons (#19749)
OrcaWin Sep 11, 2026
b6e4457
fix(worktrees): close an idle structured chat on delete instead of re…
brennanb2025 Sep 11, 2026
3b82d8d
fix(runtime): let connections own host status recovery (#20003)
Jinwoo-H Sep 11, 2026
fab78c7
fix(native-chat): show one live-turn indicator, and make Thinking mea…
brennanb2025 Sep 11, 2026
5fa62fe
perf(terminal): mount only the visible pane on a worktree switch (#20…
nwparker Sep 11, 2026
2167cd2
test(monaco): drive the real Monarch tokenizer instead of walking rul…
nwparker Sep 11, 2026
6bb2b0c
test(runtime): capture real Antigravity transcripts — the detector is…
nwparker Sep 11, 2026
78e985c
fix(pi): claim the status pane when the inherited owner PID is dead (…
brennanb2025 Sep 11, 2026
22d1238
fix(pi): load extension providers for source control generation (#20070)
nwparker Sep 11, 2026
20c5624
fix(terminal): keep a deliberately slept workspace cold until it is w…
nwparker Sep 11, 2026
94c2f96
perf(daemon): stop scanning every cell for OSC links that cannot exis…
nwparker Sep 11, 2026
a0799d8
fix(terminal): move the recovery ledger onto the tab row and gate it …
nwparker Sep 11, 2026
9aa0f7e
Update README downloads badge
github-actions[bot] Sep 11, 2026
08a24ef
fix(push): preserve distinct Android alerts while offline (#20066)
Jinwoo-H Sep 11, 2026
fb19c96
feat(native-chat): show when a Codex goal is set, changed, or cleared…
brennanb2025 Sep 11, 2026
ec9c3e0
Fix remote hosted review browser routing (#20030)
Jinwoo-H Sep 11, 2026
9a56797
fix(mobile): surface host create warnings and terminal-create errors …
brennanb2025 Sep 11, 2026
cd9aa43
feat(relay): correct regional placement only when the source is idle …
Jinwoo-H Sep 11, 2026
1d7bb47
test(relay): harden regional rehome race coverage (#20136)
Jinwoo-H Sep 11, 2026
7294915
feat(desktop): measure relay regions and reconnect after idle cutover…
Jinwoo-H Sep 11, 2026
da5d555
refactor(agent-status): delete the runtime's retained row store (PR 1…
brennanb2025 Sep 11, 2026
9c918b9
fix(deps): take Electron 43.7.0 for the glibc environ use-after-free …
nwparker Sep 11, 2026
6252f81
fix(browser): decode Chromium SameSite storage values (135 cookies si…
brennanb2025 Sep 11, 2026
353a1c8
fix(terminal): re-run deferred tab admission when a plan installs mid…
brennanb2025 Sep 12, 2026
70a588c
fix(workspaces): complete a worktree create when a post-create step t…
brennanb2025 Sep 12, 2026
113e58f
feat(relay): support protocol 3 in cell rollout gates (#20174)
Jinwoo-H Sep 12, 2026
556a777
fix(e2e): remove four real flake sources and one caret race (#20169)
brennanb2025 Sep 12, 2026
3b13ce0
fix(source-control): pass the Antigravity prompt to agy --print (#20147)
nwparker Sep 12, 2026
76c8e91
fix(e2e): run worktree first-paint probe on a mapped window (#20197)
brennanb2025 Sep 12, 2026
f7238ce
fix(relay): bound idle rehome polling and skip disabled scans (#20203)
Jinwoo-H Sep 12, 2026
438e0f4
fix(hooks): stop orphaned managed markers from consuming user TOML (#…
nwparker Sep 12, 2026
20ab995
fix(codex): reconcile marketplace and plugin tables through the confi…
nwparker Sep 12, 2026
9f7fd9a
fix(relay): reuse canary across completed rollout batches (#20214)
Jinwoo-H Sep 12, 2026
341b13c
Restore mobile push and fix cold-start dismissals (#20068)
Jinwoo-H Sep 12, 2026
1a9a5f9
fix(cloud): tolerate sparse director errors in rollout monitor (#20238)
Jinwoo-H Sep 12, 2026
fa3d29f
feat(ai-vault-search): session search query engine over the index (#2…
Jinwoo-H Sep 12, 2026
eedd356
feat(mobile): add typed RPC operations and fence raw requests (#20018)
Jinwoo-H Sep 12, 2026
ef6eeab
fix(native-chat): shrink skill pill text (#20254)
brennanb2025 Sep 12, 2026
a05e213
fix(claude): refuse a structured model the provider does not list (#1…
brennanb2025 Sep 12, 2026
719c434
Update README downloads badge
github-actions[bot] Sep 12, 2026
923858e
perf: defer closed menus to speed up cold worktree switching (#20311)
nwparker Sep 12, 2026
7b53b5a
test: replace fixed UI waits with observable readiness (#20369)
nwparker Sep 12, 2026
de8e542
ci: reuse immutable package setup across shutdown checks (#20368)
nwparker Sep 12, 2026
57b0355
perf: index Hermes session correlation instead of rescanning history …
nwparker Sep 12, 2026
cd8e98f
fix: prevent mobile markdown parser from stalling on unsupported bloc…
nwparker Sep 12, 2026
3bc631d
perf: validate mobile review table delimiters by cell (#20317)
nwparker Sep 12, 2026
1b50924
perf: scan mobile markdown links without repeated suffix searches (#2…
nwparker Sep 12, 2026
4aa9329
ci: narrow pnpm cache keys and shallow development checkouts (#20370)
nwparker Sep 12, 2026
487d39e
perf(browser): fill plain fields in one stdin edit (#20364)
nwparker Sep 12, 2026
b357913
fix: keep landing footer menu above status bar (#20360)
nwparker Sep 12, 2026
403b62a
ci: balance existing unit and E2E shards using recorded timings (#20367)
nwparker Sep 12, 2026
e1bac25
fix(cloud): diagnose wrapped relay trust probe failures (#20403)
Jinwoo-H Sep 12, 2026
775137d
refactor(renderer): improve IPC error handling with clamped and uncla…
AmethystLiang Sep 12, 2026
cf7ce05
Make sidebar nesting easier while preserving animated reordering (#20…
nwparker Sep 12, 2026
53eb639
refactor(preload): drop the unused raw electron IPC bridge (#20419)
nwparker Sep 12, 2026
56fcb54
fix(browser): move cookie scoping off psl's stale suffix list (#20421)
nwparker Sep 12, 2026
d1309d8
fix(claude-accounts): stop path resolution from creating the config d…
makoto-developer Sep 13, 2026
ea0bdbb
perf: normalize title evidence once per label search (#20331)
nwparker Sep 13, 2026
bb5aea8
fix(runtime): GC expired proven-absent leaf PTY verdicts (#12810)
innocarpe Sep 13, 2026
f9e825e
fix(ai-vault): close OpenCode handles when query_only setup fails (#1…
bbingz Sep 13, 2026
8d38dbf
perf(wsl): release environment probe deadline timers (#20207)
OrcaWin Sep 13, 2026
541ef7a
perf(daemon): bound immediate flush queue scans (#20209)
OrcaWin Sep 13, 2026
20fb3e7
perf(mobile): normalize history scope paths once per candidate (#20210)
nwparker Sep 13, 2026
1259f3e
perf(automations): skip sorting count-only Hermes history (#20213)
OrcaWin Sep 13, 2026
9d62426
perf(chat): reuse streamed delta byte lengths (#20215)
OrcaWin Sep 13, 2026
04b4a0e
perf(files): skip unused Quick Open byte accounting (#20216)
OrcaWin Sep 13, 2026
ce82438
perf(relay): reuse host data attachment owner without inventory copie…
nwparker Sep 13, 2026
baa1cb1
perf(mobile): avoid materializing input characters on backspace (#20220)
OrcaWin Sep 13, 2026
0d11890
perf(browser): skip unneeded inventory compaction planning (#20221)
OrcaWin Sep 13, 2026
4433246
perf(usage): skip session scans for empty breakdowns (#20222)
OrcaWin Sep 13, 2026
96f0c51
perf(session): reuse persisted tab membership set (#20223)
OrcaWin Sep 13, 2026
e9dabe9
perf(diff): skip unused extension extraction during search (#20225)
OrcaWin Sep 13, 2026
56aefb5
perf(mobile): bound autocomplete substring retention (#20226)
OrcaWin Sep 13, 2026
f71f868
perf: index pending terminal reconnect tab lookups (#20229)
OrcaWin Sep 13, 2026
6a5d906
perf: skip ordinary strings in JSON structure checks (#20232)
OrcaWin Sep 13, 2026
e75b469
perf: avoid rescanning partial browser sidecar responses (#20242)
OrcaWin Sep 13, 2026
1cf38bb
perf: count local RPC request bytes incrementally (#20243)
OrcaWin Sep 13, 2026
ee1e94a
perf(history): cache numeric transcript timeline bounds (#20244)
OrcaWin Sep 13, 2026
80a22db
perf: stop heading lookup at the requested occurrence (#20246)
OrcaWin Sep 13, 2026
5de75cd
perf: defer browser search row formatting until matched (#20248)
OrcaWin Sep 13, 2026
efe5e29
perf: stop preparing over-limit palette queries (#20250)
OrcaWin Sep 13, 2026
afb43ea
perf: avoid duplicate repository directory probes (#20253)
OrcaWin Sep 13, 2026
6277dd3
perf: compile nested repository ignore patterns once (#20256)
OrcaWin Sep 13, 2026
4e40311
perf: avoid repeated model pricing name normalization (#20257)
OrcaWin Sep 13, 2026
1fe9271
perf(skills): index source ownership counts per discovery (#20259)
OrcaWin Sep 13, 2026
57c7ef5
perf(plugins): stop collection traversal at message size limit (#20260)
nwparker Sep 13, 2026
f704374
perf(history): scan legacy alternate-screen markers linearly (#20267)
OrcaWin Sep 13, 2026
a5dac28
perf: reuse skill file digest when normalized bytes match (#20268)
OrcaWin Sep 13, 2026
8713f6e
perf(native): avoid sanitizing snapshot values twice (#20271)
nwparker Sep 13, 2026
ebfedc3
perf: encode skill Git tree sort keys once (#20272)
OrcaWin Sep 13, 2026
97ea501
perf: skip decoding discarded diagnostic error bodies (#20276)
OrcaWin Sep 13, 2026
7ae8a70
perf: avoid flattening tabs for smart-sort liveness check (#20279)
OrcaWin Sep 13, 2026
1249be3
perf: accept UTF-8 text that fits the worst-case byte bound (#20286)
OrcaWin Sep 13, 2026
69c76b5
perf: bound rich Markdown comment detection and preservation scans (#…
nwparker Sep 13, 2026
a1ee808
perf(ipc): bound SSH ACK batch selection scans (#20288)
nwparker Sep 13, 2026
f1493bd
perf: avoid copying completed terminal source ranges (#20289)
OrcaWin Sep 13, 2026
51ff9c7
perf(ssh): skip terminal source spans awaiting ACK publication (#20290)
OrcaWin Sep 13, 2026
64614d7
perf: reuse diagnostic bundle byte count (#20292)
OrcaWin Sep 13, 2026
382c281
perf: normalize manifest text files once (#20294)
OrcaWin Sep 13, 2026
2593994
perf: reuse formatter within reset timestamp conversion (#20295)
OrcaWin Sep 13, 2026
37a5b37
perf: defer scrollback pruning indexes until needed (#20297)
OrcaWin Sep 13, 2026
3666c12
perf(daemon): reuse encoded unsplit NDJSON frames (#20298)
nwparker Sep 13, 2026
44df178
perf(browser): index iframe session refs for snapshot lookup (#20300)
nwparker Sep 13, 2026
c35a479
perf: reuse computed project identity in projection (#20303)
OrcaWin Sep 13, 2026
2411491
perf: stop archive size scan once over budget (#20304)
OrcaWin Sep 13, 2026
b7a1aed
perf: avoid per-item arrays in journal projection (#20305)
OrcaWin Sep 13, 2026
6f32701
perf: reuse Windows PATH normalization within merges (#20309)
OrcaWin Sep 13, 2026
627b743
perf: find path basename without splitting all segments (#20312)
OrcaWin Sep 13, 2026
99cca03
perf(ssh): copy cleanup tab map only once (#20315)
OrcaWin Sep 13, 2026
35e2986
perf: fast-path Windows arguments without escapes (#20318)
OrcaWin Sep 13, 2026
d57011f
perf(checks): bound log excerpt byte-limit checks (#20319)
OrcaWin Sep 13, 2026
3042481
perf: use native newline search in rich Markdown code stripping (#20320)
nwparker Sep 13, 2026
0d4d059
perf: stop building chat diff sections beyond preview limit (#20321)
OrcaWin Sep 13, 2026
3d64800
perf: count chat tool calls without a filtered array (#20328)
OrcaWin Sep 13, 2026
b94ecbc
perf: reject file-count labels before parsing edit patches (#20330)
OrcaWin Sep 13, 2026
91ecd32
perf(terminal): reuse bounded native snapshot byte checks (#20333)
OrcaWin Sep 13, 2026
13c0c8b
perf: select matching model IDs without sorting (#20334)
OrcaWin Sep 13, 2026
973add3
perf: remove duplicate empty-file filtering from search finalization …
OrcaWin Sep 13, 2026
597d079
perf: reuse unchanged history page byte totals (#20337)
nwparker Sep 13, 2026
5f0c5d1
perf: collect terminal snapshot replay without wrapper arrays (#20338)
OrcaWin Sep 13, 2026
230f834
perf: reuse accepted project group IDs for parent validation (#20341)
OrcaWin Sep 13, 2026
3c7c846
perf: compute check severity once per sort (#20342)
OrcaWin Sep 13, 2026
dcc1f90
perf: count bot comments without a filtered array (#20343)
OrcaWin Sep 13, 2026
0537c6e
perf: index drain migration inventories by assignment identity (#20344)
nwparker Sep 13, 2026
11fcb03
perf: avoid typed-array iteration in shared SHA-256 blocks (#20346)
OrcaWin Sep 13, 2026
c07e33b
perf: reuse shared SHA-256 for renderer fallback (#20347)
OrcaWin Sep 13, 2026
a0d26ca
perf(computer): avoid rescanning fragmented native provider replies (…
OrcaWin Sep 13, 2026
e3b72e1
perf: skip nonmatching spans in quick open fuzzy scoring (#20349)
nwparker Sep 13, 2026
6440fcc
perf: skip quick command fields that cannot improve search scores (#2…
nwparker Sep 13, 2026
8830b50
perf: reuse normalized executable during agent recognition (#20353)
OrcaWin Sep 13, 2026
e74075d
perf(localization): prefilter absent brands before regex matching (#2…
OrcaWin Sep 13, 2026
37fca54
perf: avoid copying single-chunk process output (#20355)
OrcaWin Sep 13, 2026
3896678
perf: scan chat activity lines from the end (#20356)
nwparker Sep 13, 2026
9b2b02b
perf(mobile): reuse UTF-8 prefix truncation for diagnostics (#20358)
OrcaWin Sep 13, 2026
2285971
perf(checks): bound earlier error context collection (#20211)
OrcaWin Sep 13, 2026
ef3b7e8
perf(mobile): reuse numeric collators across source control sorts (#2…
nwparker Sep 13, 2026
701dc22
perf(mobile): precompute task sort keys and reuse repository collatio…
nwparker Sep 13, 2026
cb4321d
perf(agents): avoid cloning lineage ancestor sets (#20236)
OrcaWin Sep 13, 2026
2185389
perf(plugins): reconcile shortcut conflicts once per owner (#20237)
nwparker Sep 13, 2026
dbac4e6
perf: avoid rescanning partial transcript records (#20239)
OrcaWin Sep 13, 2026
b8f1849
perf: scan markdown review lines with native newline search (#20245)
nwparker Sep 13, 2026
59d643c
perf(ai-vault): deduplicate session scan batches incrementally (#20255)
OrcaWin Sep 13, 2026
d66de72
perf: stop review acknowledgement summaries at the first readable lin…
nwparker Sep 13, 2026
490937a
perf(git): classify bulk discard paths once (#20274)
nwparker Sep 13, 2026
b1c6d53
perf: bound palette phrase placement to word starts (#20306)
nwparker Sep 13, 2026
fbab61e
perf: skip unclosed suffixes when stripping review markdown tags (#20…
nwparker Sep 13, 2026
a766df7
perf(plugins): index contributed keybindings by command (#20241)
nwparker Sep 13, 2026
a045af3
perf(mobile): precompute Linear issue sort keys (#20249)
nwparker Sep 13, 2026
824dc53
perf(chat): join transcript line fragments at record boundaries (#20278)
OrcaWin Sep 13, 2026
25d6cd7
perf(cmd-j): scan phrase word boundaries monotonically (#20282)
nwparker Sep 13, 2026
25a1259
perf(ai-vault): count recent sessions for scan cutoffs (#20301)
OrcaWin Sep 13, 2026
8641b3a
perf: remove repeated sibling scans from cyclic agent lineage cleanup…
nwparker Sep 13, 2026
b9263ea
perf: reuse pending filesystem watcher debounce timers (#20264)
OrcaWin Sep 13, 2026
de7558f
fix(editor): eliminate multi-second Markdown blank-run scans (#20231)
nwparker Sep 13, 2026
659f204
perf: avoid rescanning partial Windows desktop responses (#20235)
OrcaWin Sep 13, 2026
fee47fd
fix(chat): bound journal replay memory by live history (#20247)
nwparker Sep 13, 2026
35a5259
perf(android): queue fragmented scrcpy video packets (#20230)
OrcaWin Sep 13, 2026
7a440b1
perf(mobile): skip successful duplicate connection log saves (#20252)
nwparker Sep 13, 2026
fccc887
perf: skip impossible inline HTML comment matches during encoding (#2…
nwparker Sep 13, 2026
7b0701a
chore: remove 20.7 MiB of duplicate and unused media (#20416)
nwparker Sep 13, 2026
2d1bd1e
perf: bound whitespace normalization for tool previews (#20332)
nwparker Sep 13, 2026
0a44b29
fix(tabs): end drag gestures when the window loses focus (#20323)
OrcaWin Sep 13, 2026
90b02cb
fix(updater): open background check errors from the status bar (#20270)
OrcaWin Sep 13, 2026
101cdc4
perf(relay): sort latency samples once per percentile pair (#20427)
nwparker Sep 13, 2026
480fc20
perf(skills): test agent ownership without building a deduped list (#…
nwparker Sep 13, 2026
91143cf
perf(git): reject non-HEAD refs before sorting remotes (#20429)
nwparker Sep 13, 2026
42a2c65
perf(mobile): release consumed terminal write-queue slots (#20430)
nwparker Sep 13, 2026
471463f
perf(git): normalize tracked discard paths once per operation (#20299)
nwparker Sep 13, 2026
5127d1e
refactor(windows): vendor the registry addon as @orca/windows-registr…
nwparker Sep 13, 2026
e0e79f1
fix(resource-manager): show saved folder workspace names and groups (…
OrcaWin Sep 13, 2026
2162e31
test(relay): differential coverage for the single-pass host-data owne…
nwparker Sep 13, 2026
7e9ade7
perf(mobile): reuse Linear grouping between list and board (#20431)
nwparker Sep 13, 2026
62ae09d
chore(deps): pin serve-sim to an exact version (#20446)
nwparker Sep 13, 2026
182cd4c
Add code quality lint for type assertions (#19462)
AmethystLiang Sep 13, 2026
411843f
fix(ci): cache the vendored addon where node-gyp actually writes it (…
nwparker Sep 13, 2026
fc81355
perf: accelerate cancellable remote transcript line scanning (#20351)
OrcaWin Sep 13, 2026
bd0f882
fix(ci): match the truncated windows-process-tree virtual store dir (…
nwparker Sep 13, 2026
81c3d18
build(macos): parallelize native helpers with complete cancellation (…
espetro Sep 13, 2026
392583c
perf: skip WSL discovery when filtering native-only paths (#20266)
OrcaWin Sep 13, 2026
df375cd
perf(mobile): reuse Linear issue ordering when grouping list and boar…
nwparker Sep 13, 2026
e86cba8
build: reduce native dependency installs to the host platform (#20420)
nwparker Sep 13, 2026
f2b6434
perf(ai-vault): bound per-row bookkeeping in unlimited session scans …
nwparker Sep 13, 2026
6c1d95b
perf(tooling): reuse directory entry types in source scans (#20212)
OrcaWin Sep 13, 2026
599e669
fix(skills): evict removed runtime discovery cache (#11489)
bbingz Sep 13, 2026
8759b25
fix(automations): isolate the scheduler tick and refuse oversized cro…
nwparker Sep 13, 2026
e9065dd
fix(runtime): rank tui-idle evidence instead of inferring idle from s…
nwparker Sep 13, 2026
9a12ccd
Update README downloads badge
github-actions[bot] Sep 13, 2026
fe4237c
fix(agent-hooks): let the provider, not a keystroke, end these turns …
nwparker Sep 13, 2026
131d5ab
fix(mobile): reuse current workspace on notification taps (#20310)
Jinwoo-H Sep 13, 2026
a1d135e
fix(ai-vault): re-read a transcript rewritten to its previous size (#…
Jinwoo-H Sep 13, 2026
fdf16ff
fix(sidebar): show agent activity before workspace activation (#20398)
Jinwoo-H Sep 13, 2026
bc5e676
test(rpc): add a compile-time params catalog parity gate (#20281)
Jinwoo-H Sep 13, 2026
c6548b9
test(scripts): widen the Windows shim ratchet to catch package bin sp…
Jinwoo-H Sep 13, 2026
8999a00
refactor(native-chat): give each structured dispatch state exactly on…
brennanb2025 Sep 13, 2026
ca2356c
feat(native-chat): decide a restart-stranded send against provider hi…
brennanb2025 Sep 13, 2026
b1f7085
release: v1.4.202
github-actions[bot] Sep 13, 2026
61b0055
Merge commit 'b1f7085315542b37f7726f3df03a72539cafa540' into zpyoung/…
zpyoung Sep 14, 2026
0436b84
sync: resolve file ownership for v1.4.202
zpyoung Sep 14, 2026
fc16479
sync: repair -X ours damage and re-home the v1.4.202 seams
zpyoung Sep 14, 2026
d076e80
chore(fork-ownership): declare the v1.4.202 seams and re-measure resi…
zpyoung Sep 14, 2026
8b45af2
chore(fork-ownership): declare the import-swap in v1.4.202's new comp…
zpyoung Sep 14, 2026
4876fda
fix(sync): meet v1.4.202's four new CI contracts
zpyoung Sep 14, 2026
658b87b
fix(sync): realign the fork's mid-draft picker cases with v1.4.202
zpyoung Sep 14, 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
  •  
  •  
  •  
7 changes: 7 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,13 @@
# the reviewable change, and pin LF because they are compared byte-for-byte.
# Not -diff: the shell diff is the review surface when a wrapper does change.
/src/main/__fixtures__/shell-wrapper-snapshots/*.txt linguist-generated=true text eol=lf
# Captured agent PTY transcripts. -text, not `text eol=lf` like the wrapper snapshots above:
# these carry real CR and CRLF bytes as the terminal emitted them, and line-ending
# normalisation on a Windows checkout would rewrite the evidence the fixture exists to be.
/src/main/runtime/__fixtures__/*.txt -text
# Generated runtime English subset: compared byte-for-byte by
# verify:localization-runtime-catalog, so a CRLF checkout would fail the gate.
/src/renderer/src/i18n/en-runtime-required.json linguist-generated=true text eol=lf
# Generated method->params catalog: compared byte-for-byte by
# verify:rpc-params-catalog, so a CRLF checkout would fail the gate.
/src/shared/rpc-contract/rpc-params-catalog.generated.ts linguist-generated=true text eol=lf
5 changes: 5 additions & 0 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,11 @@ pnpm install
pnpm dev
```

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.
See [the install policy](../docs/reference/pnpm-install-policy.md).

## Branch Naming

Use a clear, descriptive branch name that reflects the change.
Expand Down
28 changes: 13 additions & 15 deletions .github/actions/install-node-dependencies/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,10 @@ inputs:
description: Node.js version override; defaults to the version declared in package.json.
required: false
default: ''
cache-dependency-path:
description: Lockfiles for the pnpm download store; include mobile/pnpm-lock.yaml only when the job installs mobile dependencies.
required: false
default: pnpm-lock.yaml
persist-native-cache:
description: Save restored native modules at job end. Set false when a later step overwrites the same path with a different ABI.
required: false
Expand Down Expand Up @@ -39,19 +43,15 @@ runs:
with:
install: false

# Why both lockfiles: setup-node keys the pnpm store on the root lockfile alone, so
# jobs that also install mobile restored a store with none of the React Native tree
# in it and re-downloaded the lot on every run.
# Desktop-only jobs should not miss their download cache when mobile dependencies change.
- name: Setup Node.js
id: default-node
if: inputs.node-version == ''
uses: actions/setup-node@v6
with:
node-version-file: package.json
cache: pnpm
cache-dependency-path: |
pnpm-lock.yaml
mobile/pnpm-lock.yaml
cache-dependency-path: ${{ inputs.cache-dependency-path }}

- name: Setup requested Node.js
id: requested-node
Expand All @@ -60,9 +60,7 @@ runs:
with:
node-version: ${{ inputs.node-version }}
cache: pnpm
cache-dependency-path: |
pnpm-lock.yaml
mobile/pnpm-lock.yaml
cache-dependency-path: ${{ inputs.cache-dependency-path }}

- name: Validate native runtime
shell: bash
Expand Down Expand Up @@ -152,9 +150,9 @@ runs:
with:
path: |
node_modules/.pnpm/node-pty@*/node_modules/node-pty/build
node_modules/.pnpm/windows-native-registry@*/node_modules/windows-native-registry/build
node_modules/.pnpm/@vscode+windows-process-tree@*/node_modules/@vscode/windows-process-tree/build
key: native-modules-${{ runner.os }}-${{ steps.native-cache-scope.outputs.scope }}-${{ runner.arch }}-${{ inputs.native-runtime }}-node${{ steps.requested-node.outputs.node-version || steps.default-node.outputs.node-version }}-${{ hashFiles('pnpm-lock.yaml', '.github/actions/install-node-dependencies/action.yml', 'config/scripts/ensure-native-runtime.mjs', 'config/scripts/rebuild-native-deps.mjs', 'config/patches/node-pty@1.1.0.patch', 'config/patches/@vscode__windows-process-tree@0.8.0.patch') }}
native/windows-registry/build
node_modules/.pnpm/@vscode+windows-process-tre*/node_modules/@vscode/windows-process-tree/build
key: native-modules-${{ runner.os }}-${{ steps.native-cache-scope.outputs.scope }}-${{ runner.arch }}-${{ inputs.native-runtime }}-node${{ steps.requested-node.outputs.node-version || steps.default-node.outputs.node-version }}-${{ hashFiles('pnpm-lock.yaml', '.github/actions/install-node-dependencies/action.yml', 'config/scripts/ensure-native-runtime.mjs', 'config/scripts/rebuild-native-deps.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') }}

- name: Restore compiled native modules without saving
id: native-cache-restore-only
Expand All @@ -163,9 +161,9 @@ runs:
with:
path: |
node_modules/.pnpm/node-pty@*/node_modules/node-pty/build
node_modules/.pnpm/windows-native-registry@*/node_modules/windows-native-registry/build
node_modules/.pnpm/@vscode+windows-process-tree@*/node_modules/@vscode/windows-process-tree/build
key: native-modules-${{ runner.os }}-${{ steps.native-cache-scope.outputs.scope }}-${{ runner.arch }}-${{ inputs.native-runtime }}-node${{ steps.requested-node.outputs.node-version || steps.default-node.outputs.node-version }}-${{ hashFiles('pnpm-lock.yaml', '.github/actions/install-node-dependencies/action.yml', 'config/scripts/ensure-native-runtime.mjs', 'config/scripts/rebuild-native-deps.mjs', 'config/patches/node-pty@1.1.0.patch', 'config/patches/@vscode__windows-process-tree@0.8.0.patch') }}
native/windows-registry/build
node_modules/.pnpm/@vscode+windows-process-tre*/node_modules/@vscode/windows-process-tree/build
key: native-modules-${{ runner.os }}-${{ steps.native-cache-scope.outputs.scope }}-${{ runner.arch }}-${{ inputs.native-runtime }}-node${{ steps.requested-node.outputs.node-version || steps.default-node.outputs.node-version }}-${{ hashFiles('pnpm-lock.yaml', '.github/actions/install-node-dependencies/action.yml', 'config/scripts/ensure-native-runtime.mjs', 'config/scripts/rebuild-native-deps.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') }}

# pnpm's bundled gyp_main.py is not executable on fresh Linux runners.
- name: Use external node-gyp
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/adhoc-mac-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -160,16 +160,14 @@ jobs:

- name: Checkout the requested ref
uses: actions/checkout@v6
env:
# Full-history checkout must also preserve case-twin branch and tag names.
GIT_DEFAULT_REF_FORMAT: reftable
with:
# Why an input at all rather than just github.ref: the whole point is to
# build code that has not landed, and the workflow definition itself
# always comes from the dispatch ref — naming the branch here instead
# applies main's current copy of this file to an arbitrary branch.
ref: ${{ steps.vetted.outputs.sha }}
fetch-depth: 0
# Version helpers only read HEAD; published versions come from the release API.
fetch-depth: 1
# This job only reads stablyai/orca and never pushes; every write goes
# to the adhoc repo through a minted App token passed by env. Not
# persisting the checkout credential shrinks the blast radius if a build
Expand Down Expand Up @@ -197,13 +195,15 @@ jobs:
restore-keys: |
electron-builder-mac-

# Why both CPUs: the mac config packages x64 and arm64 from this arm64
# runner, so the install must carry both variants of the native optional deps.
- name: Install dependencies
uses: nick-fields/retry@v4
with:
timeout_minutes: 10
max_attempts: 3
retry_wait_seconds: 30
command: pnpm install --frozen-lockfile
command: pnpm install --frozen-lockfile --cpu=current,x64,arm64

# Why: signing is what makes an adhoc build installable over an existing
# Orca, so a missing cert must fail here rather than after a 20-minute build.
Expand Down
14 changes: 12 additions & 2 deletions .github/workflows/cloud-deploy-relay-production-director.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,11 @@ on:
default: preserve
type: choice
options: [preserve, enable, disable]
region-correction-cohort-percent:
description: 'Preserve the measured-correction cohort, or set an integer 0–100; durable rehome stays disabled'
required: true
default: preserve
type: string
prune-incompatible-revisions:
description: Retain only the newly verified serving and rollback revisions
required: true
Expand Down Expand Up @@ -62,6 +67,7 @@ jobs:
REGIONAL_PLACEMENT_SECRET: orca-cloud-relay-regional-placement-enabled
IMAGE_DIGEST: ${{ inputs.image-digest }}
REGIONAL_PLACEMENT_MODE: ${{ inputs.regional-placement-mode }}
REGION_CORRECTION_COHORT_PERCENT: ${{ inputs.region-correction-cohort-percent }}
PRUNE_INCOMPATIBLE_REVISIONS: ${{ inputs.prune-incompatible-revisions }}
# Floor the served revision must keep, matching relay_min_instances in
# environments/production.tfvars. This gate only fails a bad deploy; Terraform
Expand Down Expand Up @@ -106,8 +112,11 @@ jobs:
echo "image-digest must be an immutable lowercase sha256 digest" >&2
exit 1
fi
if test "${REGION_CORRECTION_COHORT_PERCENT}" != preserve; then
[[ "${REGION_CORRECTION_COHORT_PERCENT}" =~ ^([0-9]|[1-9][0-9]|100)$ ]]
fi
IMAGE="${IMAGE_REPOSITORY}@${IMAGE_DIGEST}"
SERVED_DIGEST="$(gcloud artifacts docker images describe "${IMAGE}" --format='value(image_summary.digest)')"
SERVED_DIGEST="$(gcloud artifacts docker images describe "${IMAGE}" --project "${GCP_PROJECT_ID}" --format='value(image_summary.digest)')"
test "${SERVED_DIGEST}" = "${IMAGE_DIGEST}"
[[ "${PRUNE_INCOMPATIBLE_REVISIONS}" =~ ^(true|false)$ ]]
[[ "${EXPECTED_REHOME_GENERATION}" =~ ^(0|[1-9][0-9]*)$ ]]
Expand Down Expand Up @@ -218,7 +227,8 @@ jobs:
--max-instances "${DIRECTOR_MAX_INSTANCES}" \
--prune-revisions "${PRUNE_INCOMPATIBLE_REVISIONS}" \
--release-id "${RELEASE_ID}" \
--regional-placement-secret-version "${target_version}"
--regional-placement-secret-version "${target_version}" \
--region-correction-cohort-percent "${REGION_CORRECTION_COHORT_PERCENT}"
echo "REGIONAL_PLACEMENT_ENABLED=${desired}" >> "${GITHUB_ENV}"
echo "REGIONAL_PLACEMENT_VERSION=${target_version}" >> "${GITHUB_ENV}"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,8 +67,8 @@ jobs:
[[ "${TARGET_IMAGE_DIGEST}" =~ ^sha256:[a-f0-9]{64}$ ]]
[[ "${ROLLBACK_IMAGE_DIGEST}" =~ ^sha256:[a-f0-9]{64}$ ]]
test "${TARGET_IMAGE_DIGEST}" != "${ROLLBACK_IMAGE_DIGEST}"
[[ "${TARGET_REHOME_PROTOCOL}" =~ ^[01]$ ]]
[[ "${ROLLBACK_REHOME_PROTOCOL}" =~ ^[01]$ ]]
[[ "${TARGET_REHOME_PROTOCOL}" =~ ^(0|1|3)$ ]]
[[ "${ROLLBACK_REHOME_PROTOCOL}" =~ ^(0|1|3)$ ]]
[[ "${EXPECTED_SELECTOR_GENERATION}" =~ ^(0|[1-9][0-9]*)$ ]]
[[ "${EXPECTED_REHOME_GENERATION}" =~ ^(0|[1-9][0-9]*)$ ]]
[[ "${WAVE_INDEX}" =~ ^[0-3]$ ]]
Expand Down Expand Up @@ -599,7 +599,7 @@ jobs:
| jq -e '.control.enabled == false' >/dev/null

- name: Prove exact per-host trust and idempotent no-neighbor behavior
if: ${{ inputs.mode != 'verify' && ((inputs.mode == 'rollback' && inputs.rollback-rehome-protocol == '1') || (inputs.mode != 'rollback' && inputs.target-rehome-protocol == '1')) }}
if: ${{ inputs.mode != 'verify' && ((inputs.mode == 'rollback' && inputs.rollback-rehome-protocol != '0') || (inputs.mode != 'rollback' && inputs.target-rehome-protocol != '0')) }}
env:
ORCA_RELAY_ADMIN_ID_TOKEN: ${{ steps.post-auth.outputs.id_token }}
run: |
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/cloud-deploy-relay-production-same-cap.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,13 +26,13 @@ on:
required: true
default: '1'
type: choice
options: ['0', '1']
options: ['0', '1', '3']
rollback-rehome-protocol:
description: Exact rollback regional-rehome protocol
required: true
default: '0'
type: choice
options: ['0', '1']
options: ['0', '1', '3']
expected-selector-generation:
description: Exact selector generation before the first cell
required: true
Expand Down Expand Up @@ -62,7 +62,7 @@ on:
required: false
type: string
canary-run-id:
description: Successful same-commit canary run required for batch-apply
description: Successful same-code canary in this rehome control generation; reusable across batches
required: false
type: string
confirmation:
Expand Down
Loading
Loading