Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
275 commits
Select commit Hold shift + click to select a range
ce2f75e
refactor(mobile): the live input's composing range comes from a platf…
Jinwoo-H Sep 26, 2026
d1eb64e
fix(editor): use the bundled ABAP grammar (#22417)
nwparker Sep 26, 2026
2ed6505
fix(native-chat): preserve current pane ownership through toggles and…
OrcaWin Sep 26, 2026
14087c8
Accept repeated leading BOMs in agent hooks (#22414)
nwparker Sep 26, 2026
7889a25
fix(cli): preserve the WSL distro when adding managed accounts (#22418)
nwparker Sep 26, 2026
9d5591b
fix(jira): bypass collection caches on explicit refresh (#22419)
nwparker Sep 26, 2026
7d4413b
fix(pdf): keep the search counter in sync with selected matches (#22420)
nwparker Sep 26, 2026
18d00cc
fix(projects): refresh stale automatic GitHub icons during enrichment…
nwparker Sep 26, 2026
f851d18
Preserve Kimi config permissions (#22422)
nwparker Sep 26, 2026
094fbef
fix(toast): keep folder errors above standard modal backdrops (#22423)
nwparker Sep 26, 2026
d929bd8
Keep large Windows file identities distinct (#22424)
nwparker Sep 26, 2026
15baf86
fix(agents): honor environment prefixes in generation commands (#22427)
nwparker Sep 26, 2026
27ca6a2
test(mobile): repin RPC goldens to main after #22956's squash (#23046)
Jinwoo-H Sep 26, 2026
d06b43e
fix(tasks): read a malformed saved Linear team selection as sticky-al…
OrcaWin Sep 26, 2026
067975b
fix(native-chat): every lease latch has a way to die (#22820)
brennanb2025 Sep 26, 2026
f6eab38
fix(types): describe command environments independently of Expo globa…
OrcaWin Sep 26, 2026
e13631e
Prioritize workspace opening over replacement checkout preparation (#…
nwparker Sep 26, 2026
aed59a7
chore(i18n): translate 113 new keys to es/fr/ja/ko/zh (#23067)
AmethystLiang Sep 26, 2026
85ac14e
fix(codex): retain runtime MCP entries without losing revocation (#22…
nwparker Sep 26, 2026
58d1ff3
Provide the Orca CLI automatically in managed WSL terminals (#22761)
OrcaWin Sep 26, 2026
457a84d
fix(mobile): label direct paths with the shared Tailscale check (#23039)
Jinwoo-H Sep 26, 2026
f0a3610
test(terminal): re-pin the pane hook-order parity past #23049 (#23090)
Jinwoo-H Sep 26, 2026
82412da
Persist profile state in SQLite with background writes (#22612)
OrcaWin Sep 26, 2026
49d7ed3
fix(native-chat): keep chat visible when detaching its pane (#23096)
OrcaWin Sep 26, 2026
38bcdf7
perf(ci): reduce queue pressure without paid runners (#23053)
OrcaWin Sep 26, 2026
6fc3cdc
Bundle Bun for headless Orca and profile persistence (#22635)
OrcaWin Sep 26, 2026
d9bc757
fix(terminal): a remounted new SSH tab keeps the shell its old pane w…
OrcaWin Sep 26, 2026
df8164f
fix(sidebar): "Hide default branch" hides a folder project's root wor…
OrcaWin Sep 26, 2026
029b5ba
fix(startup): hold desktop activations until the startup window exist…
OrcaWin Sep 26, 2026
80ff6c4
fix(startup): read the install-dir package ACL as SDDL so a repaired …
OrcaWin Sep 26, 2026
4cafa50
fix(windows): reuse shared PowerShell literal quoting at every hand-r…
OrcaWin Sep 26, 2026
9b30c7f
ci: verify mobile disposal and balance unit-test costs (#23114)
OrcaWin Sep 26, 2026
0a5e73e
Leave Open Settings unbound by default (#23136)
nwparker Sep 26, 2026
2afb9a3
fix(terminal): damp park-verdict churn that is too slow to burst (#20…
OrcaWin Sep 26, 2026
d17a176
Reduce redundant CI runs, pnpm uploads, and fixture startups (#23145)
OrcaWin Sep 26, 2026
8b7a2a5
Wait for foreground job readiness before testing Ctrl-Z (#23158)
OrcaWin Sep 26, 2026
d9d5993
fix(markdown): return focus to editor from find bar (#23175)
nwparker Sep 26, 2026
d3434a2
Improve pull request template for issue linking
nwparker Sep 26, 2026
9700030
refactor(pty): make renderer delivery optional for headless runtimes …
OrcaWin Sep 26, 2026
3a081ab
fix(persistence): reclaim Windows profile locks after PID reuse (#23122)
OrcaWin Sep 26, 2026
f24ed20
perf(chat): share matching concurrent transcript reads (#23172)
nwparker Sep 26, 2026
711bacd
perf(editor): skip unchanged draft publications (#23173)
nwparker Sep 26, 2026
d20cb69
Optimize CI follow-up workflows (#23190)
OrcaWin Sep 26, 2026
da6d483
fix(vault): read OpenCode SQLite inside WSL and SSH hosts (#23128)
OrcaWin Sep 26, 2026
0bad8b7
Better add ai notes ui (#21719)
AmethystLiang Sep 26, 2026
0647e6d
fix(i18n): correct duration and turn-status copy across locales (#23243)
AmethystLiang Sep 26, 2026
3990076
Update README downloads badge
github-actions[bot] Sep 26, 2026
a85057e
Simplify filter-flatMap patterns to single flatMap operations (#23242)
AmethystLiang Sep 26, 2026
f4557bf
fix(renderer): release retired store snapshots from selector caches (…
OrcaWin Sep 26, 2026
ba3217f
Cancel abandoned renderer-owned reads (#22986)
nwparker Sep 26, 2026
dd46f51
perf(terminal): avoid intermediate history frame buffers (#23005)
nwparker Sep 26, 2026
1fc0bfe
perf(relay): share concurrent readiness probes (#23012)
nwparker Sep 26, 2026
89d4dd8
perf(terminal): scan synchronized markers in linear work (#23015)
nwparker Sep 26, 2026
148296e
perf(relay): skip abandoned queued control activation (#23029)
nwparker Sep 26, 2026
3edab01
perf(editor): skip unchanged cursor-line store writes (#22983)
nwparker Sep 26, 2026
96c6889
fix: route hook files through their stored repository owner (#23184)
nwparker Sep 26, 2026
8416e8d
refactor(persistence): retire ordinary JSON profile writes (#23202)
OrcaWin Sep 26, 2026
69aa9e7
Release failed filesystem watcher setup records (#22995)
nwparker Sep 26, 2026
753d959
perf(renderer): release unrelated state during cache saves (#23021)
nwparker Sep 26, 2026
60557ba
perf: avoid duplicate base64 decode on SSH uploads (#23093)
nwparker Sep 26, 2026
efb5d24
perf: avoid copying unchanged artifact share records (#23141)
nwparker Sep 26, 2026
b65dbe2
fix: stop retired folder watchers from starting Git upgrades (#23144)
nwparker Sep 26, 2026
10b3d84
perf: build browser settings search catalog once per render (#23155)
nwparker Sep 26, 2026
ecf4c95
perf: reuse Muse usage filters within each snapshot (#23179)
nwparker Sep 26, 2026
8abd25e
perf: reuse target membership within folder lineage filtering (#23185)
nwparker Sep 26, 2026
38e3f0d
fix: preserve conflicting folders when local import creation fails (#…
nwparker Sep 26, 2026
f7354fb
fix: release chunked download resources with their renderer (#23108)
nwparker Sep 26, 2026
37d87a2
fix: close file watcher probes after failed writes (#23124)
nwparker Sep 26, 2026
1a982c2
perf: retire removed worktree head failure markers (#23135)
nwparker Sep 26, 2026
2819faa
fix: reject expired updater feed selections (#23160)
nwparker Sep 26, 2026
8b1ac1d
Release cursor positions with editor tab ownership (#22988)
nwparker Sep 26, 2026
818237b
fix: stop retired relay load connections from rescheduling refreshes …
nwparker Sep 26, 2026
b9f7678
perf(persistence): serialize selective SQLite saves once (#23171)
nwparker Sep 26, 2026
668fa71
Release SQLite transaction queues when startup fails (#22993)
nwparker Sep 26, 2026
ded0c39
perf: reuse fresh selected folder checks on unrelated expiry (#23087)
nwparker Sep 26, 2026
15aa886
fix: stop abandoned local attachment checks after composer unmount (#…
nwparker Sep 26, 2026
681f3ca
perf: stream the packaged browser installer checksum in CI (#23082)
nwparker Sep 26, 2026
7468e9c
release: v1.4.214
github-actions[bot] Sep 26, 2026
0d7659d
fix(relay): release capacity wait abort listeners (#23188)
OrcaWin Sep 26, 2026
f6631dd
fix(daemon): release terminal attach cancellation listeners (#23191)
OrcaWin Sep 26, 2026
0daa175
fix(claude): release permission prompt abort listeners (#23195)
OrcaWin Sep 26, 2026
abc4cb0
perf: preserve terminal previews across unrelated settings updates (#…
nwparker Sep 26, 2026
7474da4
fix(i18n): clarify the recipient of diff notes (#23256)
OrcaWin Sep 26, 2026
dbe34c2
fix: observe linked-issue failures during review generation (#23166)
nwparker Sep 26, 2026
71344de
Scope relay capacity checks to the requested cell (#23036)
nwparker Sep 26, 2026
f17c6fc
perf(emulator): stop obsolete video streams after renderer reloads (#…
nwparker Sep 26, 2026
698e458
perf(native-chat): release obsolete transcript viewers after reloads …
nwparker Sep 26, 2026
811b1ce
perf: skip unused Linux accessibility child enumeration (#23085)
nwparker Sep 26, 2026
fe50f3e
fix: release dictation session listeners when speech workers exit (#2…
nwparker Sep 26, 2026
b42de17
Implement responsive browser toolbar overflow with tool folding (#23265)
AmethystLiang Sep 26, 2026
f7abecd
fix: release file watches when their renderer document ends (#23055)
nwparker Sep 26, 2026
4b6fe95
fix(windows): preserve relocated terminals and native process scans (…
OrcaWin Sep 26, 2026
be5d10c
Cancel abandoned relay search work (#22997)
nwparker Sep 26, 2026
5f72c54
fix: bind filesystem root grants to their repository owner (#23206)
nwparker Sep 26, 2026
1554f15
fix: close abandoned static web asset readers (#23062)
nwparker Sep 26, 2026
3ab183d
fix: stop stale runtime event work after renderer cleanup (#23066)
nwparker Sep 26, 2026
b4717f0
fix: honor canonical SSH ownership in worktree listings (#23198)
nwparker Sep 26, 2026
10cfe92
test: target writer timeouts and diagnose Bun startup stalls (#23267)
OrcaWin Sep 26, 2026
28d617d
fix: close abandoned PDF.js development asset streams (#23054)
nwparker Sep 26, 2026
dffb349
fix(ci): preserve focused Playwright file selection (#23270)
OrcaWin Sep 26, 2026
4c38cab
fix(windows): synchronize native terminal table lifetime (#23257)
OrcaWin Sep 26, 2026
8f17358
fix: refresh strict Gitea lookups and synchronize Windows PTY access …
nwparker Sep 26, 2026
408499e
Keep SSH terminals parked after their own workspace updates (#23193)
OrcaWin Sep 26, 2026
003b37d
perf: cap shared-path scans and synchronize Windows PTY access (#23194)
nwparker Sep 26, 2026
34d055c
perf(relay): release canceled AI Vault startup requests (#23027)
nwparker Sep 26, 2026
ee6281f
fix: dispose OpenCode 2 hooks after prompt setup and cleanup failures…
nwparker Sep 26, 2026
47ddfbd
feat: let users choose JSON or SQLite when profile copies diverge (#2…
OrcaWin Sep 27, 2026
7a4f833
ci: shard SSH Docker coverage and warm Windows native caches (#23286)
OrcaWin Sep 27, 2026
a86fae0
Support mouse Back/Forward buttons in shortcuts (#23287)
nwparker Sep 27, 2026
6433c3c
fix(ssh): preserve interrupted installation outcomes through retries …
OrcaWin Sep 27, 2026
cdff2a6
Update README downloads badge
github-actions[bot] Sep 27, 2026
5b11834
fix(editor): preserve Markdown source across rich edits (#23280)
nwparker Sep 27, 2026
46907de
fix(ssh): recover abandoned caches without deleting live dependencies…
OrcaWin Sep 27, 2026
3eb1ade
ci: reuse fixture setup and scope localization extraction (#23291)
OrcaWin Sep 27, 2026
375c027
perf: bound wildcard segment work in nested repository scans (#23149)
nwparker Sep 27, 2026
da95225
perf(push): keep retention sweeps from overlapping without slowing th…
nwparker Sep 27, 2026
a2325bb
fix(worktrees): clear orphan cleanup on BusyBox WSL distros (#23296)
nwparker Sep 27, 2026
1882458
ci: scope orcad smoke and parallelize Linux packages (#23314)
OrcaWin Sep 27, 2026
fed613b
perf: avoid rescanning partial notebook output frames (#23138)
nwparker Sep 27, 2026
98cfdc8
fix(kimi): don't crash if config.toml is deleted mid-write (#23293)
nwparker Sep 27, 2026
067844b
fix(design-system): replace hand-rolled diff draft-card shadow with s…
nwparker Sep 27, 2026
1d2c0e5
perf(mobile): coalesce stalled connection log persistence (#22973)
nwparker Sep 27, 2026
080c4ad
fix(ssh): name the missing unzip when Bun archive extraction cannot s…
nwparker Sep 27, 2026
21170c6
perf: avoid repeatedly encoding retained VM recipe output (#23048)
nwparker Sep 27, 2026
1f00eae
perf(history): coalesce tombstone directory rescans (#23031)
nwparker Sep 27, 2026
1526d41
fix(terminal): recognize a Git Bash launcher by its install layout (#…
nwparker Sep 27, 2026
b5dec85
ci: reuse mobile web route analysis and skip unrelated mobile tests (…
OrcaWin Sep 27, 2026
2ce47d9
fix(browser): accept dotted hostnames with explicit ports (#23318)
nwparker Sep 27, 2026
23e5e77
fix(grok): show zero usage for an explicit zero quota (#23321)
nwparker Sep 27, 2026
fa36422
fix(terminal): retain Japanese middle dots and tildes in file links (…
nwparker Sep 27, 2026
1c982ff
fix(packaging): exclude root notes from app files (#23326)
nwparker Sep 27, 2026
c3c53f1
fix(sidebar): show unread emphasis in compact agent rows (#23327)
nwparker Sep 27, 2026
f41cecc
fix(search): keep commas inside grouped file filters (#23319)
nwparker Sep 27, 2026
fddf8c8
feat(editor): highlight Typst files and diffs (#23323)
nwparker Sep 27, 2026
7438bc8
fix(orchestration): deliver dispatch mail and replies to the current …
nwparker Sep 27, 2026
41607a9
fix(sidebar): preserve list focus when selecting workspaces (#23320)
nwparker Sep 27, 2026
459410a
Preserve Hermes YAML configuration during hook installation (#23324)
nwparker Sep 27, 2026
9f5a8a5
Reuse mobile recording compilation and refresh desktop CI timings (#2…
OrcaWin Sep 27, 2026
bdb897b
Respect disabled OpenCode variants and refresh WSL settings safely (#…
nwparker Sep 27, 2026
f5f537e
Revert "Support mouse Back/Forward buttons in shortcuts (#23287)" (#2…
AmethystLiang Sep 27, 2026
dc8f623
fix: retire stale review lookups after cache invalidation (#23182)
nwparker Sep 27, 2026
7505e55
perf: share pending plugin translation startup requests (#23133)
nwparker Sep 27, 2026
7ac9c8d
perf: skip macOS DNS probes for unrelated errors (#23121)
nwparker Sep 27, 2026
ccd1e87
Overlap independent CI checks with native Actions background steps (#…
OrcaWin Sep 27, 2026
172083f
fix: remove PDF export temp files after setup failures (#23130)
nwparker Sep 27, 2026
6ccfc12
fix: preserve newer pull request lookup ownership (#23119)
nwparker Sep 27, 2026
5da18e1
fix: preserve newer hosted review lookup ownership (#23126)
nwparker Sep 27, 2026
487bad2
fix(homebrew): remove deprecated URL verification parameter (#23365)
nwparker Sep 27, 2026
d8e2a69
ci: overlap package preparation and security scans; share localizatio…
OrcaWin Sep 27, 2026
c3ff93f
fix(editor): highlight Twig templates in files and diffs (#23366)
nwparker Sep 27, 2026
fc69ec1
perf(github): coalesce stronger refreshes after pending requests (#22…
nwparker Sep 27, 2026
90bae01
fix(editor): highlight Solidity files (#20928)
anajuliabit Sep 27, 2026
fbeaec6
Avoid store updates for unchanged SSH repository catalogs (#23034)
nwparker Sep 27, 2026
25c3ac4
ci: overlap shell setup, localization extraction, and mobile route pr…
OrcaWin Sep 27, 2026
d301658
fix: exclude canonical SSH roots from local file access (#23196)
nwparker Sep 27, 2026
8e6c071
perf: skip store notifications for unchanged project and folder catal…
nwparker Sep 27, 2026
8da0ca5
perf(relay): release rejected first-frame connections [trade-off] (#2…
nwparker Sep 27, 2026
268f0e9
fix(projects): enrich git remote identity for runtime-addressed repo …
nwparker Sep 27, 2026
bc78acc
fix(editor): detect all bundled Monaco language associations (#23371)
nwparker Sep 27, 2026
983250a
fix: await queued Codex trust preflight completion (#23148)
nwparker Sep 27, 2026
47cebbf
ci: use ARM unit runners, overlap web builds, and reuse verifier fixt…
OrcaWin Sep 27, 2026
93d8b1f
fix(ssh): complete keyboard-interactive MFA prompt handling (#15588)
Chihen-Tai Sep 27, 2026
17690e6
style: settle oxfmt 0.70 drift and stop formatting vendored licences …
nwparker Sep 27, 2026
c15f082
ci: build independent Electron targets together for E2E (#23378)
OrcaWin Sep 27, 2026
0697014
fix(persistence): report a discarded cross-host repo update instead o…
nwparker Sep 27, 2026
27b823f
ci: compile the E2E CLI once for all consumers (#23384)
OrcaWin Sep 27, 2026
0a876b2
feat(activity): reveal threads in floating terminal workspace (#23239)
AmethystLiang Sep 27, 2026
b8ef5fc
fix(native-chat): let the "Asked" row unfold a long question (#22941)
brennanb2025 Sep 27, 2026
6c75837
Update README downloads badge
github-actions[bot] Sep 27, 2026
d972bac
fix(workspace): a restored workspace paints before its terminals reco…
brennanb2025 Sep 27, 2026
484598b
fix(terminal): retry first-terminal seeding until a decision applies …
brennanb2025 Sep 27, 2026
9795563
fix(runtime): register phone terminal subscriptions when the request …
brennanb2025 Sep 27, 2026
aeb96ab
fix(native-chat): close only the reopened chat when main closes its t…
brennanb2025 Sep 27, 2026
bdaf9a3
fix(agent-launch): move only the requesting client's view to a launch…
brennanb2025 Sep 27, 2026
3f1bf68
perf: preserve matching General settings sections during search (#23177)
nwparker Sep 27, 2026
a4b60c2
test(windows): stop the NSIS capability probe failing on a slow Power…
nwparker Sep 27, 2026
eaa6fb7
Tab opening ranking (#23435)
AmethystLiang Sep 27, 2026
32668c3
perf: preserve matching Accounts settings sections during search (#23…
nwparker Sep 27, 2026
ef987e4
feat(analytics): persist local usage session identities (#18759)
blaksmatic Sep 27, 2026
838769d
fix(linear): accept team keys that start with a digit (#23423)
leilei3167 Sep 27, 2026
0547b32
test(usage): add long-context token fields to the Codex fixture (#23478)
Jinwoo-H Sep 27, 2026
10807d8
test(e2e): stabilize terminal shortcut Kitty and Ctrl+C tests (#23472)
Jinwoo-H Sep 27, 2026
618a8b0
fix(terminal): keep a dead app's input modes recoverable after a refu…
Jinwoo-H Sep 27, 2026
f72079b
fix(mobile): send typed question answers as structured answers (#23458)
brennanb2025 Sep 27, 2026
993183a
fix(terminal): every explicit terminal close commits through one main…
brennanb2025 Sep 27, 2026
161bdf9
fix(bench): load benchmark modules under test through jiti (#23482)
nwparker Sep 27, 2026
433986f
fix(runtime): read Codex readiness from the live screen (#23475)
Jinwoo-H Sep 27, 2026
fb51e6c
Speed up Markdown document discovery with bundled ripgrep (#23306)
nwparker Sep 27, 2026
2984764
test(e2e): fix failures and improve stability (#23480)
AmethystLiang Sep 27, 2026
b61797d
fix(agent-trust): bound the remaining Codex trust writes a launch wai…
nwparker Sep 27, 2026
da57f47
fix(native-chat): say a refused chat write in plain words, and keep i…
brennanb2025 Sep 27, 2026
89cf55d
fix(agent-launch): report a launch that failed before spawning as fai…
brennanb2025 Sep 27, 2026
7a3735f
fix(native-chat): let a multi-question ask record list its questions …
brennanb2025 Sep 28, 2026
d6336be
ci(e2e): run the SSH browser route e2e when its source changes (#23498)
brennanb2025 Sep 28, 2026
6c56c0a
fix(browser): a failed SSH route keeps its card while the host redial…
brennanb2025 Sep 28, 2026
dd90b31
fix: identify partial-clone repositories from the correct remote (#23…
nwparker Sep 28, 2026
5a8237a
Browser tab placement review (#23462)
AmethystLiang Sep 28, 2026
bf91941
fix(mobile): release streams whose ready arrives after a replayed can…
brennanb2025 Sep 28, 2026
bc7a17f
fix(runtime): register phone tab-list streams when the request arrive…
brennanb2025 Sep 28, 2026
0b2dd0a
fix(runtime): let the phone end a terminal stream by the request that…
brennanb2025 Sep 28, 2026
a879713
fix(terminal): stop a resume note from blanking a live remote agent p…
Jinwoo-H Sep 28, 2026
992bad5
refactor(agent-resume): give each resume-note reader its own named ch…
Jinwoo-H Sep 28, 2026
bfe476f
fix(native-chat): a message is accepted, then delivered (#22821)
brennanb2025 Sep 28, 2026
cdf9f6e
fix(mobile): native desktop-mode keyboard lift stays on screen; metri…
Jinwoo-H Sep 28, 2026
2119730
fix(terminal-wait): unattended launches report Claude's trust dialog …
brennanb2025 Sep 28, 2026
52dc32f
fix(mobile): the page pushes its terminal frame into the document fro…
Jinwoo-H Sep 28, 2026
7877164
fix(mobile): show one review sheet at a time so the review screen nev…
brennanb2025 Sep 28, 2026
934a2d4
fix(codex): a native chat's thread opens on the model the chat chose …
brennanb2025 Sep 28, 2026
c8f9a65
test(e2e): keep the Kitty-arming app alive in the Option-composed spe…
Jinwoo-H Sep 28, 2026
d33541c
test(mobile): repin the RPC recording corpus to main after #22951 (#2…
Jinwoo-H Sep 28, 2026
47b8408
fix(zcode): wait for composer before first worker dispatch (#23374)
Alex-wangyang Sep 28, 2026
8506749
fix(native-chat): a request that failed reads as failed (#22944)
brennanb2025 Sep 28, 2026
0e871a9
fix(terminal): clear the Kitty input mirror when a shell is confirmed…
Jinwoo-H Sep 28, 2026
5219b8a
fix(relay): reset input modes a dead program left on in SSH terminals…
Jinwoo-H Sep 28, 2026
708123b
Improve PTY device error messages with localization support (#23538)
AmethystLiang Sep 28, 2026
45f3512
feat(agents): add first-class DeepSeek Harness (dsh) support (#22468)
nwparker Sep 28, 2026
67581dd
perf(ci): stop the orcad smoke idling 15s and the static job fetching…
nwparker Sep 28, 2026
c53ed03
fix(terminal): one intentional-stop register, and per-run spawn and i…
brennanb2025 Sep 28, 2026
fae0ae7
perf(ci): shard the anti-slop audit across processes instead of one J…
nwparker Sep 28, 2026
9179b93
ci: reduce repeated runner work and validate affected-test selection …
nwparker Sep 28, 2026
8494b24
perf(ci): take i18next-cli 1.74.1 so extraction stops re-scanning eve…
nwparker Sep 28, 2026
56e6913
fix(native-chat): show the "Working for" bar while a turn runs (#23537)
brennanb2025 Sep 28, 2026
5e5f4f6
fix(native-chat): keep a Codex ask's questions in the order it asked …
brennanb2025 Sep 28, 2026
7a24d3d
fix(native-chat): the conversation outlives its agent (#22835)
brennanb2025 Sep 28, 2026
1b45879
test(native-chat): await the async history and journal snapshot in th…
Jinwoo-H Sep 28, 2026
076759e
feat(usage): show ZCode Coding Plan quota on current main (#23520)
guanbear Sep 28, 2026
6835b9b
fix(mobile): paired clients re-derive a kept terminal after a cold re…
brennanb2025 Sep 28, 2026
0de5e4d
Fix terminal focus when Cmd+J wakes a workspace (#23546)
nwparker Sep 28, 2026
2077956
fix(mobile): size a terminal's first subscribe from the document's re…
Jinwoo-H Sep 28, 2026
ca6c209
feat(ai-vault): show ZCode CLI session history (#23513)
guanbear Sep 28, 2026
c8b3f20
test(mobile): repin the RPC recording corpus to main after #23080 (#2…
Jinwoo-H Sep 28, 2026
080c562
perf(ci): diff against the merge commit's first parent so PR checkout…
nwparker Sep 28, 2026
ba858ee
feat(mobile): the keyboard covers the page like a native screen, and …
Jinwoo-H Sep 28, 2026
1bfbc15
fix(agent-session): wait for in-flight session-store writes before te…
nwparker Sep 28, 2026
8db9684
fix(sidebar): clip worktree card content to its border (#23566)
nwparker Sep 28, 2026
a174a08
fix(runtime): answer terminal.subscribe at once for a pane the deskto…
Jinwoo-H Sep 28, 2026
3dd7d29
Revert "perf(ci): shard the anti-slop audit across processes instead …
nwparker Sep 28, 2026
e6fbbdf
perf(ci): cache pnpm verification records on Linux (#23568)
nwparker Sep 28, 2026
a68d629
fix(native-chat): the host writes chat failures for a person, with a …
brennanb2025 Sep 28, 2026
d050801
perf(ci): stop duplicating shared Linux download caches (#23578)
nwparker Sep 28, 2026
2f8f4f5
perf(ci): run static analysis on the free ARM runner (#23576)
nwparker Sep 28, 2026
5813cb6
fix(orchestration): reland process-incarnation reap for stale worker …
brennanb2025 Sep 28, 2026
400e4e7
feat(agents): add Freebuff launch and sidebar status support (#23567)
nwparker Sep 28, 2026
0fe8974
perf(ci): move six more jobs to the free ARM runner (#23594)
nwparker Sep 28, 2026
0830051
Fix status bar on smaller screen (#23587)
AmethystLiang Sep 28, 2026
8b410b4
feat: add first-class Qoder CLI support (#23581)
nwparker Sep 28, 2026
cf20423
ci: skip unrelated installs and share xterm build dependencies (#23607)
nwparker Sep 28, 2026
21f8e0f
ci: use faster gzip for temporary Linux test packages (#23609)
nwparker Sep 28, 2026
aedb930
Update README downloads badge
github-actions[bot] Sep 28, 2026
727ddce
Merge upstream main (aedb9305cd) into swaplabs/main
kiwidream Sep 28, 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.
78 changes: 75 additions & 3 deletions .github/actions/install-node-dependencies/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@ name: Install Node dependencies
description: Installs the Node toolchain and repository dependencies for CI jobs, with optional Electron archive caching.

inputs:
cache-pnpm-verification:
description: Restore pnpm's policy-checked lockfile verification record on Linux.
required: false
default: 'true'
native-runtime:
description: Native runtime to prepare after the script-free install (none, node, or electron).
required: false
Expand All @@ -24,6 +28,15 @@ inputs:
default: 'false'

outputs:
verification-cache-hit:
description: Whether pnpm's verification record was restored.
value: ${{ steps.verification-cache-restore.outputs.cache-hit }}
verification-cache-path:
description: The small pnpm-owned verification record, without registry metadata.
value: ${{ steps.verification-cache.outputs.path }}
verification-cache-key:
description: Exact verification record key, also used by the isolated PR benchmark.
value: ${{ steps.verification-cache.outputs.key }}
node-version:
description: Resolved Node.js version used for the install.
value: ${{ steps.requested-node.outputs.node-version || steps.default-node.outputs.node-version }}
Expand All @@ -50,17 +63,60 @@ runs:
uses: actions/setup-node@v6
with:
node-version-file: package.json
cache: pnpm
cache: ${{ github.event_name != 'pull_request' && 'pnpm' || '' }}
cache-dependency-path: ${{ inputs.cache-dependency-path }}
package-manager-cache: false

- name: Setup requested Node.js
id: requested-node
if: inputs.node-version != ''
uses: actions/setup-node@v6
with:
node-version: ${{ inputs.node-version }}
cache: pnpm
cache: ${{ github.event_name != 'pull_request' && 'pnpm' || '' }}
cache-dependency-path: ${{ inputs.cache-dependency-path }}
package-manager-cache: false

# PR-local stores compete with reusable build caches for the repository quota.
- name: Resolve pnpm download store
id: pnpm-store
if: github.event_name == 'pull_request'
shell: bash
env:
LOCKFILE_HASH: ${{ hashFiles(inputs.cache-dependency-path) }}
run: |
test -n "$LOCKFILE_HASH"
cache_path="$(pnpm store path --silent)"
test -n "$cache_path"
printf 'path=%s\n' "$cache_path" >> "$GITHUB_OUTPUT"
printf 'arch=%s\n' "$(node -p 'require("node:os").arch()')" >> "$GITHUB_OUTPUT"

# Match setup-node's key and path so existing default-branch stores remain reusable.
- name: Restore pnpm download store without saving
if: github.event_name == 'pull_request'
uses: actions/cache/restore@v5
with:
path: ${{ steps.pnpm-store.outputs.path }}
key: node-cache-${{ runner.os }}-${{ steps.pnpm-store.outputs.arch }}-pnpm-${{ hashFiles(inputs.cache-dependency-path) }}

- name: Resolve pnpm verification cache
id: verification-cache
if: runner.os == 'Linux' && inputs.cache-pnpm-verification == 'true'
shell: bash
env:
POLICY_HASH: ${{ hashFiles('pnpm-lock.yaml', 'pnpm-workspace.yaml', '.npmrc') }}
run: |
printf 'path=%s/lockfile-verified.jsonl\n' "$(pnpm cache path)" >> "$GITHUB_OUTPUT"
printf 'key=pnpm-verification-v1-%s-%s-%s-%s\n' "$RUNNER_OS" "$RUNNER_ARCH" "$(pnpm --version)" "$POLICY_HASH" >> "$GITHUB_OUTPUT"

- name: Restore pnpm verification record
id: verification-cache-restore
if: steps.verification-cache.outputs.key != ''
continue-on-error: true
uses: actions/cache/restore@v5
with:
path: ${{ steps.verification-cache.outputs.path }}
key: ${{ steps.verification-cache.outputs.key }}

- name: Validate native runtime
shell: bash
Expand Down Expand Up @@ -96,6 +152,15 @@ runs:
git -C "$GITHUB_WORKSPACE" diff --exit-code -- package.json pnpm-lock.yaml pnpm-workspace.yaml
fi

# pnpm checks the cached record's policy and validity; never bypass verification.
- name: Save pnpm verification record on main
if: github.ref == 'refs/heads/main' && github.event_name != 'pull_request' && steps.verification-cache.outputs.key != '' && steps.verification-cache-restore.outputs.cache-hit != 'true'
continue-on-error: true
uses: actions/cache/save@v5
with:
path: ${{ steps.verification-cache.outputs.path }}
key: ${{ steps.verification-cache.outputs.key }}

- name: Resolve Electron package cache
id: electron-package-cache
if: inputs.native-runtime == 'electron' || inputs.cache-electron-package == 'true'
Expand All @@ -116,12 +181,19 @@ runs:
printf 'version=%s\n' "$(node -p "require('./node_modules/electron/package.json').version")" >> "$GITHUB_OUTPUT"

- name: Cache Electron package archive
if: inputs.native-runtime == 'electron' || inputs.cache-electron-package == 'true'
if: (github.event_name != 'pull_request' || runner.os != 'Linux') && steps.electron-package-cache.outputs.version != ''
uses: actions/cache@v5
with:
path: ${{ steps.electron-package-cache.outputs.cache-root }}
key: electron-package-${{ runner.os }}-${{ runner.arch }}-${{ steps.electron-package-cache.outputs.version }}

- name: Restore Electron package archive without saving
if: github.event_name == 'pull_request' && runner.os == 'Linux' && steps.electron-package-cache.outputs.version != ''
uses: actions/cache/restore@v5
with:
path: ${{ steps.electron-package-cache.outputs.cache-root }}
key: electron-package-${{ runner.os }}-${{ runner.arch }}-${{ steps.electron-package-cache.outputs.version }}

# Why cached: `--ignore-scripts` leaves node-pty without build/Release, so
# ensure-native-runtime node-gyp-compiles it in every job that asks for a runtime.
# The artifacts are ABI-bound, so the key carries the target runtime, the resolved
Expand Down
32 changes: 32 additions & 0 deletions .github/actions/prepare-git-compatibility/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: Prepare baseline Git compatibility binary
description: Restore or build the pinned Linux Git binary for the compatibility contract.

runs:
using: composite
steps:
# The default-branch warmer shares this key across PRs; a PR save is private to its merge ref.
# Cache eviction remains possible, so keep the checksum-verified cold build below.
- name: Cache baseline Git build
uses: actions/cache@v5
with:
path: ~/.cache/orca-git-compat/git-2.25.5
key: git-compat-baseline-${{ runner.os }}-${{ runner.arch }}-2.25.5

# Finish the CPU-heavy build before any timed compatibility lanes start.
- name: Build the baseline Git binary
shell: bash
run: |
archive="$RUNNER_TEMP/git-2.25.5.tar.gz"
source="$HOME/.cache/orca-git-compat/git-2.25.5"
if [ -x "$source/git" ]; then
exit 0
fi
curl -fsSL https://www.kernel.org/pub/software/scm/git/git-2.25.5.tar.gz -o "$archive"
echo "41662c52fc16fec4963bfc41075e71f8ead6b5e386797eb6f9a1111ff95a8ddf $archive" \
| sha256sum --check
mkdir -p "$source"
tar -xzf "$archive" -C "$source" --strip-components=1
make -C "$source" -j"$(nproc)" \
NO_GETTEXT=YesPlease NO_TCLTK=YesPlease NO_PYTHON=YesPlease git
# Object files are no longer needed after linking the cached binary.
find "$source" -name '*.o' -delete
63 changes: 63 additions & 0 deletions .github/actions/prepare-linux-package-fixture/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
name: Prepare cached Linux package fixture
description: Restore Docker build layers; only the main warmer builds and saves missing images.
inputs:
fixture:
description: Directory name below config/docker.
required: true
save-cache:
description: Build and save a missing fixture on the default branch.
default: 'false'
outputs:
image:
description: Loaded image to use as a Docker build cache, or empty on a cache miss.
value: ${{ steps.image.outputs.image }}
runs:
using: composite
steps:
- name: Restore fixture image
id: cache
uses: actions/cache/restore@v5
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') }}

- name: Load or seed fixture build cache
id: image
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) ;;
*) 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"

- name: Save fixture image
if: inputs.save-cache == 'true' && steps.cache.outputs.cache-hit != 'true' && steps.image.outputs.built == 'true'
uses: actions/cache/save@v5
continue-on-error: true
with:
path: ${{ runner.temp }}/orca-package-fixtures/${{ inputs.fixture }}.tar
key: ${{ steps.cache.outputs.cache-primary-key }}
33 changes: 33 additions & 0 deletions .github/actions/prepare-xterm-dependencies/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name: Restore xterm build dependencies
description: Reuse installed dependencies for the pinned upstream checkout.
outputs:
cache-key:
description: Exact dependency cache key.
value: ${{ steps.restore.outputs.cache-primary-key }}
cache-hit:
description: Whether the exact installed dependency cache was restored.
value: ${{ steps.restore.outputs.cache-hit }}
runs:
using: composite
steps:
- id: runtime
shell: bash
run: |
. /etc/os-release
echo "image=$ID-$VERSION_ID" >> "$GITHUB_OUTPUT"
echo "node=$(node --version)" >> "$GITHUB_OUTPUT"
- id: restore
uses: actions/cache/restore@v5
with:
path: |
${{ runner.temp }}/xterm-patch-build/upstream/.git
${{ runner.temp }}/xterm-patch-build/upstream/node_modules
key: xterm-dependencies-v1-${{ runner.os }}-${{ steps.runtime.outputs.image }}-${{ runner.arch }}-${{ steps.runtime.outputs.node }}-${{ hashFiles('config/patches/xterm-upstream.json', 'config/scripts/regenerate-xterm-patches.mjs', 'config/scripts/xterm-patch-text.mjs', '.github/actions/prepare-xterm-dependencies/action.yml') }}
- name: Restore download cache on an installed-dependency miss
if: steps.restore.outputs.cache-hit != 'true'
uses: actions/cache/restore@v5
with:
path: |
~/.npm
${{ runner.temp }}/xterm-patch-build/upstream/.git
key: xterm-upstream-${{ hashFiles('config/patches/xterm-upstream.json') }}
3 changes: 2 additions & 1 deletion .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@

## Linked Issue

<!-- Link the issue this PR addresses, there should ALWAYS be one -->
<!-- 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 #

Expand Down
Loading
Loading