Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
353 commits
Select commit Hold shift + click to select a range
cdc7a5c
Relay ssh image diff (#9112)
AmethystLiang Jul 17, 2026
a03a3dd
Render png on mobile (#9087)
AmethystLiang Jul 17, 2026
ce910e5
fix(naming): keep the built-in branch-name prompt general (#9088)
brennanb2025 Jul 17, 2026
9003973
fix(settings): show "Up to date" for current skills in settings sideb…
brennanb2025 Jul 17, 2026
f6f2561
ci(release): regenerate skill manifest on version bump (#9117)
brennanb2025 Jul 17, 2026
91ece6c
fix(terminal): tear down runtime-owned headless PTYs on whole-tab clo…
brennanb2025 Jul 17, 2026
3b227d0
release: v1.4.144-rc.4
github-actions[bot] Jul 17, 2026
6e91ca6
fix(browser): local HTTPS Try HTTPS + cert proceed (#8454) (#9104)
nwparker Jul 17, 2026
d363c83
fix(worktrees): force-remove clean worktree with initialised submodul…
nwparker Jul 17, 2026
53af611
fix(settings): keep Shortcuts rows visible on pane-title-only search …
nwparker Jul 17, 2026
a7c40cd
fix(terminal): stop gluing the next line onto a modifier-clicked URL …
nwparker Jul 17, 2026
539e060
fix(github): render GitHub Enterprise PR avatars via API avatar_url (…
nwparker Jul 17, 2026
e01f3f4
fix(sidebar): preserve Project Group members under Hide sleeping (#9101)
nwparker Jul 17, 2026
5ee90c8
fix(agents): recognize OpenCode native OC | tab titles (#9102)
nwparker Jul 17, 2026
cc1ad06
fix(skills): decouple bundled skill artifacts from the release train …
brennanb2025 Jul 17, 2026
1b331f2
feat(editor): bindable keyboard shortcut to add a markdown review not…
ghee-yeh Jul 17, 2026
1284a00
fix(native-chat): don't force a default model/effort on agent spawn (…
brennanb2025 Jul 17, 2026
fa85536
fix(ssh): repair unbuilt relay native deps (#8686)
geelen Jul 17, 2026
8ec050a
fix(i18n): 修复 zh.json 分页翻译错误和 9 处未翻译文案 (#8990)
fsdwen Jul 17, 2026
13c690b
fix(pet): match Codex's per-frame pacing and pointer interactions for…
nasagong Jul 17, 2026
0cd50ee
fix(pet): key sprite keyframes on the resolved track; cap render dura…
nwparker Jul 17, 2026
23368ee
fix(shortcuts): preserve native input-source switching (#9108)
nwparker Jul 17, 2026
d0b090b
fix(main): cancel unread fetch response bodies so a peer socket close…
Jinwoo-H Jul 17, 2026
c5d2275
Add preference to show pinned worktrees in original lists (#6216)
brennanb2025 Jul 17, 2026
44686f3
feat(native-chat): add mobile default-view toggle for native chat (#9…
brennanb2025 Jul 17, 2026
1c54171
Update README downloads badge
github-actions[bot] Jul 17, 2026
b671068
fix(runtime): eliminate agent-send TOCTOU that rejects live agents du…
brennanb2025 Jul 17, 2026
2cb5d4e
fix(agent-status): clear answered Claude question waits at answer tim…
brennanb2025 Jul 17, 2026
5b6cefa
fix(orchestration): emit message timestamps as RFC3339 UTC (#9167)
brennanb2025 Jul 17, 2026
f544820
fix(ssh): require a coherent colocated Node/npm toolchain for the rel…
brennanb2025 Jul 17, 2026
e6933fe
fix(grok): honor zero-usage weekly reset (#9219)
brennanb2025 Jul 17, 2026
e70842f
fix(terminal): recover floating input after app refocus (#9233)
brennanb2025 Jul 17, 2026
ef03a50
fix(github): attribute GitHub API outages instead of blank/"failed" s…
brennanb2025 Jul 17, 2026
3fd73ee
fix(crash-reporting): disambiguate renderer recovery from app relaunc…
brennanb2025 Jul 17, 2026
b259300
perf(worktrees): bound runtime discovery scans (#8915)
rodboev Jul 17, 2026
e719ef1
fix(mobile): survive connection-migration cutovers during worktree cr…
brennanb2025 Jul 17, 2026
ba25e43
Replace assistant-prose heuristic with explicit turn lifecycle marker…
AmethystLiang Jul 17, 2026
14116e3
feat(settings): unify skill card status and add Linear agent-skill se…
brennanb2025 Jul 17, 2026
7c0b84f
fix(terminal): invalidate cached glyphs when WebGL atlas changes (#8899)
brennanb2025 Jul 17, 2026
613dcd8
fix(pr-comments): make the review sidebar legible for structured bot …
tmchow Jul 17, 2026
5907816
feat(keybindings): swap tab-switch chords to the common convention fo…
brennanb2025 Jul 17, 2026
72a5c6f
fix(terminal): paint paired remote terminals on first subscribe (#8954)
rodboev Jul 18, 2026
49e625d
fix(mobile): harden WebSocket accept path against socket overload (#9…
brennanb2025 Jul 18, 2026
546cc82
Improve native chat ui (#9246)
AmethystLiang Jul 18, 2026
803a442
test(e2e): harden terminal restart regressions on Windows (#9064)
slashdevcorpse Jul 18, 2026
2a22dd0
fix(i18n): translate untranslated Korean catalog strings (#9019)
hanjoonchoe Jul 18, 2026
1bd757a
fix(i18n): correct zh translation of "Pin Tab" to 固定标签 (#9157)
weibiansanjue Jul 18, 2026
7c7bf25
fix(i18n): correct Chinese UI terminology (#9154)
ousugo Jul 18, 2026
3f335ef
feat(agents): pi session resume support (#8876)
eisen0419 Jul 18, 2026
212b79a
release: v1.4.145-rc.3
github-actions[bot] Jul 18, 2026
2668af0
Update README downloads badge
github-actions[bot] Jul 18, 2026
24ac5a5
fix(updater): humanize update-error card and hide raw error behind Sh…
brennanb2025 Jul 18, 2026
cbdd750
fix(terminal): keep redraw transcript cursors stable (#9081)
Jinwoo-H Jul 18, 2026
2f5fc65
fix(terminal): don't report agent exit on a degraded foreground scan …
brennanb2025 Jul 18, 2026
360b242
Fix duplicate and lost IME terminal commits (#9235)
Jinwoo-H Jul 18, 2026
ed28dec
feat(new-workspace): always offer "Add a new project" in Create workt…
nwparker Jul 18, 2026
3a27fb5
fix(settings): stop shortcut filter rail overlapping the list below x…
nwparker Jul 18, 2026
ad20602
fix(terminal): replay cold restores at recovered grid (#9043)
slashdevcorpse Jul 18, 2026
64c7f14
fix(codex): clarify account-switch restart card actions (#9254)
brennanb2025 Jul 18, 2026
c436df0
feat(tray): mark dev-instance tray icons with a DEV indicator (#9253)
nwparker Jul 18, 2026
3e276d7
fix(ssh): probe npm via prepended PATH, not colocated with node (#916…
brennanb2025 Jul 18, 2026
d153295
fix(keybindings): AltGr-safe default for Add Review Note (#9257)
brennanb2025 Jul 18, 2026
bd72056
test(pty-connection): drain async confirm reads between tests (#9260)
brennanb2025 Jul 18, 2026
cb9c42d
fix(terminal): filter focus reports after Codex history resume (#9259)
OrcaWin Jul 18, 2026
ab0f220
fix(runtime): return authoritative visible TUI output
Jinwoo-H Jul 15, 2026
0532765
fix(pty): stop daemon reattach/kill race from orphaning restored term…
brennanb2025 Jul 18, 2026
0c73e3c
fix(i18n): use full-sentence keys in RemoveFolderDialog description (…
hanjoonchoe Jul 18, 2026
2783f75
perf(persistence): compact JSON for durable-state save payload (drop …
nwparker Jul 18, 2026
b8502b2
perf(terminal): bound recent-PTY-output with a chunk deque (drop per-…
nwparker Jul 18, 2026
45c4a1f
refs/heads/create-pr-should-handle-sync (#8534)
AmethystLiang Jul 18, 2026
72d0a40
fix(editor): use Monaco's registered proto language id for .proto fil…
nasagong Jul 18, 2026
057a814
fix(sidebar): guard every worktree sort against undefined displayName…
nwparker Jul 18, 2026
d8629c4
Update README downloads badge
github-actions[bot] Jul 18, 2026
bb71a3a
fix(terminal): bypass rejected macOS login sessions (#9301)
brennanb2025 Jul 18, 2026
54cb772
release: v1.4.146-rc.0
github-actions[bot] Jul 18, 2026
5cdf83b
docs: rotate WeChat QR to group 3
AmethystLiang Jul 18, 2026
4ae67e8
Merge branch 'docs/wechat-group-3-qr'
AmethystLiang Jul 18, 2026
b45a222
docs: remove terminal garble investigation notes
AmethystLiang Jul 18, 2026
403d681
fix(terminal): re-linkify streamed URLs so links underline/click on f…
nwparker Jul 18, 2026
4930c87
fix(github): load PR details on fork checkouts by preferring upstream…
nwparker Jul 18, 2026
4905b78
fix(status-bar): show live session reset countdown in collapsed usage…
nwparker Jul 18, 2026
927ca9e
perf(preflight): fs-based PATH resolution for agent detection (no whe…
nwparker Jul 18, 2026
6a573f3
fix(create-worktree): keep composer open when adding a project from t…
nwparker Jul 18, 2026
965a3f9
fix(terminal): keep setup split PTYs distinct
Jinwoo-H Jul 18, 2026
ae1c943
Update README downloads badge
github-actions[bot] Jul 19, 2026
02ff7c7
Preserve agent chats and drafts through reconnects (#9242)
brennanb2025 Jul 19, 2026
f7c2c12
Add review note chord guards (#9412)
AmethystLiang Jul 19, 2026
99b59ad
fix(floating-terminal): position panel at z-45 above notifications (#…
AmethystLiang Jul 19, 2026
8ed8f0d
feat(ssh): download folders from remote explorer (#7793)
mmarabel Jul 19, 2026
e074bc3
Gate certificate trust proceed action on runtime capability (#9070)
AmethystLiang Jul 19, 2026
e885cec
Allow hiding Orca Mobile sidebar button once a device is paired (#5785)
AmethystLiang Jul 19, 2026
8d5c674
fix(win): launch Store-installed PowerShell 7 in terminals (#9437)
OrcaWin Jul 19, 2026
5848550
fix(composer): show full worktree path on hover in Run on dropdown (#…
nwparker Jul 19, 2026
80e6322
Update README downloads badge
github-actions[bot] Jul 19, 2026
0b71f3b
test(e2e): prove the terminal daemon survives a main-process crash on…
OrcaWin Jul 19, 2026
b19dccd
Update README downloads badge
github-actions[bot] Jul 19, 2026
b4e85d9
feat(editor): add Toggle H5 to markdown editor (#9448)
AmethystLiang Jul 19, 2026
500f0c5
Prevent adding the same Claude account twice (#8912)
brennanb2025 Jul 19, 2026
37cd830
Confirm before merging a PR/MR from the sidebar strategy dropdown (#8…
brennanb2025 Jul 19, 2026
a833b5c
Clear a removed remote host's leftover repos and worktrees from the s…
brennanb2025 Jul 19, 2026
37039cd
fix(source-control): bound Create PR eligibility probe so it can't ha…
OrcaWin Jul 19, 2026
fbe7780
Fix diff editor flashing "Loading…" on every save (#9424)
brennanb2025 Jul 19, 2026
ca4003a
Keep Agent Session History from freezing the app on huge OpenCode dat…
brennanb2025 Jul 19, 2026
9d262c9
Bump mobile app.json to 0.0.32 (#9466)
brennanb2025 Jul 19, 2026
764cada
fix(terminal): confirm the agent from ConPTY console presence to avoi…
brennanb2025 Jul 19, 2026
624c8d4
Make plain-text file:// links clickable in the terminal (#9467)
brennanb2025 Jul 19, 2026
08f4461
Standardize per-repo Source Control AI save UX (#9427)
AmethystLiang Jul 19, 2026
3efc930
fix: preserve WSL CWD across daemon sleep wake
Jinwoo-H Jul 17, 2026
01ce6db
test: make WSL cwd fixture cross-platform
Jinwoo-H Jul 17, 2026
8281038
fix: refresh CWD after late WSL context
Jinwoo-H Jul 17, 2026
bbb5406
fix: preserve native PTY context on reattach
Jinwoo-H Jul 19, 2026
1ffe149
chore: keep provider types within lint limit
Jinwoo-H Jul 19, 2026
ca7b9fb
refactor: split PTY spawn result contract
Jinwoo-H Jul 19, 2026
d7dc7e9
test: expect native context from local PTY
Jinwoo-H Jul 19, 2026
c5d4056
Clarify Orca Mobile pairing connection paths (#9425)
AmethystLiang Jul 19, 2026
d67ede1
Implement confirm-only PR panel composer with classified error blocki…
AmethystLiang Jul 19, 2026
098db33
Keep lineage children with their parent when dragging to another stat…
brennanb2025 Jul 19, 2026
85ab729
Persist the AI Vault session parse cache across restarts (#9474)
brennanb2025 Jul 19, 2026
245d79c
Preserve surviving workspace state when removing a runtime host (#9468)
brennanb2025 Jul 19, 2026
b320bcb
fix(gitlab): bound and coalesce auth probes (#9476)
OrcaWin Jul 19, 2026
daf22f0
Make Create PR handle sync by fast-forwarding behind-only branches (#…
AmethystLiang Jul 20, 2026
a6df23c
Tighten orchestration worktree isolation policy (#9482)
AmethystLiang Jul 20, 2026
1def694
Add native chat skill picker with host-aware discovery (#9480)
AmethystLiang Jul 20, 2026
e3721e8
fix(pi): detect ask_user_question and surface as blocked state (#9457)
hu9osaez Jul 20, 2026
808299c
fix(cli): avoid Windows PATH status timeout (#9483)
Jinwoo-H Jul 20, 2026
3a847bf
fix(ssh): clear stamped agent status on disconnect (#9484)
Jinwoo-H Jul 20, 2026
7adda25
fix(daemon): retire empty current-generation daemons (#9277)
Jinwoo-H Jul 20, 2026
d628c93
fix(terminal): harden revealed inline-TUI convergence (#9503)
OrcaWin Jul 20, 2026
c0f0810
Fix native Windows PTY startup query handling (#9500)
Jinwoo-H Jul 20, 2026
7df56ad
fix(ui): restore spaces around orca.yaml in trust dialog (#9511)
nwparker Jul 20, 2026
0d97653
fix(ui): restore missing spaces in i18n JSX fragment copy (#9513)
nwparker Jul 20, 2026
74e2cb7
perf(window): re-enable macOS main-window background throttling (#9395)
nwparker Jul 20, 2026
e90dc38
fix(dev): stabilize macOS safeStorage Keychain key name across dev br…
nwparker Jul 20, 2026
a02389c
Update code comments section in AGENTS.md
nwparker Jul 20, 2026
64dae13
fix(sidebar): stop agent 'working' spinner freezing as a broken ring …
OrcaWin Jul 20, 2026
4d25de3
perf(renderer): stop agent spinners from keeping the frame pipeline a…
nwparker Jul 20, 2026
49149a0
fix(agent-status): stamp renderer SSH ownership (#9505)
OrcaWin Jul 20, 2026
5fcf777
feat(mobile): Quick Commands (terminal + agent-prompt presets) (#9298)
brennanb2025 Jul 20, 2026
936ec06
fix(search): bind content results to runtime owner (#9262)
xianjianlf2 Jul 20, 2026
b3b5031
test(e2e): deliver node burst via temp file so PowerShell quoting can…
OrcaWin Jul 20, 2026
2e67af8
fix(worktree): bound teardown RPCs so Windows workspace deletion can'…
OrcaWin Jul 20, 2026
904762f
Update README downloads badge
github-actions[bot] Jul 20, 2026
4d49b93
fix(wsl): forward ORCA_ROOT_PATH/ORCA_WORKTREE_PATH setup vars across…
OrcaWin Jul 20, 2026
f25fb9f
fix(i18n): 操作按钮/指令的翻译"开放"改为"打开" (#9533) (#9534)
fsdwen Jul 20, 2026
ddb5b93
fix(rate-limits): surface Fable weekly usage when is_active is false …
OrcaWin Jul 20, 2026
257b0b4
fix(new-workspace): ignore IME composition Enter in workspace name fi…
shinju4n Jul 20, 2026
a699434
Direct Windows users to v1.4.147-rc.3 for bug fixes
AmethystLiang Jul 20, 2026
207db02
docs(readme): shorten Windows RC notice under Download Orca
AmethystLiang Jul 20, 2026
7386ef2
perf(renderer): stop full durable-state save on every top-level view …
OrcaWin Jul 20, 2026
24cfb97
fix(readme): stop star/license badges showing 429 from badgen
nwparker Jul 20, 2026
c240271
docs(readme): add French translation and reorder language links
AmethystLiang Jul 20, 2026
f98eaeb
release: v1.4.147-rc.4
github-actions[bot] Jul 20, 2026
53aeeb7
docs(readme): point Windows users to v1.4.147-rc.4
AmethystLiang Jul 20, 2026
98b00d3
refactor(comments): slim verbose comments in main core (runtime/ipc/d…
nwparker Jul 20, 2026
190de82
refactor(comments): slim verbose comments in main integrations (git/p…
nwparker Jul 20, 2026
0f72508
refactor(comments): slim verbose comments in renderer state (store/ho…
nwparker Jul 20, 2026
c6f0ac4
refactor(comments): slim verbose comments in mobile (#9547)
nwparker Jul 20, 2026
0989128
refactor(comments): slim verbose comments in shared/cli/relay/preload…
nwparker Jul 20, 2026
633cad3
refactor(comments): slim verbose comments in renderer components (#9546)
nwparker Jul 20, 2026
d9d939a
Update README downloads badge
github-actions[bot] Jul 20, 2026
ccd72f5
Add unified mobile onboarding for session view and notifications (#9478)
brennanb2025 Jul 20, 2026
99df415
docs(readme): drop Windows RC download notice
AmethystLiang Jul 20, 2026
aca7d50
Stop attaching stale closed PRs/MRs to default-branch checkouts (#9469)
brennanb2025 Jul 20, 2026
4f81dfc
perf(ssh): cut warm high-latency connects from 88.7s to 7.7s (#9015)
nasagong Jul 20, 2026
1d2ba1e
fix: never surface coding-agent scratch worktrees in the sidebar (#9535)
brennanb2025 Jul 20, 2026
f8b430f
feat(skills): ship orca-cli as a first-generation hybrid stub (#9238)
brennanb2025 Jul 20, 2026
e58de71
feat(codex): real-home routing + self-contained multi-account homes (…
brennanb2025 Jul 20, 2026
51aab1c
fix(terminal): harden macOS login-preflight spawn path (#9301 follow-…
brennanb2025 Jul 20, 2026
658532a
Stop the mobile app from running hot during terminal streaming (#9489)
brennanb2025 Jul 20, 2026
e109e78
fix(source-control): keep huge change sets responsive (#9477)
OrcaWin Jul 20, 2026
e218dfb
fix:Keep Jira linked work items attached when the composer project ch…
hoonsbory Jul 20, 2026
d19cb8b
feat(codex): remove "Not now" from account-switch notice (#9613)
brennanb2025 Jul 20, 2026
5829344
perf(status-bar): guard usage-notice anchor against equal-geometry re…
brennanb2025 Jul 20, 2026
f655ae3
fix(pi): resolve OMP tab identity from the outer wrapper, not the wra…
brennanb2025 Jul 20, 2026
c45dc62
fix(codex): flag signed-out system default (#9619)
brennanb2025 Jul 20, 2026
fec996a
fix(codex): preserve active account during reauth (#9620)
brennanb2025 Jul 20, 2026
bf7fbdd
fix(codex): auto-trust linked worktrees before launch (#9621)
brennanb2025 Jul 20, 2026
0ed1d04
fix(codex): migrate legacy shared-home sessions before resume (#9624)
brennanb2025 Jul 21, 2026
3468b43
feat(dashboard): add agent dashboard popout (#9604)
brennanb2025 Jul 21, 2026
580f8eb
feat(status-bar): consolidate agent usage into a single roster popove…
brennanb2025 Jul 21, 2026
6424a73
Update README downloads badge
github-actions[bot] Jul 21, 2026
5786513
Fix 6 e2e test flakes: worktree teardown, window focus, and terminal …
AmethystLiang Jul 21, 2026
0e7b0ac
Revert "Confirm before merging a PR/MR from the sidebar strategy drop…
AmethystLiang Jul 21, 2026
6444be3
fix(accounts): follow the runtime for WSL provider account detection …
OrcaWin Jul 21, 2026
aad34cb
docs(headless-server): add upgrade SOP for orca serve on Linux (#9575)
PannenetsF Jul 21, 2026
dd20c11
cleaning up files
AmethystLiang Jul 21, 2026
9680b22
fix(terminal): heal stale PTY grids on window wake (#9626)
brennanb2025 Jul 21, 2026
7154445
fix(terminal): gate xterm contrast correction by terminal background …
AmethystLiang Jul 21, 2026
971b167
fix(github): load PR diffs for Enterprise remotes (#8932)
wonjerry Jul 21, 2026
afb82bc
perf(renderer): patch the by-worktree agent index instead of full reb…
nwparker Jul 21, 2026
fea0004
release: v1.4.148-rc.1
github-actions[bot] Jul 21, 2026
085fc6a
Keep embedded browser commands on the registered Orca target (#9633)
OrcaWin Jul 21, 2026
88c7861
fix(ssh): patch node-pty helper in Windows relay (#9638)
OrcaWin Jul 21, 2026
d834cc6
chore: remove stray mock folder and design-notes docs (#9641)
brennanb2025 Jul 21, 2026
8182141
perf(sidebar): stabilize worktree card props so cards memo-bail on or…
nwparker Jul 21, 2026
995ee88
perf(persistence): single full-state serialization per save (#9381)
nwparker Jul 21, 2026
cabb5dc
fix(editor): reconcile multi-byte markdown saves without byte-offset …
brennanb2025 Jul 21, 2026
ede57cf
fix(windows): paste copied image files (#9640)
OrcaWin Jul 21, 2026
cc44aca
Fix Windows ConPTY OSC color reply leaks at the PTY owner (#9651)
OrcaWin Jul 21, 2026
6c9be22
fix(automations): retire owned desktop terminals (#9493)
chsong1 Jul 21, 2026
e3c8d96
Access the Floating Workspace from mobile (#8405) (#9523)
brennanb2025 Jul 21, 2026
e2e3f82
fix(editor): surface file-save failures instead of swallowing them (#…
brennanb2025 Jul 21, 2026
bf4b2e3
fix(sidebar): attribute spinner-only pane titles to the launched agen…
choihjin Jul 21, 2026
c540ab6
fix(mobile): restore notification opt-in route compatibility (#9675)
OrcaWin Jul 21, 2026
1293e1c
Fix mixed-version mobile Codex session resume (#9678)
OrcaWin Jul 21, 2026
a6f54ac
fix(sidebar): stop the Live Ports hover card flickering on compact wo…
nwparker Jul 21, 2026
8847f61
fix(terminal): restore clickable link hover after returning to the Or…
nwparker Jul 21, 2026
91ee29a
feat(editor): add an opt-in editor font family (default: follow termi…
nwparker Jul 21, 2026
008c71d
fix(terminal): stop leaking Orca's own NODE_ENV into spawned terminal…
nwparker Jul 21, 2026
05c32c4
fix(runtime): isolate navigation across paired clients (#9664)
OrcaWin Jul 21, 2026
98d2233
fix(terminal): stop advertising the unimplemented Bold Text color ove…
nwparker Jul 21, 2026
e62b7e8
perf(orchestration): skip per-terminal dispatch scan when no dispatch…
nwparker Jul 21, 2026
d3f2a8c
perf(stats): move the debounced stats write off the main thread (#9697)
nwparker Jul 21, 2026
9b7d153
perf(linear): lazy-load @linear/sdk off the launch parse path (#9698)
nwparker Jul 21, 2026
6785f9d
feat(dashboard): open-worktree dialog control + finished-time parity …
brennanb2025 Jul 21, 2026
4877d0b
Fix Windows Resource Manager memory and CPU attribution (#8845)
adityachaudhary99 Jul 21, 2026
f0c6ca0
perf(checks-panel): gate the terminal-cwd poll on window visibility (…
nwparker Jul 21, 2026
63da958
fix(github): keep work-item searches repo-scoped (#9668)
OnlyYu1996 Jul 21, 2026
22d9c87
Fix Codex automatic resume across account switches (#9696)
brennanb2025 Jul 21, 2026
42bff5e
fix(native-chat): add reconciliation to catch missed transcript updat…
AmethystLiang Jul 21, 2026
4a7bdf9
perf(mobile): route graph-sync snapshot fanout through the notify coa…
nwparker Jul 21, 2026
58bcfe2
perf(runtime): gate PTY path-candidate extraction on mobile-connected…
nwparker Jul 21, 2026
643cbe4
fix(editor): fail safe when rich-markdown reconcile throws (#9685)
brennanb2025 Jul 21, 2026
18b7aa3
Update README downloads badge
github-actions[bot] Jul 21, 2026
c24ebca
fix(rate-limits): unstick Claude "Limited" usage — respect Retry-Afte…
dbachko Jul 21, 2026
7cf052b
fix(mobile): stop pairing QR column from starving CJK copy (#9700) (#…
OrcaWin Jul 21, 2026
16074b2
fix(dashboard-popout): keep moving card under the open terminal (#9709)
brennanb2025 Jul 21, 2026
827cd49
Fix Linear skill-install modal CTA hierarchy (#9643)
brennanb2025 Jul 21, 2026
2add99c
fix(source-control): keep commit generation available for custom comm…
OnlyYu1996 Jul 21, 2026
a97c160
fix(github): preserve GHES non-default auth ports (#9680)
OrcaWin Jul 21, 2026
937a201
Update README downloads badge
github-actions[bot] Jul 21, 2026
b9b3d98
fix(i18n): correct zh.json 'Match Case' mistranslation (#9722)
fsdwen Jul 21, 2026
1bebb24
feat(status-bar): tooltips for Detailed vs Compact usage modes (#9693)
brennanb2025 Jul 21, 2026
48578a8
feat(settings): link Linear capabilities pane to Integrations setting…
brennanb2025 Jul 21, 2026
be066fe
feat(linear): expose issue activity history (#9667)
brennanb2025 Jul 21, 2026
42a4f01
feat(linear): add MCP-compatible issue listing (#9672)
brennanb2025 Jul 21, 2026
87af1c8
feat(linear): add complete issue relations (#9674)
brennanb2025 Jul 21, 2026
a10a2ba
feat(linear): add MCP-style save issue (#9670)
brennanb2025 Jul 21, 2026
7ca3e67
fix(codex): count per-account homes in usage and state removal blast …
brennanb2025 Jul 21, 2026
f1c84d3
refactor(cli): split oversized command modules (#9775)
brennanb2025 Jul 21, 2026
ae12bb1
fix(skills): preserve released history across new tags (#9778)
OrcaWin Jul 21, 2026
903112a
fix(skills): record latest Linear release history (#9777)
brennanb2025 Jul 21, 2026
d8378e8
fix(settings): stop mislabeling a WSL default shell as PowerShell (#9…
OrcaWin Jul 21, 2026
15362fd
fix(web): preserve paired runtime ownership (#9776)
OrcaWin Jul 21, 2026
6458ebc
fix(dashboard-popout): wire terminal copy/paste in the popped-out win…
brennanb2025 Jul 21, 2026
e09ed30
fix(dashboard-popout): zoom the pop-out window, not the main window b…
brennanb2025 Jul 21, 2026
e986a7b
feat(codex): surface nested subagents (#9637)
brennanb2025 Jul 21, 2026
54c1ec5
fix(remote-runtime): recover terminals after network loss (#9774)
OrcaWin Jul 21, 2026
21e26de
Update README downloads badge
github-actions[bot] Jul 21, 2026
4ddab95
merge upstream 21e26de45 (conflicts)
WrittenByAI Jul 21, 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
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,6 @@
/config/scripts/verify-cli-bin.mjs text eol=lf
/config/scripts/verify-release-required-assets.mjs text eol=lf
/skill-guides/*.md text eol=lf
/skill-stubs/*.md text eol=lf
/skills/*/SKILL.md text eol=lf
/src/cli/bundled-skill-guides.ts text eol=lf
6 changes: 5 additions & 1 deletion .github/workflows/computer-e2e.yml
Original file line number Diff line number Diff line change
Expand Up @@ -75,8 +75,12 @@ jobs:
npm install -g node-gyp@11.5.0
echo "npm_config_node_gyp=$(npm root -g)/node-gyp/bin/node-gyp.js" >> "$GITHUB_ENV"
- run: pnpm install --frozen-lockfile
# Why: without --config, bare vitest ignores config/vitest.config.ts (there
# is no root config) and falls back to the 5s default timeout with no
# Windows worker cap, so the real csc.exe launcher-compile tests time out
# on hosted Windows. Use the shared config so this job matches pnpm test.
- run: >-
pnpm vitest run
pnpm vitest run --config config/vitest.config.ts
config/scripts/build-windows-cli-launcher.test.mjs
src/main/ssh/ssh-remote-cli-launcher.test.ts
config/scripts/computer-e2e-workflow.test.mjs
Expand Down
8 changes: 8 additions & 0 deletions .github/workflows/pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,11 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v6
with:
# Why: the freshness registry is derived from immutable release tags,
# so shallow PR checkouts cannot verify historical official identities.
fetch-depth: 0
persist-credentials: false

- name: Install native build tools
run: sudo apt-get update && sudo apt-get install -y build-essential python3 zlib1g-dev zsh
Expand Down Expand Up @@ -82,6 +87,9 @@ jobs:
- name: Verify bundled skill guides
run: pnpm run verify:bundled-skill-guides

- name: Verify skill freshness manifest
run: pnpm run verify:skill-bundle-manifest

# Why: project-owned type declarations must live in .ts so tsc
# actually checks them. TypeScript's skipLibCheck: true (inherited
# from @electron-toolkit/tsconfig) silently widens unresolved names
Expand Down
50 changes: 50 additions & 0 deletions .github/workflows/skill-update-roundtrip.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
name: Skill update round trip

on:
pull_request:
paths:
- 'skills/**'
- 'resources/skills/**'
- 'config/scripts/verify-skill-update-roundtrip.mjs'
- 'src/main/skills/skill-freshness-eligibility.ts'
- 'src/shared/skill-freshness.ts'
- '.github/workflows/skill-update-roundtrip.yml'
merge_group:
push:
branches:
- main

jobs:
roundtrip:
strategy:
fail-fast: false
matrix:
os: [macos-latest, ubuntu-latest, windows-latest]
shape: [symlink, copy]
autocrlf: ['false', 'true']
skills-cli: ['1.5.17']
include:
- os: ubuntu-latest
shape: symlink
autocrlf: 'false'
skills-cli: latest
continue-on-error: ${{ matrix.skills-cli == 'latest' }}
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
persist-credentials: false
- uses: actions/setup-node@v6
with:
node-version-file: package.json
- name: Verify targeted update convergence and copy behavior
env:
GITHUB_TOKEN: ${{ github.token }}
SKILL_UPDATE_SOURCE: ${{ github.event.pull_request.head.repo.full_name || github.repository }}
SKILL_UPDATE_REF: ${{ github.head_ref || github.ref_name }}
run: >-
node config/scripts/verify-skill-update-roundtrip.mjs
--cli=${{ matrix.skills-cli }}
--autocrlf=${{ matrix.autocrlf }}
--shape=${{ matrix.shape }}
195 changes: 195 additions & 0 deletions .github/workflows/win-crash-survival-e2e.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,195 @@
name: Windows Crash-Survival E2E

# Why: proves the detached daemon-host relocation makes terminal sessions SURVIVE
# a CRASH of Orca's main process (GitHub #7742), the companion guarantee to the
# update-survival harness. Builds an (unsigned) installer FROM THIS BRANCH,
# silent-installs it, opens a terminal, force-kills ONLY the app main (no
# tree-kill), and asserts the daemon + shell stay alive, a relaunch adopts the
# same daemon and shell, and post-crash input causes no pwsh FailFast. Targeted
# pull requests keep it as a durable regression gate. A CI runner is the only
# safe place to install — see the relocation post-mortem.

on:
pull_request:
types:
- opened
- synchronize
- reopened
- ready_for_review
paths:
- '.github/workflows/win-crash-survival-e2e.yml'
- 'package.json'
- 'pnpm-lock.yaml'
- 'pnpm-workspace.yaml'
- 'electron.vite.config.ts'
- 'build-plugins/**'
- 'config/electron-builder.config.cjs'
- 'config/patches/**'
- 'config/scripts/ensure-native-runtime.mjs'
- 'config/scripts/rebuild-native-deps.mjs'
- 'native/**'
- 'resources/win32/**'
- 'src/main/daemon/**'
- 'src/main/index.ts'
- 'src/main/ipc/pty*.ts'
- 'src/main/persistence.ts'
- 'src/main/providers/**'
- 'src/main/pty/**'
- 'src/main/startup/first-window-startup-services.ts'
- 'src/main/window/attach-main-window-services.ts'
- 'src/preload/**'
- 'src/renderer/src/App.tsx'
- 'src/renderer/src/components/terminal-pane/**'
- 'src/renderer/src/hooks/useIpcEvents.ts'
- 'src/renderer/src/lib/pane-manager/**'
- 'src/renderer/src/lib/session-write-subscriber.ts'
- 'src/renderer/src/lib/workspace-session-host-persistence.ts'
- 'src/renderer/src/store/slices/terminals.ts'
- 'src/shared/pty-session-id-format.ts'
- 'tools/win-crash-survival-e2e/**'
- 'tools/win-update-e2e/**'
# Why: source tests and benchmarks do not change the packaged artifact;
# their own verify jobs cover them without spending a Windows build slot.
- '!src/**/*.test.*'
- '!src/**/*.bench.*'
workflow_dispatch:
inputs:
expect:
description: Expected outcome profile
required: true
type: choice
default: survival
options:
- survival
- orphaned

permissions:
contents: read

concurrency:
group: win-crash-survival-e2e-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:
crash-survival:
name: crash-survival (packaged build)
runs-on: windows-2022
timeout-minutes: 50
env:
EXPECT: ${{ inputs.expect || 'survival' }}

steps:
- name: Checkout
uses: actions/checkout@v6
with:
# This job only builds and runs the harness locally; it never pushes.
persist-credentials: false

# Why: setup-node can restore pnpm's content-addressed store only after
# the pnpm binary exists, avoiding repeat dependency downloads per run.
- name: Setup pnpm
uses: pnpm/action-setup@v6
with:
run_install: false

- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version-file: package.json
cache: pnpm

- name: Install dependencies
run: pnpm install --frozen-lockfile

# Why: cache the built installer by production build inputs, excluding
# tests/reliability metadata so harness-only edits skip electron-builder.
# The daemon relocation lives under src/, so product changes still rebuild.
- name: Cache branch installer
id: cache-installer
uses: actions/cache@v4
with:
path: dist/orca-windows-setup.exe
key: >-
crash-survival-installer-${{ hashFiles(
'src/**',
'!src/**/*.test.*',
'!src/**/*.bench.*',
'config/**',
'!config/**/*.test.*',
'!config/reliability-gates.jsonc',
'!config/max-lines-baseline.txt',
'!config/vitest.config.ts',
'build-plugins/**',
'native/**',
'resources/**',
'electron.vite.config.ts',
'tsconfig.json',
'vite.web.config.ts',
'.npmrc',
'package.json',
'pnpm-lock.yaml',
'pnpm-workspace.yaml'
) }}

# Why: production edits miss the installer cache by design, but Electron
# and NSIS downloads are lockfile-owned and need not be fetched again.
- name: Cache electron-builder downloads
if: steps.cache-installer.outputs.cache-hit != 'true'
uses: actions/cache@v5
with:
path: |
~\AppData\Local\electron\Cache
~\AppData\Local\electron-builder\Cache
key: crash-survival-electron-builder-${{ hashFiles('pnpm-lock.yaml') }}
restore-keys: |
crash-survival-electron-builder-

- name: Build Windows installer (unsigned)
if: steps.cache-installer.outputs.cache-hit != 'true'
run: |
node config/scripts/ensure-native-runtime.mjs --runtime=electron
pnpm run build:desktop
pnpm exec electron-builder --config config/electron-builder.config.cjs --win --publish never

# Why: silent-install the branch build so the crash harness has a packaged
# Orca.exe to drive. A clean CI runner installs to the default per-user
# location (%LOCALAPPDATA%\Programs\Orca), which the harness auto-locates.
- name: Silent-install branch build
shell: pwsh
run: |
$exe = "dist/orca-windows-setup.exe"
if (-not (Test-Path $exe)) { throw "Installer not found at $exe" }
Start-Process -FilePath $exe -ArgumentList '/S' -Wait
$installed = Join-Path $env:LOCALAPPDATA 'Programs/Orca/Orca.exe'
if (-not (Test-Path $installed)) {
$installed = Join-Path $env:LOCALAPPDATA 'Programs/orca/Orca.exe'
}
if (-not (Test-Path $installed)) { throw "Installed Orca.exe not found after silent install" }
"ORCA_EXE=$installed" | Out-File -FilePath $env:GITHUB_ENV -Append -Encoding utf8

# Why: crash ONLY the app main and assert the relocated daemon + its shell
# survive, then that relaunch adopts them and input causes no pwsh FailFast.
- name: Run crash-survival harness
id: harness
shell: pwsh
env:
ORCA_E2E_DIAG_DIR: artifacts/diag
run: |
New-Item -ItemType Directory -Force artifacts | Out-Null
$log = "artifacts/crash-survival-output.log"
node tools/win-crash-survival-e2e/run.mjs `
--expect "$env:EXPECT" `
--exe-path "$env:ORCA_EXE" `
--soak-seconds 8 2>&1 | Tee-Object -FilePath $log
exit $LASTEXITCODE

- name: Upload crash-survival output
if: always()
uses: actions/upload-artifact@v7
with:
name: win-crash-survival-output
path: |
artifacts/crash-survival-output.log
artifacts/diag/**
retention-days: 7
if-no-files-found: warn
103 changes: 103 additions & 0 deletions .github/workflows/windows-terminal-restart-e2e.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
name: Windows terminal restart E2E

on:
pull_request:
types:
- opened
- synchronize
- reopened
- ready_for_review
paths:
- '.github/workflows/windows-terminal-restart-e2e.yml'
- 'package.json'
- 'pnpm-lock.yaml'
- 'electron.vite.config.ts'
- 'config/patches/**'
- 'config/scripts/ensure-native-runtime.mjs'
- 'config/scripts/rebuild-native-deps.mjs'
- 'tests/playwright.config.ts'
- 'tests/e2e/global-setup.ts'
- 'tests/e2e/global-teardown.ts'
- 'tests/e2e/helpers/**'
- 'tests/e2e/restart-restore-terminal-input.spec.ts'
- 'tests/e2e/restored-terminal-input-readiness.unit.test.ts'
- 'tests/e2e/terminal-probe-input-sequence.ts'
- 'tests/e2e/terminal-probe-input-sequence.unit.test.ts'
- 'tests/e2e/terminal-restart-persistence.spec.ts'
- 'src/main/daemon/**'
- 'src/main/ipc/pty*.ts'
- 'src/main/providers/**'
- 'src/main/pty/**'
- 'src/preload/**'
- 'src/renderer/src/components/terminal-pane/**'
- 'src/renderer/src/lib/pane-manager/**'
- 'src/shared/pty-session-id-format.ts'
workflow_dispatch:
inputs:
ref:
description: Ref to check out
required: false
type: string

permissions:
contents: read

concurrency:
group: windows-terminal-restart-e2e-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:
windows-terminal-restart:
name: Windows terminal restart regressions
runs-on: windows-2022
timeout-minutes: 30
env:
NODE_OPTIONS: --max-old-space-size=4096

steps:
- name: Checkout
uses: actions/checkout@v6
with:
ref: ${{ inputs.ref || github.ref }}
persist-credentials: false

# Why: pnpm must exist before setup-node resolves its dependency cache.
- name: Setup pnpm
uses: pnpm/action-setup@v6
with:
run_install: false

- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version-file: package.json
cache: pnpm

- name: Install dependencies
run: pnpm install --frozen-lockfile

- name: Build Electron app for Windows E2E
run: pnpm exec electron-vite build --mode e2e

- name: Run Windows terminal restart regressions
env:
SKIP_BUILD: '1'
ORCA_E2E_FORWARD_APP_LOGS: '1'
ORCA_REQUIRE_WINDOWS_TERMINAL_RESTART_E2E: '1'
# Why: pnpm forwards a literal `--` to Playwright, which makes the
# grep and worker flags positional filters instead of CLI options.
run: >-
pnpm run test:e2e
tests/e2e/restart-restore-terminal-input.spec.ts
tests/e2e/terminal-restart-persistence.spec.ts
--grep "clean restart with a live daemon session|cold-restored pane accepts typing|daemon snapshot relaunch preserves"
--workers=1

- name: Upload Playwright traces
if: failure()
uses: actions/upload-artifact@v7
with:
name: windows-terminal-restart-playwright-traces
path: test-results/
retention-days: 7
if-no-files-found: ignore
Loading
Loading