What's Changed
- fix(mobile): name task checkboxes from their current task text by @OrcaWin in #35081
- Leave the Plugins shortcut to focused browser pages by @AmethystLiang in #36176
- fix(windows): start the WSL holder outside Orca's jobs so a crash doesn't take it down by @nwparker in #36178
- fix(pi): the thinking menu before the first message matches the chat's by @brennanb2025 in #34592
- fix(mobile): preserve empty tasks through save and reload by @OrcaWin in #35085
- fix(mobile): preserve blocks and images when formatting inline code by @OrcaWin in #35110
- fix(mobile): align task checkboxes with their first text line by @OrcaWin in #35157
- fix(mobile): retain editor styling when switching color schemes by @OrcaWin in #35171
- test: remove low-value copy, layout, and equivalence checks by @OrcaWin in #36192
- fix(explorer): open folder links that lead outside the project again by @nwparker in #36191
- fix(source-control): resolve delete/modify conflicts and complete merges from the panel by @AmoabaKelvin in #35347
- fix(mobile): restore alerts without native push by @AmoabaKelvin in #36125
- Settings: choose Chat or CLI in each agent's row; remove Chat → Providers by @brennanb2025 in #36185
- Warn macOS 12 users about upcoming support changes by @nwparker in #36182
- Let sidebar card properties hide agent model badges by @brennanb2025 in #36026
- fix(native-chat): agent message cards no longer reserve a row for the copy button by @brennanb2025 in #36189
- Choose an agent setup from the new tab menu by @brennanb2025 in #34728
- test: remove low-value wrapper, copy, and theme checks by @OrcaWin in #36202
- feat(source-control): resolve merge conflicts and complete merges from the phone by @AmoabaKelvin in #36160
- Revert "Warn macOS 12 users about upcoming support changes" by @nwparker in #36209
- fix(browser): keep an agent on its own tab when the user picks or opens another by @AmoabaKelvin in #36108
- Show a card in the coordinator's chat when it starts a worker by @brennanb2025 in #35263
- Sanitize Git remote errors before credential redaction by @AmethystLiang in #36205
- fix(agent-status): keep mobile chat attached to idle Claude panes after slash commands by @AmoabaKelvin in #36208
- Warn before trusting non-official plugins; review access-growing updates one by one by @nwparker in #36218
- perf(relay): pause drained settled-credential reaps for 5 minutes by @nwparker in #36144
- feat(telemetry): stop reporting plugin uninstalls (install counts are cumulative) by @nwparker in #36214
- Translate the new plugin list, filter and access strings in every language by @nwparker in #36215
- Keep unrelated agent status updates from redrawing every native chat by @brennanb2025 in #34596
- test(computer): measure independently verified tasks by @AmoabaKelvin in #36216
- fix(plugins): keep trust dialogs, typed pairs and plugin names safe from data plugins by @nwparker in #36220
- Restore OMP thinking choices for non-running models by @brennanb2025 in #36158
- fix(cli): give the Windows user-PATH write 15 s and one retry by @nwparker in #36224
- Keep zoomed PDF detail text sharp by @brennanb2025 in #36173
- Clarify when to run handoff checks by @AmethystLiang in #36231
- fix(runtime): delegated devices follow the device file, and quarantine keeps external adds by @nwparker in #36222
- test: remove 28 low-value test suites by @OrcaWin in #36226
- feat(mobile): match every text input to the chat composer and rebuild the terminal dock by @AmoabaKelvin in #36166
- fix(chat): keep unconfirmed effort menus for agents other than Pi (fixes main OMP tests) by @nwparker in #36242
- refactor(cli): keep the retrying PATH command private to the idempotent write by @nwparker in #36237
- test(computer): verify task event payloads by @AmoabaKelvin in #36239
- fix(computer): verify Linux window restoration by @AmoabaKelvin in #36234
- fix(computer): preserve Unicode in Windows typing by @AmoabaKelvin in #36244
- ci(windows): install Electron once before the Windows boundary tests by @nwparker in #36248
- fix(browser): stop agent tabs in background worktrees reloading every ~10 s by @AmoabaKelvin in #36245
- feat(wsl): let an idle WSL host's orcad exit after 5 minutes by @nwparker in #36243
- fix(browser): save agent downloads to the requested --path and fail fast when none starts by @AmoabaKelvin in #36240
- Keep async question controls available after agent notices by @brennanb2025 in #35758
- fix(editor): scroll combined diffs with keyboard navigation by @brennanb2025 in #35004
- fix(browser): fail with browser_stale_ref when a ref from another tab's snapshot is used after a tab switch by @AmoabaKelvin in #36251
- fix(wsl-cli): removing the WSL command from a deleted distro forgets its registration by @nwparker in #36227
- test(acp): await the escalation's first check and delivery instead of fixed event-loop turns by @nwparker in #36238
- fix(wsl): name the stopped distro, in the user's language, when main holds a terminal start by @nwparker in #36228
- test(e2e): retry a WSL terminate that never took, once, when Orca launched nothing by @nwparker in #36256
- fix(wsl): user clicks on cwd-less gh may start the stopped default distro by @nwparker in #36230
- fix(ui): notification cards lift above a chat composer they would cover by @nwparker in #36233
- fix(cli): preserve runtime access across Linux PID namespaces by @brennanb2025 in #35769
- test(windows): reap every process the isolated-spawner suite starts, including skipped paths by @nwparker in #36249
- Keep existing Continue actions reliable after agent exit and failed starts by @brennanb2025 in #36074
- docs(wsl): say what keeps a WSL distro up besides the holder by @nwparker in #36241
- fix(wsl): re-read a distro's automount root after Orca wakes it, at most every 5 min by @nwparker in #36225
- fix(agent-session): report an ACP or Pi CLI the supervisor could not spawn as missing by @nwparker in #36229
- docs: prefer focused validation in agent instructions by @AmethystLiang in #36264
- fix(e2e): return from every path of the WSL boot guard so main's e2e typecheck ratchet is green again by @AmoabaKelvin in #36261
- fix(browser): agent fill, select, upload and type change the page or fail with a reason by @AmoabaKelvin in #36263
- fix(browser): keep SSH workspace browser pages from reloading when you switch back by @AmoabaKelvin in #36266
- plugins: open only the install-source repository link and render only host-served plugin images by @nwparker in #36270
- docs(plugins): add plugin listing policy by @nwparker in #36275
- fix(browser): snapshot refs work on server browsers that use an external Chromium by @AmoabaKelvin in #36276
- fix(pi): use discovery for shared model menus and defaults by @brennanb2025 in #36194
- fix(plugins): re-verify installed plugin content on every load by @nwparker in #36277
- Keep cancelled async questions hidden and show new ones by @brennanb2025 in #35870
- plugins: require an explicit approve fingerprint for RPC plugin grants by @nwparker in #36279
- fix(browser): let agents and users answer page alert, confirm and prompt dialogs on their page by @AmoabaKelvin in #36268
- plugins: derive the publisher from the repository owner, like a Go module path by @nwparker in #36281
- refactor(jira): group saved-filter picker owners by @nwparker in #36203
- cli: add orca plugin create, validate and inspect by @nwparker in #36280
- docs(plugins): drop the donation-link and description-URL listing rule by @nwparker in #36291
- Allow conflict-safe private storage from plugin panels by @AmethystLiang in #36273
- Reorder same-ID worktrees independently by host by @AmethystLiang in #36269
- perf(terminal): bound the in-process macOS process table's blocking calls and ps fallbacks (#31783) by @nwparker in #36282
- cli: fix orca plugin validate for manifests without a publisher by @nwparker in #36296
- plugins: show the community catalog by default by @nwparker in #36294
- cli: add orca plugin dev load/unload/reload, list, logs, enable and disable by @nwparker in #36288
- Keep worktree branches unless CLI deletion is requested by @brennanb2025 in #35948
- fix(git): read diff blobs without revision path fallback by @OrcaWin in #34778
- fix(browser): find a hidden tab on the first agent command after a window reload by @AmoabaKelvin in #36307
- fix(git): resolve current branches without tag ambiguity by @OrcaWin in #35040
- Revert "Allow conflict-safe private storage from plugin panels" by @AmethystLiang in #36316
- fix(git): preserve commas in legacy history decorations by @OrcaWin in #35658
- chore(deps): update Electron to 43.8.4 by @nwparker in #36323
- fix(git): omit commit subjects from branch-cleanup cherry check by @OrcaWin in #35390
- fix(mobile): fully unstage renamed files by @OrcaWin in #34955
- fix(git): stop stale conflict batches after hide or cleanup by @OrcaWin in #35682
- fix(git): preserve exact local branch names in pickers by @OrcaWin in #34997
- fix(git): parse submodule paths that contain spaces by @OrcaWin in #35012
- perf(git): batch username config reads per resolution by @OrcaWin in #34765
- fix(git): read literal submodule gitlink paths by @OrcaWin in #35283
- fix(source-control): hide discard for present submodule gitlinks by @OrcaWin in #34991
- fix(editor): bound inactive combined diff body retention by @OrcaWin in #34768
- fix(git): fence WSL login-shell stdout for all buffered git reads by @OrcaWin in #35053
- fix(git): preserve rename sources in staged diff reviews by @OrcaWin in #34779
- fix(editor): retain combined diff drafts beyond view history limit by @OrcaWin in #34791
- test: remove 40 low-value test suites by @OrcaWin in #36336
- fix(git): recognize local SHA-256 workspace bases by @OrcaWin in #35010
- perf(git): request only cherry-marks from the upstream patch-equivalence probe by @OrcaWin in #35350
- fix(browser): return every step of an exec batch instead of "Unknown browser error" by @AmoabaKelvin in #36246
- fix(git): preserve foreign ref locks during maintenance by @OrcaWin in #35042
- feat(browser): agent browser actions report what they changed: navigation, tabs, dialogs, downloads, console errors and page lines by @AmoabaKelvin in #36278
- feat(browser): typed snapshot flags, screenshots saved as files, and a guide that keeps browser work in Orca by @AmoabaKelvin in #36257
- fix(computer): initialize Windows control proxies by @AmoabaKelvin in #36383
- feat(browser): let agents drive sign-in and payment popups as pages by @AmoabaKelvin in #36253
- fix(computer): retain wrappers during Linux focus search by @AmoabaKelvin in #36388
- test: remove 39 low-value test suites by @OrcaWin in #36389
- feat(browser): upload through file-picker buttons in any frame, including cross-origin iframes by @AmoabaKelvin in #36390
- test: remove 45 low-value suites (audit 843) by @OrcaWin in #36396
- feat(mobile): iPhone Duo key rail with D-pad, split terminal panes and half-fold layout by @AmoabaKelvin in #35177
- fix(computer): preserve synthetic Unicode typing on Linux by @AmoabaKelvin in #36382
- chore(mobile): bump to 0.0.61 and Android versionCode 25 by @AmoabaKelvin in #36402
- fix(browser): orca download saves new-tab and popup-page downloads to --path by @AmoabaKelvin in #36397
- fix(browser): list browser tabs restored after a restart in tab list and load them on switch by @AmoabaKelvin in #35563
- test: remove 46 low-value test suites by @OrcaWin in #36403
- Keep unrelated fork PRs off workspace branches by @brennanb2025 in #36299
- fix(native-chat): right-click Copy no longer offers a selection the click missed by @AmoabaKelvin in #36405
- fix(sidebar): don't scroll to the last child when revealing a parent with expanded children by @GoyoBjS in #35917
- Refresh phone tab streams when capabilities change by @brennanb2025 in #36321
- Show effective agent shortcuts in the new tab menu by @brennanb2025 in #36318
- Search connected Linear workspaces from Create-worktree by @brennanb2025 in #36314
- Highlight the active committed file in Source Control by @brennanb2025 in #36301
- feat(cli): open a browser tab in a split pane with
tab create --splitby @AmoabaKelvin in #35665 - fix(plugins): clarify selected themes and confirm other-mode picks by @vale-c in #35926
- Keep pending questions through agent notices and undelivered replies by @brennanb2025 in #36306
- Let automations run in Chat by @brennanb2025 in #34332
- Keep Copilot helper IDs out of terminal recovery by @brennanb2025 in #36324
- Reduce whole-app hitches when many chats are running by @brennanb2025 in #35624
- Orchestration v3: coordinators end their turn and Orca wakes them by @Jinwoo-H in #36137
- Keep unsent hand-off messages after restarting Orca by @brennanb2025 in #34933
- Keep Hermes and Antigravity helper IDs out of terminal recovery by @brennanb2025 in #36349
- Fix macOS daemon PTY kqueue descriptor leak by @brennanb2025 in #16870
- fix(native-chat): keep model picker choices stable during discovery by @brennanb2025 in #36113
- fix(github): honor the saved project account for PR requests by @brennanb2025 in #35023
- test: remove 46 low-value suites (audit 845) by @OrcaWin in #36407
- Keep refreshed Linear Tasks rows current by @brennanb2025 in #34591
- refactor(source-control): move the changed-file tree builder to src/shared by @AmoabaKelvin in #36433
- Keep tab right-click menus open through the opening release by @brennanb2025 in #36308
- fix(cli): choose OpenCode 2 for managed account login by @brennanb2025 in #36292
- fix(plugins): show icon-theme SVGs that omit xmlns (Minimal Icons showed nothing) by @nwparker in #36436
- test: remove 25 low-value suites (audit 846) by @OrcaWin in #36434
- feat(mobile): tap the session title to see its full name, path and host by @brennanb2025 in #30389
- fix(agent-status): settle killed Claude background helpers by @brennanb2025 in #35930
- fix(updater): keep status current after reopening the window by @brennanb2025 in #34104
- test: remove 29 low-value suites (audit 847) by @OrcaWin in #36446
- refactor(jira): colocate row interaction tests by @nwparker in #36362
- fix(browser): stop a two-way paired desktop sending your browser tab back as its own by @AmoabaKelvin in #36447
- fix(editor): reopen Markdown Find on Cmd/Ctrl+F right after closing it by @AmoabaKelvin in #36456
- fix(native-chat): stop a cancelled image leaving an extra space in a hidden chat's message by @AmoabaKelvin in #36448
- Let a coordinator give follow-up work to a finished chat worker by @Jinwoo-H in #36445
- fix(source-control): say "lookup failed" instead of "not ready" on a disabled Create PR/MR by @AmoabaKelvin in #36458
- feat(mobile): unify corner radii across the app by @AmoabaKelvin in #36437
- test: remove 17 low-value suites from audit batch 848 by @OrcaWin in #36461
- fix(persistence): keep profile backup temp names within eCryptfs's 143-byte limit by @bbingz in #33984
- fix(sidebar): stop clipping the child workspaces chip in classic cards by @nwparker in #36460
- plugins: show a catalog entry's own publisher, not the catalog owner by @nwparker in #36466
- fix(plugins): let an enabled plugin syntax beat Orca's guessed language by @nwparker in #36468
- test(windows): give the credential fixture's cold Python start 30s by @OrcaWin in #36465
- plugins: tell once when an automatic update waits for your review by @nwparker in #36462
- fix(mobile): lead workspace-list agent rows with the conversation name by @AmoabaKelvin in #36464
- fix(terminal): stop terminal text turning bold after a restart (STA-4042) by @nwparker in #36463
- A dropped screenshot is written once, straight into the chat's attachment store by @brennanb2025 in #31779
- fix(plugins): stop painting a disabled plugin's terminal theme by @nwparker in #36471
- Choose default models and effort for agents by @brennanb2025 in #36210
- test(plugins): follow per-plugin review for access-growing updates in update e2e by @nwparker in #36473
- fix(native-chat): stop a finished turn announcing "responding" to screen readers by @AmoabaKelvin in #36474
- ci(e2e): route plugin system sources to the plugin e2e specs by @nwparker in #36477
- fix(status-bar): toggle Plugins settings closed on a second click by @nwparker in #36479
- fix(terminal): link a URL wrapped inside a table cell on every row by @AmoabaKelvin in #36482
- docs(orchestration): explain recovery after repeated worker startup failures by @brennanb2025 in #36335
- Show each chat’s account in Session History details by @brennanb2025 in #35392
- fix(ai-vault): clear the Session History search when you switch workspace by @AmoabaKelvin in #36472
- Fail readiness promptly when the terminal exits by @brennanb2025 in #36457
- plugins: add Try it samples for the new official syntax plugins by @nwparker in #36486
- fix(agents): bundle the CodeBuddy icon instead of the Google favicon fallback by @qiuziz in #36265
- fix(rate-limits): show Cursor usage for team-limited accounts by @david-arcade-dev in #36394
- fix(azure-devops): negotiate API version down for older Azure DevOps Server by @vherrera1991 in #36424
- fix(i18n): translate recent desktop and mobile copy by @AmethystLiang in #36489
- fix(settings): keep the agent environment editor reachable when empty by @ggbdpq in #36034
- fix(readme-links): check mixed-case src/href/srcset attributes in README link check by @blueDaydreaming725 in #36213
- fix(windows): skip the ConPTY input-reader check on WinPTY panes by @nwparker in #36490
- Explain Git Bash console exhaustion when terminal startup fails by @brennanb2025 in #36422
- Reserve the Git Bash capacity overlay for untouched Windows startup failures by @brennanb2025 in #16991
- fix(worktrees): rewrite a trailing .lock in derived branch names by @bercedev in #36435
- Keep concurrent title edits when marking GitLab MRs ready by @brennanb2025 in #19646
- fix(wsl): keep the server's idle window out of user shells; require the agent for discovered effort menus by @nwparker in #36492
- fix(text-generation): discover nvm/version-manager CLIs for chat naming and one-shot generators by @gentslava in #35954
- fix(editor): apply file icon themes to editor tabs by @Pr1p in #36345
- fix(agents): accept launch-time --model and --effort for grok by @nwparker in #36480
- A chat rename also renames the agent's own conversation by @brennanb2025 in #34192
- feat(wsl): prefetch the pinned Node archive when WSL hosts turn on by @nwparker in #36500
- fix(agent-status): stop showing Claude as Working after a hook blocks the prompt by @AmoabaKelvin in #36495
- fix(terminal): hold a phone send until a new Claude tab's composer is up by @AmoabaKelvin in #36494
- fix(web): show every session when History is set to Unlimited by @AmoabaKelvin in #36507
- test: remove 39 low-value suites from audit batch 849 by @OrcaWin in #36491
- Chat UI leaves Experimental: each agent's Chat or CLI choice decides what opens by @brennanb2025 in #36110
- fix(mobile): keep Markdown editor selection visible deep in long files by @AmoabaKelvin in #36505
- Add Chat UI upgrade tip and Chat/Terminal default tiles by @brennanb2025 in #36171
- Show a details card when tapping phone session tabs by @brennanb2025 in #36395
- fix(wsl): re-check WSL hosts before the delayed Node prefetch runs by @nwparker in #36514
- test: remove 31 low-value suites from audit batch 850 by @OrcaWin in #36512
- fix(mobile): draw Claude Code's ⏵⏵ mode marker in the Android terminal by @AmoabaKelvin in #36516
- fix(codex): keep a hook-blocked prompt's Worked for line after reopen by @AmoabaKelvin in #36515
- Keep declared default effort visible for every chat agent by @brennanb2025 in #36455
- fix(browser): let Grab and Annotate pick elements in modal dialogs and popovers by @AmoabaKelvin in #36518
- feat(plugins): link plugin pages to the README at the pinned release by @nwparker in #36527
- fix(browser): present Electron's own user agent on Google sign-in pages by @AmoabaKelvin in #36519
- fix(plugins): accept plain repo, release and tag page URLs in Git install by @nwparker in #36525
- chore(scripts): reclaim historical test caches from idle worktrees without --tests-stopped by @nwparker in #36532
- fix(native-chat): keep chat image thumbnails square while scrolled away or loading by @AmoabaKelvin in #36488
- fix(process-host): never kill an isolated child whose exit it cannot watch by @nwparker in #36521
- test: remove 30 low-value test suites by @OrcaWin in #36528
- fix(plugins): protect every security and destructive string from language packs by @nwparker in #36219
- perf(notifications): scope card layout vars to their readers instead of :root by @nwparker in #36531
- feat(mobile): compact top bar, bottom search and filter chips by @AmoabaKelvin in #36535
- feat(mobile): rebuild Home around what needs you, with actions pinned at the bottom by @AmoabaKelvin in #36520
- feat(plugins): show public install counts in the plugin catalog by @nwparker in #36537
- feat: add Slatewave terminal theme by @kevinlangleyjr in #9059
- Print concise orchestration CLI output for agents, with --full for the full record by @Jinwoo-H in #36498
- test: remove 17 low-value mock and forwarding suites by @OrcaWin in #36549
- test(wsl): track reopening Orca after orcad's idle exit in the lane receipt by @nwparker in #36523
- Support automations in Orca Mobile by @brennanb2025 in #31617
- fix(updater): skip apt's _apt sandbox notice in the Linux .deb install command by @SandeepSAulakh in #35643
- fix(dashboard): open OSC 8 hyperlinks on Mod+click in Agent Dashboard terminal previews by @alpenshtokk in #36483
- fix(cloud): patch relay, push and connector images to Node 24.22.2 and current Alpine fixes by @nwparker in #36560
- Stop attributing recovered ACP replies to outside activity by @brennanb2025 in #36302
- Let phone users choose the next message’s model during a structured reply by @brennanb2025 in #36451
- fix(relay): cap HTTP request bodies before they are buffered, including chunked ones by @nwparker in #36562
- test: remove 16 low-value forwarding and identity suites by @OrcaWin in #36566
- test(windows): close the Chat UI tip before creating a workspace by @brennanb2025 in #36547
- Stabilize the Git watcher upgrade fanout test by @brennanb2025 in #36517
- Keep settled permission notices compact on desktop and phone by @brennanb2025 in #36304
- perf(worktree): check out new worktrees with all cores by @AmoabaKelvin in #36559
- feat(mobile): redesign sheets, pickers and list screens by @AmoabaKelvin in #36585
- test: remove 13 low-value forwarding and presentation suites by @OrcaWin in #36584
- fix(tasks): remove IPC wrappers from GitLab list errors by @brennanb2025 in #36506
- feat(worktree): open the native chat while its worktree is still being created by @AmoabaKelvin in #36556
- test: remove 14 low-value mocked forwarding suites by @OrcaWin in #36592
- test(terminal): add unifiedTabsByWorktree to the fish color-scheme test's store fixture by @brennanb2025 in #36586
- Always submit an orchestration wake once it has been typed by @Jinwoo-H in #36511
- Add --spec-file and one keep-open name to orchestration worker commands by @Jinwoo-H in #36545
- Soften dark mode app text contrast by @AmethystLiang in #36595
- Name worker-keep-open in the orchestration recovery reference by @Jinwoo-H in #36599
- test: remove 24 low-value fixture and forwarding suites by @OrcaWin in #36600
- test(wsl): time the lane's first output without the agent-paste Enter settle by @nwparker in #36598
- ci: remove dependency review Slack notification job by @nwparker in #36611
- Render CodeRabbit review icons in git comments by @AmethystLiang in #36198
- Let send talk to a worker in any state, reopening closed workers for follow-ups by @Jinwoo-H in #36533
- Share chat options read ownership across desktop and phone by @brennanb2025 in #36582
- Expire unclaimed chat uploads after seven days by @brennanb2025 in #36597
- Keep orchestration list output short by @Jinwoo-H in #36622
- test: remove 14 low-value suites and 119 individual cases by @OrcaWin in #36617
- ci: drop the removed notify job from the release-cut permissions test by @brennanb2025 in #36621
- perf(terminal): submit at once to a shell idle at its prompt by @nwparker in #36614
- feat(wsl): offer a \wsl.localhost project's distro as a host; explain WSL 1 and empty distro lists by @nwparker in #36615
- fix(wsl): find distros when wsl.exe drops its redirected list output by @nwparker in #36616
- fix(native-chat): save each chat change as keyed records and reopen from the newest by @brennanb2025 in #36024
- Guard concise orchestration list output against long text by @Jinwoo-H in #36625
- feat(markdown): expand Mermaid diagrams into the pan and zoom viewer everywhere by @nwparker in #36575
- plugins: ask "Make sure you trust " before installing any non-official plugin by @nwparker in #36271
- Make explicit hosted review refresh fetch current provider state by @brennanb2025 in #36522
- test: remove nine low-value suites and 147 individual cases by @OrcaWin in #36629
- fix(plugins): refresh dev-folder icon themes when SVGs change in place by @nwparker in #36636
- ci(e2e): route feature-area sources to their nightly-only e2e specs by @nwparker in #36639
- plugins: Try it on a syntax plugin opens a blank untitled file by @nwparker in #36637
- i18n(plugins): translate missing plugin strings in all locales by @nwparker in #36642
- fix(plugins): link community plugins to the author's repository, not the mirror by @nwparker in #36638
- Release idle renderer completion feed owners by @brennanb2025 in #34987
- Share chat option writes across desktop and phone by @brennanb2025 in #36624
- Native chat: queue messages sent while the agent works (on by default, Settings toggle, Cmd/Ctrl+Enter to send one now) by @brennanb2025 in #36588
- fix(windows): stop each WSL host's server on uninstall so its distro can stop by @nwparker in #36612
- fix(test): keep unit-test tooling inside the repo root in nested checkouts by @nwparker in #36657
- test: remove eight low-value suites and 198 individual cases by @OrcaWin in #36650
- fix(checks): accept intentionally empty oxlint selections by @nwparker in #36664
- refactor(cloud): group relay assignment headroom modules by @nwparker in #36665
- feat(themes): per-folder-name icons in plugin icon themes by @nwparker in #36565
- Open chats move to the account you switch to, before their next message by @brennanb2025 in #30955
- refactor(cloud): group relay assignment locking tests by @nwparker in #36671
- test: remove 10 low-value suites and 130 individual cases by @OrcaWin in #36672
- refactor(renderer): group Jira sorting tests by @nwparker in #36677
- refactor: group journal body-admission and producer tests by @nwparker in #36682
- fix(wsl): startup CLI reconciliation never inspects distros Orca has no record of by @nwparker in #36683
- test: remove 19 low-value suites and 200 individual cases by @OrcaWin in #36681
- fix(runtime-host): Explorer and Source Control load again once a runtime host answers by @nwparker in #36684
- refactor(mobile): colocate chat pinch gesture hook and tests by @nwparker in #36690
- test: remove 14 low-value suites and 241 individual cases by @OrcaWin in #36693
- refactor(mobile): colocate native chat readability hook and tests by @nwparker in #36699
- test: remove 17 low-value suites and 133 individual cases by @OrcaWin in #36700
- refactor(mobile): colocate chat pair-window regression test by @nwparker in #36702
- test: remove 11 low-value suites and 157 individual cases by @OrcaWin in #36703
- refactor(shared): colocate structured session event coalescer by @nwparker in #36708
- test: remove 16 low-value suites and 138 individual cases by @OrcaWin in #36710
- refactor(shared): colocate legacy session child-work projection by @nwparker in #36711
- Let workers follow up with their own finished helpers by @brennanb2025 in #36663
- test: remove 266 low-value tests by @OrcaWin in #36717
- fix(native-chat): new chats' model picker opens with the full list instead of a partial one by @brennanb2025 in #36646
- Native chat: Stop turns into Send while you type a follow-up, with a shortcut hint by @brennanb2025 in #36655
- Preserve queued command and card order through recovery by @brennanb2025 in #36430
- refactor(shared): colocate session thread-goal contracts by @nwparker in #36720
- test: remove 187 low-value tests by @OrcaWin in #36724
- refactor(shared): colocate session failure detail readers by @nwparker in #36727
- fix(github): make Checks refresh start a new PR read by @brennanb2025 in #36651
- test: remove 226 low-value tests by @OrcaWin in #36737
- fix(shortcuts): avoid Plugins strikethrough shortcut conflict by @AmethystLiang in #36741
- test: remove 272 low-value tests by @OrcaWin in #36750
- Adjust default dark theme text to midpoint gray by @AmethystLiang in #36756
- fix(ui): widen quick commands dropdown by @AmethystLiang in #36757
- fix(terminal): scope terminal color overrides to their light/dark theme slot by @nwparker in #36581
- test: remove 206 low-value tests by @OrcaWin in #36759
- fix(wsl): restoring or switching to a WSL host workspace never boots its stopped distro by @nwparker in #36688
- fix(menu): restore native DevTools routing outside managed pages by @AmethystLiang in #36763
- refactor(shared): colocate compaction and command entry owners by @nwparker in #36738
- Orchestration guide: keep open workers the user will keep using by @Jinwoo-H in #36764
- test: remove 287 low-value tests by @OrcaWin in #36766
- docs: clarify low-value test removal guidance by @OrcaWin in #36768
- refactor: colocate structured session tool-call projection by @nwparker in #36770
- fix(windows): stop WSL host servers before releasing holders, in a fixed budget by @nwparker in #36769
- fix(wsl-host): keep a host's launch markers out of its shells; a corrupt WSL store hides only WSL hosts by @nwparker in #36772
- fix(wsl): Stage 1 is opt-in: the offer moves only its project, and D1c Git follows the setting by @nwparker in #36773
- feat: make the workspace name emoji picker discoverable by @AmethystLiang in #36761
- test: remove 246 low-value tests by @OrcaWin in #36780
- fix(wsl): keep WSL exec checks off the main thread and share running-list reads by @nwparker in #36777
- Orchestration: keep open workers started in a new workspace by @Jinwoo-H in #36782
- Keep orchestration inbox output short by @Jinwoo-H in #36626
- refactor: import Codex session types from defining owner by @nwparker in #36785
- fix(wsl): offer Start wherever a stopped WSL host leaves the workspace stuck by @nwparker in #36786
- feat(wsl): a WSL hosts block learned mid-run stops new work at once by @nwparker in #36776
- refactor: colocate background-task session contracts by @nwparker in #36798
- test: remove 512 low-value tests by @OrcaWin in #36794
- fix(markdown): keep the Mermaid expand button out of PDF and HTML exports by @nwparker in #36631
- fix(wsl): a restored chat or a web hooks check never starts a stopped distro (E9) by @nwparker in #36779
- refactor: colocate structured session live reads and reconnect scheduling by @nwparker in #36807
- fix(wsl): hide the D1c Settings rows whenever WSL hosts take no new work by @nwparker in #36808
- fix(wsl): retry the setup-runner .git link read and fall back to the distro's Git by @nwparker in #36792
- feat(editor): SVG preview + source, and a drag-to-pan image viewer by @nwparker in #36576
- feat(wsl): an automatic release path that never boots a distro or sleeps a terminal (bring-back 2/4) by @nwparker in #36809
- fix(wsl): fail closed on an unknown default distro, stop no-start connects on a stop, and say unknown when WSL can't answer (E9) by @nwparker in #36797
- refactor: colocate native-chat agent support by @nwparker in #36816
- feat(mobile): draw SVG files and pinch-zoom every image preview, Android included by @nwparker in #36608
- Check only orchestration mailboxes with mail on input edges by @Jinwoo-H in #36644
- fix(ssh): prune superseded staged server builds when an update defers by @nwparker in #35881
- Start worker follow-ups with a short task and deliver mail normally by @Jinwoo-H in #36774
- Stop blaming a chat worker's follow-up for the turn that reported by @Jinwoo-H in #36811
- feat(mobile): pinch-zoom Mermaid diagrams, and zoom images without zooming the page by @nwparker in #36648
- Avoid blank PDF pages from Mermaid Preview’s code wrapper by @nwparker in #25621
- fix(editor): render formatted Mermaid labels safely by @nwparker in #25554
- End multiple PTYs without blocking the Resource Manager by @AmethystLiang in #36753
- fix(serve): a service installed from the AppImage keeps its launch out of PATH by @nwparker in #36819
- refactor: colocate native-chat agent profiles by @nwparker in #36820
- fix(editor): copy SVG images with HTML labels as PNG by @nwparker in #36823
- fix(wsl): a stopped distro's messages say Start or a new terminal starts it, not switching projects by @nwparker in #36771
- fix(sidebar): resolve a header's create host and host label from the header itself by @nwparker in #36826
- docs(plugins): theme and syntax entries take title, not label by @ggbdpq in #36706
- test(automations): pin the Q→S operation bounds at 20 and 100 prior turns instead of 1000 by @nwparker in #36829
- perf(mobile): send worktree catalog polls as row deltas by @nwparker in #36799
- refactor: colocate native-chat noise filtering by @nwparker in #36824
- fix(theme): built-in color pairs meet WCAG AA and dark-mode surfaces stay themed by @nwparker in #36561
- fix(files): keep staged saves reserved through commit by @nwparker in #36832
- fix(terminal): respawn restored local panes silently when the daemon reports their session gone by @Pr1p in #36620
- Orchestration guide: hand off when nothing needs to come back by @Jinwoo-H in #36833
- fix(orcad): remove the browser sidecar profile a crashed orcad left behind by @nwparker in #36834
- refactor: colocate native-chat reasoning-order contract spec by @nwparker in #36837
- fix(plugins): wire the plugin service on a headless serve, and turn plugins on from the CLI by @nwparker in #36838
- fix(git): match numstat rename detection to status so moved files get line counts by @bbingz in #36698
- Close the terminal before continuing its conversation in chat by @brennanb2025 in #36732
- perf(mobile): read home worktree counts through catalog deltas by @nwparker in #36800
- test: remove 174 low-value tests, including 23 suites by @OrcaWin in #36844
- Open native chats on the phone in place by @brennanb2025 in #36315
- perf(mobile): gzip large frames for phones that read them by @nwparker in #36801
- Continue a usage-limited chat with another account or agent by @brennanb2025 in #31241
- New tab menu: agents keep their usual order whether set to Chat or CLI by @brennanb2025 in #36840
- fix(runtime): bring runtime-identity-state back under the size cap by @nwparker in #36852
- feat(editor): one typography resolver for every Monaco surface + opt-in weight, line height, ligatures, size and macOS smoothing by @nwparker in #36577
- feat(themes): public tokens for diffs, git status, tabs, dividers, rows, links by @nwparker in #36578
- refactor(mobile): move the bridge connection snapshot into its own module by @nwparker in #36818
- fix(ui): make dark-mode checkbox borders visible by @AmethystLiang in #36867
- Show agent message cards in phone chats by @brennanb2025 in #36162
- fix(mobile): stop calling a host Disconnected while a dial is in progress by @nwparker in #36802
- Orchestration: fix agent instructions that misdirect workers and coordinators by @Jinwoo-H in #36803
- Agent message cards keep their sender's agent icon when the agent can't be found by @brennanb2025 in #36653
- feat(mobile): polish press feedback, sheet motion, states, spacing and layout jumps by @AmoabaKelvin in #36713
- feat(themes): background images for app themes by @nwparker in #36589
- test: remove 247 low-value tests, including 22 suites by @OrcaWin in #36857
- fix(orchestration): bring federated-worker-start back under the size cap by @nwparker in #36875
- perf(mobile): send paired-server workspace polls as row deltas by @nwparker in #36859
- Agent setup panel no longer renders behind the new tab menu by @brennanb2025 in #36839
- feat(mobile): put Settings, Source Control and remaining lists on the shared rows and top bar by @AmoabaKelvin in #36719
- refactor: group shared native-chat model and transcript owners by @nwparker in #36843
- perf(mobile): answer the host screen's repo poll unchanged when repos stay the same by @nwparker in #36860
- refactor: group shared agent-session options and catalogs by @nwparker in #36878
- perf(mobile): open the page on the status its shell already proved by @nwparker in #36861
- perf(mobile): draw a host's first rows while its full catalog arrives by @nwparker in #36862
- fix(mobile): keep a first open checking while its dial is still retrying by @nwparker in #36863
- test: remove 317 low-value tests, including 31 suites by @OrcaWin in #36877
- fix(mobile): give a direct handshake as long as the desktop allows it by @nwparker in #36864
- feat(mobile): press feedback everywhere, smoother motion, and Reduce Motion for sheets by @AmoabaKelvin in #36885
- fix(wsl-host): a pane parked by a stopped host reopens once Start brings the host back by @nwparker in #36784
- fix(native-chat): keep line breaks in question card text by @AmoabaKelvin in #36893
- fix(terminal): apply padding to both edges of each axis by @anmol0b in #36789
- test: remove 326 low-value tests, including 16 suites by @OrcaWin in #36894
- fix(emulator): send Android input through the scrcpy control socket by @Moran45 in #36530
- fix(pi): preserve session titles after turns by @bbingz in #36822
- fix(new-workspace): offer project switch for cross-repo GitHub links from upstream-only projects by @nwparker in #36896
- Simplify workspace loading status in sidebar by @AmethystLiang in #36899
- fix(emulator): show iOS simulators upright using serve-sim's reported orientation by @AmoabaKelvin in #36900
- feat(editor): click-to-zoom image viewer like Chromium, Alt-drag to pan by @nwparker in #36898
- test: remove 262 low-value test cases, including 39 suites by @OrcaWin in #36901
- refactor: group shared journal and request contracts by @nwparker in #36882
- fix(mobile): guard catalog snapshots against late replies and trim the snapshot paths by @nwparker in #36902
- perf(mobile): lighter liveness probes, preview-free terminal lists, cheaper terminal gzip by @nwparker in #36903
- refactor(github): share the inline PR comment line rule with mobile by @AmoabaKelvin in #36904
- fix(mobile): run the repo's archive hook when deleting a workspace from the phone by @AmoabaKelvin in #36481
- refactor(agent-session): group failure modules and use direct owner imports by @nwparker in #36906
- test: remove 253 low-value test cases, including 28 suites by @OrcaWin in #36907
- feat(editor): choose a code editor theme independently of the app theme by @nwparker in #36570
- Chat UI launch by @nwparker in #36891
- fix(ci): include cloud configs in Windows SSH checkout by @nwparker in #36912
- perf(diff): stop combined diff sections re-rendering on unrelated settings writes by @nwparker in #36921
- Refuse main-window permission requests from plugin frames by @nwparker in #36812
- feat(skills): silently update unedited Orca skills per skill; prompt only for the rest by @nwparker in #36889
- fix(mobile): keep Attach Photos working while desktop requests are stalled by @AmoabaKelvin in #36922
- fix(wsl): turning the WSL hosts setting off keeps saved hosts serving; it stops only new hosts and moves by @nwparker in #36783
- Reuse existing tab groups for link opens by @AmethystLiang in #36915
- fix(accounts): restart running Claude sessions when the account is switched from the phone by @AmoabaKelvin in #36933
- Show child activity counts inside the children toggle by @nwparker in #36951
- Isolated plugin frames, off by default by @nwparker in #36813
- fix(agents): open a shell, not an unrequested chat, in empty workspaces when the default agent is Auto by @AmoabaKelvin in #36927
- test: remove 411 low-value test cases, including 30 suites by @OrcaWin in #36916
- test(mobile): fix dictation bridge-budget test failing on main under Bun by @nwparker in #36938
- fix(wsl): host-row Start follows the same precedence as the other surfaces; Start's reload doesn't wake by @nwparker in #36934
- feat(mobile): collapse sub-agent lists by default and group idle sub-agents by @nwparker in #36939
- feat(git): git.history pages a branch's own commits with pushed state by @AmoabaKelvin in #36962
- feat(themes): Match Terminal becomes a real app theme for the whole window by @nwparker in #36567
- Update WeChat community QR code for group 14 by @AmethystLiang in #36943
- feat(themes): show the theme background image through native chat by @nwparker in #36796
- docs: clarify scoped validation before handoff by @AmethystLiang in #36940
- refactor(agent-session): group lifecycle contracts and records by @nwparker in #36909
- docs: make scoped validation example portable by @AmethystLiang in #36946
- Keep a kept-open worker open across follow-ups by @Jinwoo-H in #36954
- feat(file-explorer): add Open in submenu to explorer row context menu by @allangnutzmans in #36895
- Build-less TS/TSX plugins, typings and authoring tools by @nwparker in #36918
- Components (TSX) plugin panels by @nwparker in #36814
- Refactor AGENTS.md for clarity and importance by @nwparker in #36971
- Fix typo and enhance clarity in AGENTS.md by @nwparker in #36972
- feat(sidebar): collapse sub-agent lists by default and group idle sub-agents by @nwparker in #36936
- fix(mobile): stop the unfolded iPhone Duo crashing when the split keyboard opens by @AmoabaKelvin in #36948
- Improve agent picker updates and menu pointer handoffs by @AmethystLiang in #36874
- fix(mobile): stop the chat jumping up when history draws during an Android scroll by @AmoabaKelvin in #36949
- feat(window): working background opacity and blur on macOS, Windows and Linux by @nwparker in #36580
- fix(native-chat): steer async question answers instead of queuing duplicates by @OrcaWin in #36917
- Turn isolated plugin frames on by default by @nwparker in #36821
- fix(ui): toasts sit behind a modal's backdrop until pressed, instead of looking live but dead by @nwparker in #36888
- Reland title-sized tabs as an experiment that holds widths through agent renames by @AmethystLiang in #34527
- docs: restore the blank line after the AGENTS.md heading by @nwparker in #36985
- fix(mobile): render inline HTML cards and previews on iOS by @AmoabaKelvin in #36986
- fix(runtime): headless hosts record terminal activity so the phone's Recent sort moves by @AmoabaKelvin in #36974
- fix(wsl): an automation wake no longer boots a host for a run it already ran by @nwparker in #36981
- fix(mobile): send iPhone library photos as JPEG named .jpg, not HEIC named .png by @AmoabaKelvin in #36989
- Plugin test kit: orca/testing, orca plugin test and orca plugin check by @nwparker in #36969
- fix(wsl): shared background passes don't inherit a WSL user act by @nwparker in #36993
- test: remove 205 low-value test declarations, including 30 suites by @OrcaWin in #36975
- refactor(shared): organize session contracts and projections by @nwparker in #36979
- Plugin dev loop: TS workers, hot reload with state, orca plugin dev watch, authoring skill by @nwparker in #36982
- Remove 699 low-value test declarations and 116 suites by @OrcaWin in #37002
- refactor(renderer): colocate Jira board and list owners by @nwparker in #37006
- fix(notifications): leave orchestration workers' finished turns to their coordinator by @AmoabaKelvin in #36968
- fix(readme-links): keep commas inside srcset URLs when checking README links by @blueDaydreaming725 in #36957
- test: remove 278 low-value declarations and 31 suites by @OrcaWin in #37007
- Plugin panels talk to their worker; panel storage, settings and agent events by @nwparker in #37013
- refactor: group renderer session launch owners by @nwparker in #37018
- Plugin dev loop: orca plugin open/shot, dev emit, and dogfood fixes by @nwparker in #37008
- test: remove 181 low-value tests and 2 suites by @OrcaWin in #37024
- Components catalog 2 and worker tests: forms, tabs, table, tree, markdown, code, images by @nwparker in #36997
- Plugin dev emit reaches panels; trim the plugin authoring skill by @nwparker in #37026
- test: remove 157 low-value tests and route-contract suite by @OrcaWin in #37038
- refactor: group Claude structured session owners by @nwparker in #37036
- Plugin check runs the worker; check scenarios; RelativeTime by @nwparker in #37047
- test: remove 167 low-value tests and two CI tooling suites by @OrcaWin in #37053
- fix(mobile): show workspace images in session Markdown tabs by @AmoabaKelvin in #36970
- fix(mobile): keep the app's state and layout when entering split screen on Android by @AmoabaKelvin in #36977
- Plugin dev loop: dev request, shot --act, worker-panel template, output polish by @nwparker in #37049
- refactor(mobile): organize native chat view and transcript modules by @nwparker in #37054
- fix(mobile): keep the cursor and keyboard when tapping an autocorrected word on Android by @AmoabaKelvin in #36947
- fix(mobile): scroll wide tables sideways in the rich Markdown editor by @AmoabaKelvin in #36966
- fix(mobile): build iOS from checkout paths with spaces by @AmoabaKelvin in #37058
- Plugins: workspace.changed tells each new listener the current workspace by @nwparker in #37044
- feat(notifications): separate needs-input alerts from finished alerts on desktop and phone by @AmoabaKelvin in #36941
- fix(native-chat): show screenshots agents read, and inline markdown images on mobile by @AmoabaKelvin in #36953
- fix(mobile): queued-message panel fits its rows and Save/Cancel fit their labels by @AmoabaKelvin in #36928
- fix(native-chat): keep Claude's reply visible when a Stop hook sends it back by @AmoabaKelvin in #36944
- test: remove 56 low-value tests and two suites by @OrcaWin in #37057
- fix(notifications): hold "finished" until background subagents and worker waits are done by @AmoabaKelvin in #36992
- fix(browser): keep an agent's page drawing in a hidden worktree while it drives it by @AmoabaKelvin in https://github.com/stablyai/orca/pull/37076
- refactor: organize runtime session records and lifecycle owners by @nwparker in https://github.com/stablyai/orca/pull/37070
- Plugin check shows what drew; responsive Table columns; quieter Table and Stack by @nwparker in https://github.com/stablyai/orca/pull/37062
- fix(browser): agent fill, select, type and select-all on external-Chromium server browsers fail instead of faking success by @AmoabaKelvin in https://github.com/stablyai/orca/pull/37080
- Keep pending chat visible until the worktree chat opens by @AmethystLiang in https://github.com/stablyai/orca/pull/36920
- fix(floating-workspace): focus the browser page when the panel opens with it in front by @AmoabaKelvin in https://github.com/stablyai/orca/pull/37079
- Show tab previews only when titles are clipped by @AmethystLiang in https://github.com/stablyai/orca/pull/37085
- test: remove 240 low-value tests by @OrcaWin in https://github.com/stablyai/orca/pull/37077
- Plugin shots wait for the worker and restore after --act; terminal approval prompt by @nwparker in https://github.com/stablyai/orca/pull/37066
- fix(test): correct structured session lifecycle imports by @AmethystLiang in https://github.com/stablyai/orca/pull/37088
- refactor(persistence): replace forwarding entry with concrete owner imports by @nwparker in https://github.com/stablyai/orca/pull/37081
- build(mobile): raise the page bundle's code fence from 9 to 9.5 MiB by @AmoabaKelvin in https://github.com/stablyai/orca/pull/37014
- feat(github): let paired phones turn a pull request back into a draft by @AmoabaKelvin in https://github.com/stablyai/orca/pull/37000
- docs: check CI at seven-minute intervals by @AmethystLiang in https://github.com/stablyai/orca/pull/37094
- feat(mobile): open every changed file on the diff screen by @AmoabaKelvin in https://github.com/stablyai/orca/pull/36937
- fix(browser): let heavy pages open all their connections through the paired tunnel by @AmoabaKelvin in https://github.com/stablyai/orca/pull/37087
- Make agent activity card timestamps easier to scan by @AmethystLiang in https://github.com/stablyai/orca/pull/37096
New Contributors
- @GoyoBjS made their first contribution in #35917
- @vale-c made their first contribution in #35926
- @qiuziz made their first contribution in #36265
- @david-arcade-dev made their first contribution in #36394
- @vherrera1991 made their first contribution in #36424
- @kevinlangleyjr made their first contribution in #9059
- @SandeepSAulakh made their first contribution in #35643
- @alpenshtokk made their first contribution in #36483
- @Moran45 made their first contribution in #36530
- @allangnutzmans made their first contribution in #36895
Full Changelog: v1.4.245...v1.4.246