stablyai Release Notes
45 release notes curated from 1 source by the Releasebot Team. Last updated: Oct 21, 2026
stablyai Products
- Oct 20, 2026
- Date parsed from source:Oct 20, 2026
- First seen by Releasebot:Oct 21, 2026
v1.4.235
orca releases a broad update that makes Claude chats easier to rewind and revisit, preserves full agent replies and tool results, and improves phone workflows. It also speeds workspace navigation, reduces background editor activity, and strengthens file safety and remote-workspace reliability.
Thank you so much for using Orca and for your continued support! ❤️
This release makes conversations easier to revisit, keeps more of your agent's work, and cuts background editor activity when you're juggling workspaces.
The short version
- Rewind Claude chats: Use Rewind to here on a message that started a turn, edit your prompt, and take the conversation in a new direction. Claude continues from the history you kept.
- Your chat, your settings: Each conversation remembers its own model, effort and Fast settings. Switching models keeps compatible choices, and changes to an agent's defaults no longer silently move a chat that has recorded its settings.
- Keep more of your agent's work: Completed replies and tool results are saved in full rather than cut off at the preview limit. Use Show full output on desktop or phone, or Show full message on phone, to load more content from shortened previews.
- Less waiting, less background work: New Chat opens the composer immediately, Codex chats get the time they need to start, and the workspace jump palette is preloaded. The editor watches active, recent and at-risk workspaces instead of every workspace with an open tab.
- A better phone experience: Live chats reconnect from where they left off, project groups stay in step with desktop, and ready cloud dictation models can be selected from the phone. Workspace creation starts preparing the checkout while you fill in the form.
- Everyday polish: Edit images in queued desktop messages, see machine labels only when project names collide, and get more reliable workspace lists, file-conflict handling and remote workflows.
- Phone updates: Updating Orca on your desktop also updates the app on your connected phone—the phone loads it directly from your desktop.
Compatibility & upgrade notes
- Native chat (experimental): Keep paired and SSH hosts updated alongside Orca for the latest chat features. Full-content loading requires host support; content discarded by older versions cannot be recovered. Very large items may still be shortened for display or delivery.
- Cloud dictation: Select a ready cloud model from the phone's dictation setup or Settings → Voice. Configure its API key on the computer serving the phone first.
Product experience
Native chat (experimental)
Revisit Claude conversations, keep each chat’s settings consistent, and work with images and long outputs more comfortably.
- Rewind Claude chats from messages that started a turn, continuing with the conversation you kept by @brennanb2025 in #30400
- Remember model, effort, speed and Fast choices per conversation, including across restarts by @brennanb2025 in #30561
- Save completed replies and tool results in full, with controls to load more from shortened previews by @brennanb2025 in #29982
- Edit images in queued desktop messages: remove, paste, drop or attach by @brennanb2025 in #30815
- Open the New Chat composer immediately while the host gets ready by @brennanb2025 in #29358
- Wait for Codex when opening or resuming a chat instead of failing after 30 seconds by @brennanb2025 in #30395
- Name chats from the first message immediately, even if automatic title generation fails by @brennanb2025 in #30392
- Avoid starting user MCP servers and hooks for background Claude runs by @brennanb2025 in #30939
- Clarify labels for switching agents between terminal and chat by @AmethystLiang in #31134
- Polish the appearance of chat question options by @AmethystLiang in #31219
Phone
Keep conversations and project groups current, create workspaces with less waiting, and select cloud dictation models directly from your phone.
- Reconnect a chat’s live feed from its last received row when the stream ends by @brennanb2025 in #29007
- Update projects, project groups and workspace rows together so phone grouping stays in sync by @Jinwoo-H in #31102
- Prepare the worktree checkout while the new-workspace form is open by @AmoabaKelvin in #31167
- Select ready cloud dictation models from setup and Settings → Voice by @nwparker in #31221
- Show mobile home statistics when connected to an orca serve host by @nwparker in #31197
- Keep chat composer controls inside their row by @brennanb2025 in #28983
- Keep session tab icons full size beside long titles by @AmoabaKelvin in #31169
Editor, performance & file safety
Reduce background file watching, speed up workspace navigation, and make reloads and save conflicts more dependable across tabs and devices.
- Watch active, recent and at-risk workspaces; refresh open files when you return to an unwatched workspace by @nwparker in #30415
- Preload the workspace jump palette before first use by @brennanb2025 in #30935
- Improve save-conflict checks, Undo after reload, autosave during heavy file activity and chat-start error messages by @nwparker in #31216
- Release superseded and closed editor-tab watch probes and disk-check records by @nwparker in #31128
- Avoid reapplying terminal bindings that already match when saving state by @AmethystLiang in #31033
Workspaces, SSH & remote servers
Keep workspace lists current, make same-named projects easier to distinguish, and improve remote server transitions and permissions.
- Show machine labels only when projects have the same name by @nwparker in #31233
- Keep the desktop workspace list current while hidden and include workspaces created on paired servers or other clients by @Jinwoo-H in #31090
- Refuse ambiguous same-path project routing instead of following the Active Server selection by @nwparker in #31119
- Allow an older SSH host to move to its managed server while a relay shell identified by its tab remains running by @Jinwoo-H in #31093
- Make orca open-url on a manually started server ask for a paired desktop rather than an SSH setting by @Jinwoo-H in #31120
- Respect the login umask for remote worktrees instead of making them owner-only by @AmethystLiang in #31135
- Improve WSL migration checks for path casing, panes without restore folders and stale agent records by @nwparker in #31211
Settings & security
Keep Experimental settings accessible after language updates and tighten permissions for newly created Codex configuration files.
- Prevent Experimental settings from crashing after language-pack updates by @nwparker in #31202
- Create new Codex config.toml files with owner-only permissions by @nwparker in #31228
Relay service
Give each relay director revision its own instance limit during rollouts.
- Use a separate instance maximum per director revision rather than splitting a shared service cap by @Jinwoo-H in #31178
Tests, CI & maintenance
Expanded compatibility and regression coverage, leaner release builds, and continued terminal-layout groundwork. Layout-owner changes below remain behind a feature switch and are not enabled product features in this release.
- Layout groundwork (disabled): open CLI- and phone-requested files in the visible tab group by @Jinwoo-H in #31123
- Layout groundwork (disabled): surface running terminals without visible panes and determine startup reconnections by @Jinwoo-H in #31118
- Test custom terminal titles with older phone layouts by @Jinwoo-H in #31127
- Include headless server specs in the manually enabled layout CI run by @Jinwoo-H in #31108
- Layout groundwork (disabled): advertise layout-change support to paired desktops by @Jinwoo-H in #31131
- Test terminal readiness after a layout-owner server restart loses a pane binding by @Jinwoo-H in #31132
- Test file opening from older phone layouts against a layout-owner build by @Jinwoo-H in #31138
- Layout groundwork (disabled): use consistent file identities in layout updates by @Jinwoo-H in #31140
- Test that windowless host reloads preserve terminals created by main by @Jinwoo-H in #31144
- Layout groundwork (disabled): apply individual layout records instead of rebuilding the whole session by @Jinwoo-H in #31152
- Layout groundwork (disabled): render paired-server workspaces from the server’s layout stream by @Jinwoo-H in #31181
- Format the files changed by the full chat-output update by @Jinwoo-H in #31184
- Layout groundwork (disabled): let main create, start and close terminal tabs and panes by @Jinwoo-H in #31130
- Update nine end-to-end specs to match intended product behavior by @brennanb2025 in #30897
- Bump the mobile app to 0.0.58 and Android versionCode to 22 by @Jinwoo-H in #31194
- Keep Windows daemon teardown tests from counting processes with reused parent IDs by @Jinwoo-H in #31192
- Layout groundwork (disabled): restore each terminal pane once at its saved size and identify sleeping or held panes by @Jinwoo-H in #31171
- Add checks for host-aware repository routing and migrate existing callers by @nwparker in #31096
- Test that SSH health probes stay responsive while the SSH layer is stuck by @nwparker in #31193
- Update Zod to 4.6.7 for recursive schema type compatibility by @nwparker in #31222
- Test Claude dispatch metadata received after stopping a turn by @nwparker in #31229
- Reduce duplicate release builds and history downloads by @nwparker in #31227
Full Changelog: v1.4.233...v1.4.235
Original source - Oct 20, 2026
- Date parsed from source:Oct 20, 2026
- First seen by Releasebot:Oct 21, 2026
All of your release notes in one feed
Join Releasebot and get updates from stablyai and hundreds of other software products.
- Oct 20, 2026
- Date parsed from source:Oct 20, 2026
- First seen by Releasebot:Oct 21, 2026
v1.4.233
orca releases updates that improve SSH and remote workspace reliability, phone workflows, and safer file editing. The update also adds agent permission modes and native OpenCode 2 chat, while reducing memory use for saved conversations and speeding up Mac updates.
Thank you so much for using Orca and for your continued support! ❤️
We shipped two releases today! If you missed it, check out the v1.4.232 release notes too. Highlights include Manual / Auto / Yolo agent permissions, OpenCode 2 in native chat, a better phone composer with file attachments and inline skills, smoother SSH recovery, and a smaller app with faster Mac updates.
Phone updates: Updating Orca on your desktop also updates the app on your connected phone—the phone loads it directly from your desktop.
The short version
SSH & remote workspaces: Connecting to an SSH host works when neither machine can download Node.js, with a one-click mirror Orca remembers and retries. Older Windows hosts (Windows 10 1809 and Server 2019) can run Orca's server, and tunnels recover when a port is held by an old SSH connection.
Remote servers in Settings: Remote Orca Servers is one list instead of six sections, and SSH hosts can be removed in bulk and stay removed. Orca tells you when the same server was saved twice, and adding a server you already saved updates it instead.
Phone: Creating a workspace from the phone is much faster, the workspace list stays in step with the desktop, and session tab icons keep their size beside long titles.
Editor: Orca refuses to save over changes made to a file on disk that you haven't seen, and Reload and Undo behave predictably afterwards.
Everyday polish: Projects with the same name on different machines keep short names and show which machine they're on. Long saved conversations use far less memory when Orca scans them for Session History.
Product experience
SSH, managed servers & remote
SSH hosts connect in more situations, Remote Orca Servers is one clear list, and edits always go to the machine that owns the workspace.
- One-click Node.js mirror when neither machine can download Node by @nwparker in #31069
- Retry with the saved Node.js mirror once a running connect fails the same way by @nwparker in #31089
- Ship node-pty's winpty backend so Windows 1809 / Server 2019 hosts can deploy by @nwparker in #31056
- A managed tunnel whose forward can't start takes the stdio bridge, and reclaims a port an old ControlMaster holds by @nwparker in #31062
- A legacy relay restarted at the same socket never takes over an open tab by @nwparker in #31068
- Detect Linux libraries reliably across SSH and WSL by @nwparker in #31077
- Remote Orca Servers: one list instead of six sections; SSH Hosts: bulk remove that stays removed by @nwparker in #31082
- Adding a server you already saved updates it instead of saving it twice by @nwparker in #31080
- Say which saved servers are the same machine paired twice, and how to fix it by @nwparker in #31100
- Say "Orca on " instead of "managed server" in the UI by @nwparker in #31099
- A moved SSH host lists once in a project's Available Hosts by @nwparker in #31064
- New local projects never dedupe onto an SSH project at the same path by @nwparker in #31055
- PR/MR worktree base refuses SSH projects named only by executionHostId by @nwparker in #31054
- Worktree create sends the host --project/--host selected by @nwparker in #31066
- Editor writes and unqualified removals route by the rows, never the Active Server focus by @nwparker in #31036
- No owner route reads the Active Server focus, so a local row never routes to the focused server by @nwparker in #31058
- A damaged browser file list disables only the browser client, not the remote server by @nwparker in #31025
- A live orcad's browser helper pauses for macOS desktop installs by @nwparker in #31059
Phone
Create workspaces from the phone much faster, and keep the phone's workspace list and session tabs accurate.
- Prepare the worktree checkout while the new-workspace form is open by @AmoabaKelvin in #31167
- Phone list resends lost option changes, trusts the feed's row facts, and retries a failed feed read by @Jinwoo-H in #31088
- Keep session tab icons full size beside long titles by @AmoabaKelvin in #31169
Workspaces, sidebar & tabs
Same-named projects on different machines are easy to tell apart, and the sidebar's agent status and visibility settings stay accurate.
- Keep project names short and show their machine by @nwparker in #28250
- One agent phase history, so a compaction raises no unread and a title-started turn pushes its finish by @Jinwoo-H in #31103
- Visibility settings refresh workspace rows; pre-gap paired-server answers stay unverifiable by @Jinwoo-H in #31106
Editor, files & Markdown
Saving no longer overwrites changes made on disk behind your back, and previews and renames act on the right file.
- Refuse saves that would overwrite unnoticed disk changes by @nwparker in #30417
- Disk-checked save follow-ups: repeatable stale reloads, Markdown whitespace, Undo of Reload by @nwparker in #31113
- Markdown preview of a terminal-opened file reads with its source tab's grant by @nwparker in #31060
- A rename retargets only editors whose own owner is the renaming host by @nwparker in #31091
Browser
Browser screenshots from an SSH host are checked when they're taken and when they're answered.
- An SSH host's capture is admitted at each capture and at its answer by @nwparker in #31072
Performance & reliability
Long saved conversations no longer take several times their size in memory while Orca indexes them.
- [mem] Stream saved transcripts and stage large search writes by @OrcaWin in #30702
Relay service
The hosted relay keeps desktops in their own region and spreads traffic evenly while it is updated.
- Give region-correction reconnects and roll re-placements the in-region reserve fallback by @Jinwoo-H in #31042
- Move director traffic in two steps so a deploy does not land on one instance by @Jinwoo-H in #31051
- Let the same-cap trust probe outlast load-balancer warm-up by @Jinwoo-H in #31067
Tests, CI & maintenance
Faster, lighter builds and checks; the new layout and sidebar work remains behind disabled build switches.
- Run cell-flags and reserve-watch on the paid runner pool by @Jinwoo-H in #31024
- Keep Mac qualification runs out of the release build's concurrency group by @nwparker in #31031
- Build Windows alongside Mac and preserve signing quota by @nwparker in #31032
- Cut end-to-end typecheck memory with Bun by @nwparker in #31046
- Halve CLI compile memory with Bun typechecking by @nwparker in #31043
- Stop the cold-authority scope test depending on the clock by @Jinwoo-H in #31098
- Shared switch-on fixtures so 71 layout tests pass with main owning the layout by @Jinwoo-H in #31076
- A test-only switch-on server template that packaging refuses by @Jinwoo-H in #31097
- No empty extra terminal tab from an old saved terminal record (dark, layout-owner build only) by @Jinwoo-H in #31045
- Agent titles from one status batch reach main as one rename (dark, layout-owner build only) by @Jinwoo-H in #31048
- Main sends one layout update per action, with only what changed (dark, layout-owner build only) by @Jinwoo-H in #31109
- Same-id workspaces on two hosts sort, nest and stay retained on their own; nested groups and project order hold in host sections (dark switch) by @Jinwoo-H in #31111
- A read Done no longer hides a pane that is still Working in Smart (dark switch) by @Jinwoo-H in #31114
- Update WeChat QR code for group 13 by @AmethystLiang in #31052
Full Changelog: v1.4.232...v1.4.233
Original source - Oct 20, 2026
- Date parsed from source:Oct 20, 2026
- First seen by Releasebot:Oct 21, 2026
v1.4.232
orca releases a broad update that improves native chat, adds automatic agent permissions and a redesigned phone composer, and makes SSH, workspaces and browser workflows more reliable. It also brings faster recovery, smaller app packages and smoother macOS updates.
Thank you so much for using Orca and for your continued support! ❤️
Original source
The short version
Auto permissions, in chat and terminal: Choose Manual | Auto | Yolo in Settings → Agents. Auto lets supported Claude and Codex agents handle approvals, and new native chats follow your choice too. You can choose a separate permission mode for other agents; existing chats keep their own settings.
Native chat (experimental): Open OpenCode 2 directly in chat, find Codex skills by typing $, and pan and zoom image previews. Rewind works in long conversations, and usage limits show when they reset with a Continue button to pick the conversation back up.
A better phone composer: Attach files as well as photos, insert skills inline, and choose model, effort and permissions from one sheet. Faster recovery after switching apps and more responsive terminal scrolling make it easier to keep working away from your desk.
Smoother SSH work: Managed servers recover from lost pairing over SSH, tunnels follow a restarted server's port, and unsaved editor drafts survive the move to a managed server. File uploads work better over high-latency links, and a configurable Node.js mirror helps on networks that block nodejs.org.
More control over your workspace: Space responds faster, lets you inspect changed files before cleanup, and puts row actions in a dedicated menu. Browser pages can ask for a username and password, and Orca asks before a page opens another app.
A lighter app and faster Mac updates: Shared desktop and browser assets, fewer duplicate resources and smaller tour animations reduce the app's footprint. macOS updates avoid background installer throttling, helping Orca get back to your work sooner.
Compatibility & upgrade notes
Native chat (experimental): Some chat features require support from the remote host. Keep paired and SSH hosts updated alongside Orca to use the latest capabilities.
Auto permissions: Availability depends on the agent, model and host version. Changing the default applies to new sessions; existing native chats retain their saved permissions.
Product experience
Native chat (experimental)
OpenCode 2 opens in chat, Codex and Pi skills are easier to find, image previews support pan and zoom, and long conversations are easier to resume and rewind. Usage limits explain the pause and offer Continue, while sent images and visuals stay with the chat.
feat(opencode): open OpenCode 2 in the chat view and list 2.x models before the first message by @AmoabaKelvin in #28424
feat(native-chat): pan and zoom chat image previews like mermaid diagrams by @AmoabaKelvin in #30154
fix(native-chat): move a chat visual's Open and Share buttons above it by @AmoabaKelvin in #30356
Mark completed Codex reviews Done when Stop is absent by @brennanb2025 in #28860
Resume terminal conversations in native chat without waiting for History by @brennanb2025 in #29150
fix(native-chat): clicking Send or Stop keeps focus in the message box by @Jinwoo-H in #30456
fix(native-chat): a Claude chat keeps a model its CLI stopped listing by @brennanb2025 in #30436
Fix thinking status translations in zh, ja, ko, and fr by @AmethystLiang in #30558
Native chat: rewind works at any chat length by @brennanb2025 in #30394
feat(native-chat): /resume in a structured chat opens Agent Session History by @brennanb2025 in #28133
feat(native-chat): + menu shows chat, disabled chat and CLI rows by @brennanb2025 in #29074
fix(codex): a Codex chat keeps its Orca identity when the user's Codex config strips command environment variables by @brennanb2025 in #30406
Sleep stops a workspace's native chat agents by @brennanb2025 in #28445
Refuse chat resume until terminal writers have exited by @brennanb2025 in #29242
fix(native-chat): show the model picker in a new OMP or Antigravity chat by @AmoabaKelvin in #30713
Accept messages while any agent starts, and bound each startup step by @brennanb2025 in #28046
fix: make chat and terminal switch labels consistent by @AmethystLiang in #30829
fix(native-chat): save a Codex message's receipt from either of Codex's reports of it, not only the first by @brennanb2025 in #30403
fix(native-chat): a new chat in a twin workspace refuses instead of starting on this computer by @nwparker in #30838
fix: distinguish history resumes from active-tab switches by @AmethystLiang in #30871
fix(native-chat): a usage limit reads as a pause with its reset time and a Continue, not a failure by @brennanb2025 in #30396
A chat's visuals and sent images live as long as the chat by @brennanb2025 in #30413
feat(native-chat): $ opens Codex skills in the composer by @brennanb2025 in #30827
fix(native-chat): keep transcript text clear of the message rail by @brennanb2025 in #30868
fix(native-chat): keep a typed [Image #N] when the message has no such image by @AmoabaKelvin in #30740
fix(native-chat): list Pi skills in the / menu as /skill: by @AmoabaKelvin in #30924
fix(native-chat): hide history before /clear by @AmoabaKelvin in #30902
fix(native-chat): keep /model, /effort, /clear and /compact in the / menu after an agent reports its commands by @AmoabaKelvin in #30956
fix(native-chat): link Antigravity sign-in instructions to settings by @brennanb2025 in #30970
fix(native-chat): say which request a chat start ran out of time on, and log the original error by @nwparker in #30992
Agents, accounts & permissions
Set Auto permissions for supported agents and carry that choice into new chats. Antigravity sign-in is clearer, Claude usage estimates account for model versions and long context, and MiniMax and GLM Coding Plan keys can be saved on the remote host that uses them.
fix(cloud-auth): show that a sign-in is in progress, with copy-link and cancel, on every Orca sign-in button by @Jinwoo-H in #30410
fix(usage): price Claude models by exact version, add Sonnet 5.5, flag unpriced models by @Jinwoo-H in #30421
Check Claude sign-in duplicates against the listed account identity by @AmethystLiang in #30446
fix(usage): price Claude long-context requests per request, and price Haiku 5.5 by @Jinwoo-H in #30427
fix(windows): codex and claude get a prompt's double quotes intact in PowerShell by @OrcaWin in #30424
feat(settings): sign Antigravity chats in from Accounts by @brennanb2025 in #28705
feat(agent-status): read OSC 7501 program status beside hooks by @nwparker in #30261
feat(agent-status): show OSC 7501 program status in rows and tabs by @nwparker in #30262
fix(agent-status): never drop a running helper for lack of room by @brennanb2025 in #30416
fix(accounts): copy Devin commands through Orca clipboard bridge by @AmethystLiang in #30826
fix(settings): Antigravity's sign-in reads as an Account line, never an empty box by @brennanb2025 in #30850
fix(linear): show a saved Linear credential that cannot be decrypted by @brennanb2025 in #28867
feat(agents): add Auto to the global agent permission switch by @nwparker in #30677
feat(native-chat): apply per-agent Auto permission defaults by @nwparker in #30853
feat(accounts): save MiniMax and GLM Coding Plan keys on the Settings host by @Jinwoo-H in #30862
fix(codex): keep Orca's terminal identity in Codex commands when the user's Codex config strips environment variables by @Jinwoo-H in #30857
fix(status-bar): keep this computer's providers visible as "Not configured on " under a remote workspace by @Jinwoo-H in #30858
Show short Antigravity pool labels in status bar by @AmethystLiang in #31007
Phone
The redesigned chat composer adds file attachments, inline skills and one place for model, effort and permissions. Chat reading position, queued-message editing, terminal scrolling, reconnection and completion notifications get attention too.
fix(mobile): show a renamed terminal tab's name on the phone by @AmoabaKelvin in #30163
feat(mobile): redesign the chat composer with file attachments and inline skills by @AmoabaKelvin in #30359
fix(mobile): keep typed commit messages, restore failed shortcut removals, name icon buttons by @AmoabaKelvin in #30142
fix(mobile): page GitHub tasks by number and drop pages from an old selection by @AmoabaKelvin in #30140
fix(mobile): one button style for the session header and tab strip; size tabs to titles by @brennanb2025 in #29222
One background-process read of "Notify About Hidden Workspaces" for phone pushes and the host unread flag by @Jinwoo-H in #30571
fix(mobile): faster relay recovery after an app switch and on a late desktop data link by @Jinwoo-H in #30607
fix(mobile): edit a queued message in a plain text box with compact cancel and save buttons by @brennanb2025 in #30382
Keep phone chat history in one window while preserving reading position by @brennanb2025 in #29271
perf(push): deliver queued notifications without waiting for the poll by @nwparker in #28624
perf(mobile): shorten output batching during terminal scroll gestures by @innocarpe in #30319
fix(notifications): a server with no window pushes phones when a terminal agent finishes or needs input by @Jinwoo-H in #30602
fix(mobile): let an add or removal replace corrupt stored terminal keys by @AmoabaKelvin in #30977
SSH, managed servers & remote workspaces
Reconnect and re-pair more reliably, keep tab closes through reloads, preserve unsaved editor drafts during migration, and upload files faster over high-latency links. Setup handles more hosts and restricted networks, with clearer disk-space, download and connection errors.
fix(renderer): restored SSH session placeholders carry the host a listing would stamp by @nwparker in #30445
fix(open-in): open a managed server's workspace in VS Code over Remote-SSH by @nwparker in #30441
fix(terminal): reattach a restored terminal while an older daemon cannot answer (#30486) by @nwparker in #30499
fix(ssh): rehome a cold-start converted workspace the scan missed, and notify replayed background-turn completions by @nwparker in #30578
fix(ssh): follow a relaunched managed server's port; match quoted Windows forward argv by @nwparker in #30583
fix(terminal): relay-era SSH panes open printed file paths on the host's server by @OrcaWin in #30240
fix(ssh): managed servers install through SSH gateways that cut long commands (#30491) by @nwparker in #30549
fix(ssh): relinking a stopped managed server keeps the project groups it holds, and later moves don't re-send them by @nwparker in #30608
fix(ssh): make room for the pre-activation snapshot on remote hosts, and say why a capture failed by @nwparker in #30618
fix(ssh): a cancelled or revoked host's browser command stops on the desktop by @nwparker in #30630
fix(ssh): closing a bridged relay tab stops its shell, even across a restart by @nwparker in #30587
fix(ssh): keep SFTP uploads pipelined so a high-latency link doesn't crawl by @nwparker in #30704
fix(ssh): say the host's disk is full when a managed-server install runs out of space by @nwparker in #30679
fix(ssh): say a noexec home can't run Orca's server, instead of "install an older version" by @nwparker in #30724
fix(remote): keep a paired host's undelivered tab close across a reload by @nwparker in #30758
fix(ssh): a network cut during a managed-server install no longer hangs, and says contact was lost by @nwparker in #30732
fix(orcad): orca open-url opens the page on the paired desktop by @nwparker in #30782
fix(orcad-migration): a pane saved in two tabs refuses on this desktop and names the tabs, not a server conflict by @nwparker in #30801
fix(remote): a removed server's saved tab closes go with it; a same-machine re-pair keeps them by @nwparker in #30803
fix(ssh): an overlapping managed-server update check sees the failure the first one recorded by @nwparker in #30835
fix(orcad-migration): refuse before fencing a manifest no catalog request can carry by @nwparker in #30836
fix(ssh): a bridged relay terminal's proven exit reaches the runtime from every close route by @nwparker in #30842
fix(managed-server): snapshot capture and restore run on BusyBox before 1.30 by @nwparker in #30840
fix(ssh): an SSH server update counts terminals again just before it stops the server by @nwparker in #30874
fix(session-tabs): a held paired-tab close survives an undecided re-pair, and a dropped one shows its tab at once by @nwparker in #30843
fix(ssh): a managed tunnel follows the server's port after another desktop restarts it by @nwparker in #30888
fix(ssh): Disconnect closes the managed server tunnels the SSH session carried by @nwparker in #30891
fix(ssh): a system SSH forward owns its listener even when ssh_config sets a ControlMaster by @nwparker in #30887
fix(ssh): two overlapping bridged-terminal attaches hand back the viewer they replace by @nwparker in #30856
fix(ssh): orca open-url on a managed SSH host opens the page on the desktop through the browser bridge by @nwparker in #30849
fix(orcad-migration): a host fenced on a manifest no request can carry can be cancelled by its id by @nwparker in #30864
fix(ssh): say when this computer can't download Node for a managed server, and where an offline copy goes by @nwparker in #30911
fix(wsl): keep the desktop pairing across host restarts by @brennanb2025 in #29042
fix(hosts): preserve complete status changes in the renderer by @brennanb2025 in #29033
fix(wsl): reconnect hosts when a retained connection stops answering by @brennanb2025 in #29005
fix(ssh): a legacy relay terminal stays with the relay that runs it when another relay lists the same id by @nwparker in #30870
fix(ssh): download the pinned Node on the host when this computer can't reach it by @nwparker in #30945
fix(ssh): a forward edit cut short by Disconnect keeps the host's saved port forwards by @nwparker in #30932
feat(ssh): let a nodejs.org mirror serve the pinned Node on this computer and the host by @nwparker in #30981
feat(orcad-migration): unsaved drafts stay on this desktop and are renamed to the server on commit by @nwparker in #30894
fix(ssh): pair again over SSH when a managed server drops this desktop, instead of reconnecting forever by @nwparker in #30775
Workspaces, sidebar & tabs
Workspace actions consistently target the machine you chose, even when another host has a matching project or path. Space adds faster selection, inspectable changed files and a dedicated actions menu; bulk tab closes ask for confirmation.
fix(renderer): a created or lineage-refreshed worktree replaces only its own host's copy by @nwparker in #30447
fix(source-control): clear unavailable branch line totals by @AmethystLiang in #30475
fix(i18n): clarify closing all tabs to the left and right by @AmethystLiang in #30535
Confirm before bulk-closing tabs by @AmethystLiang in #30551
fix(sidebar): show the project name on ungrouped compact cards by @brennanb2025 in #28890
fix(git): stop starting Git in deleted project folders and for removed projects by @brennanb2025 in #28822
fix(sidebar): run previous and next worktree shortcuts from a text field by @brennanb2025 in #28891
fix(runtime): project removal and edits stay on the selected project's host by @nwparker in #30584
fix(projects): a project added from the CLI, web or a paired desktop through a symlink or subfolder shows its workspaces by @nwparker in #30657
fix(projects): setup edits and removals name the host, so the twin on another host is never touched by @nwparker in #30664
fix(runtime): one teardown policy per kind; removal closes host browser pages everywhere, headless sleep stops terminals by @nwparker in #30715
fix(projects): refuse to file a folder under a project its own GitHub remote contradicts by @nwparker in #30717
fix(runtime): a new terminal the host can't confirm says why, instead of nothing by @nwparker in #30725
fix(projects): removing a project on this computer stops its chats, pages and every terminal on the host by @nwparker in #30728
fix(runtime): a project removal stops its workspaces' terminals together under one deadline; every teardown is classified by kind by @nwparker in #30752
fix(runtime): a terminal spawn names its host; the removed-project fence keys by host (R4-2) by @nwparker in #30798
fix(projects): a project move names the row it moves; a paired server's twin by its SSH target by @nwparker in #30794
The workspace you're on disappearing lands you where a sidebar delete does, whatever removed it by @brennanb2025 in #30428
fix(cli): --environment connects to the server a differently-cased name resolved to by @nwparker in #30834
fix(persistence): an id-only worktree write refuses same-id twins instead of taking the first writer's copy by @nwparker in #30841
fix(runtime): a runtime worktree removal prunes the scan snapshots and label routes like the desktop one by @nwparker in #30845
fix(projects): link cloned and existing folders for GitLab and other non-GitHub remotes by @nwparker in #30785
fix(sidebar): a status or order drag writes the card you dragged, not its twin on another host by @nwparker in #30844
fix(renderer): restoring or re-selecting a workspace keeps the host it was selected on by @nwparker in #30839
fix(sidebar-inputs): a failed domain read is retried by the next flush or phone read by @nwparker in #30866
fix(runtime): a terminal start on an SSH twin no longer wakes or is refused by this computer's sleep by @nwparker in #30860
fix(sidebar): a Pinned drop or menu pin pins the card you chose, not its twin on another host by @nwparker in #30892
fix(renderer): host writes route only through the strict owner, and twin projections stay on their host (review-5 #2 #9 #11) by @nwparker in #30890
fix(runtime): a failed orphan adoption write rolls back instead of keeping the adopted tabs by @nwparker in #30942
fix(worktrees): a sort order and a minted push remote land on the copy that named them by @nwparker in #30976
fix(space): speed up selection and support reviewed workspace cleanup by @nwparker in #30989
fix(runtime): a moved shell history waits only on this machine's shells; a phone never clears a twin's unread flag by @nwparker in #30991
Give Space rows a dedicated actions menu by @nwparker in #31000
fix(sidebar): a pin's reveal follows only the focused copy, by its own host by @nwparker in #31017
Terminals & shortcuts
Renamed panes stay in sync with their host, restarting a failed terminal opens a plain shell, and Copy works correctly on remapped Latin keyboard layouts.
fix(shortcuts): Cmd+C no longer pastes on remapped Latin keyboard layouts by @IncursorTech in #29587
fix(terminal): client pane names reach a desktop host's window, and open panes follow the host's by @nwparker in #30496
fix(terminal): Restart on a failed terminal opens a plain shell instead of Codex by @Jinwoo-H in #30872
Editor, files & source control
File links open beside their source tab group, HTML file URLs open as document previews, WSL repositories opened through UNC paths support staging and discarding, and diff views remember their position. Restoring a deleted file and creating a starter MCP config also check for intervening file changes; this protection does not yet apply to general editor saves.
fix(drops): name extensionless dropped images by their bytes by @younghwan91 in #30379
Open file links beside their source tab's group by @AmethystLiang in #30399
Open HTML file URLs as document previews by @AmethystLiang in #30512
fix(editor): opening a quoted lettered list with an unquoted continuation no longer crashes by @OrcaWin in #30247
feat(files): guarded file writes that refuse to overwrite a changed file by @nwparker in #30605
fix(git): stage and discard files in WSL repos opened by UNC path by @s-stefanov in #30693
fix(github): treat SSH certificate org remotes ([email protected]) as GitHub by @Yi-111-a in #30659
fix(git): drop SSH host from clone folder names by @wswsadadbaba123 in #30763
fix(git): forward stdin on buffered Git reads by @nwparker in #30634
fix(diff-comments): a review note on a twin worktree saves to the open copy and names its host by @nwparker in #30855
fix(diff): restore the All Changes view when its tab is reopened by @nwparker in #30943
fix(diff): keep combined diff position stable across worktree switches by @nwparker in #30950
Browser
Sign in to sites that ask for a username and password, confirm before a page opens another app, and follow links between local HTML files. Remote browser sizing and clicks are more accurate, and automation respects text composition and revoked host access.
fix(browser): a remote viewer larger than the host's browser pane sees the whole page and clicks land under the cursor by @nwparker in #30437
fix(browser): switch client-hosted profiles by staging the replacement guest by @nwparker in #30452
fix(browser): let a local HTML page follow its own file:// links by @Jinwoo-H in #30611
fix(browser): refuse agent clicks while the user is mid-IME composition by @AmoabaKelvin in #30358
feat(browser): ask before a page opens another app by @AmoabaKelvin in #30490
fix(browser): label popups from committed document origins by @AmethystLiang in #30540
feat(browser): ask for a username and password when a site needs one by @AmoabaKelvin in #30886
fix(browser): a press an SSH host left held across commands is let go of when the host is revoked by @nwparker in #30847
Automations & orchestration
Scheduled runs can send work into an existing agent session and keep completed per-run sessions asleep for later. CLI host and project selection, pane titles and automation follow-up results are clearer, with less repeated work behind agent updates.
fix(cli): --host and --project accept the names host list and project list print by @nwparker in #30438
fix(terminal): report the host's saved pane names in terminal.list, and make clearing the last one stick by @nwparker in #30433
feat(cli): set the title of one terminal pane by @nwparker in #30485
fix(automations): headless reuse-session sends the prompt into the existing agent (#24278) by @Jinwoo-H in #30594
fix(cli): refuse server names --environment cannot tell apart, and say how to pick one of twin projects by @nwparker in #30676
perf(orchestration): stop recompiling a mailbox lookup on every agent title by @Jinwoo-H in #30792
fix(automations): headless keeps finished per-run sessions asleep instead of closing them (#24208) by @Jinwoo-H in #30639
perf(automations): release completed run observers by @nwparker in #13641
Clarify automation run CLI results and follow-up targets by @nwparker in #28262
Performance, reliability & diagnostics
Session History avoids repeated transcript scans and keeps older workspace sessions visible. File watching, search, memory cleanup and saving after a full-disk error are more resilient, while crash reports capture better evidence for diagnosis.
fix(macos): the TCC prompt watcher's log stream dies with Orca, and old orphans are reclaimed by @nwparker in #30148
fix(watcher): stop unwatched windows from being re-subscribed to local watchers by @nwparker in #30412
fix(watcher): flush file changes on a steady cadence instead of waiting for quiet by @nwparker in #30270
Session History: the Workspace tab stops re-reading every transcript to find its sessions by @brennanb2025 in #30469
Session History: a repeat open keeps every older session of the workspace by @brennanb2025 in #30586
fix(crash-reporting): renderer crash reports say whether the window was hung or blank by @OrcaWin in #30692
fix(diagnostics): crash bundles always keep the terminal daemon's newest log lines by @OrcaWin in #30690
fix(crash-reporting): Windows native crash reports say what the fault touched and which code ran by @OrcaWin in #30691
fix(persistence): a commit that runs out of disk no longer stops all later saves by @nwparker in #30694
Session History: the "Reading N / M files" count reaches its total by @brennanb2025 in #30683
perf: preserve matching Terminal settings sections during search by @nwparker in #23164
perf(file-explorer): reject nonmatching names before path checks by @nwparker in #28572
perf(gitlab): skip unused review details in Checks by @nwparker in #28643
[mem] fix(memory): release consumed buffers, abandoned waits, and deleted diff views by @OrcaWin in #30650
Speed up macOS updates by avoiding background installer throttling by @nwparker in #30944
fix(provider-process): kill a provider group its SIGKILLed supervisor leaves behind by @nwparker in #30997
Smaller app packages
Desktop and browser interfaces share installed assets, duplicate ripgrep copies and unused cloud sources are removed, and feature-tour animations use smaller files while preserving their pixels and timing.
Exclude unused cloud service sources from desktop packages by @nwparker in #31004
Shrink feature tour animations without changing pixels or timing by @nwparker in #31012
Remove identical packaged ripgrep copies without changing deployed servers by @nwparker in #31005
Share installed desktop and browser assets by @nwparker in #31010
Relay service
Connection recovery, regional routing and reserve capacity handling improve, alongside phone-resume infrastructure, monitoring and staged rollout tools.
fix(relay): judge the reserve watch's 503 rule on non-drain 503s, not a host's own re-dials by @Jinwoo-H in #30487
fix(relay): log controls a cell closes after host proof but before wiring by @Jinwoo-H in #30559
fix(relay): keep connected hosts on a reserve cell set to existing-only by @Jinwoo-H in #30609
fix(relay-ops): let the incident monitor sample a reserve-mode cell by @Jinwoo-H in #30661
fix(relay-ops): judge a reserve cell's connections against its configured hard cap by @Jinwoo-H in #30668
feat(relay): add the per-cell phonePath switch, effective only in reserve mode by @Jinwoo-H in #30629
feat(relay): resume paired phones from one device read on memory cells by @Jinwoo-H in #30649
feat(relay-ops): watch a memory phone cell and turn its phone path off on a breach by @Jinwoo-H in #30662
feat(relay): keep a memory resume's basis in the cell and confirm it from one read by @Jinwoo-H in #30651
feat(relay): batch a memory cell's resume-confirmed audit rows by @Jinwoo-H in #30655
fix(relay-ops): let same-cap rolls run while another cell is reserve; refuse a reserve roll target by name by @Jinwoo-H in #30707
feat(relay): count and log phone-path failures, and every attach deadline by @Jinwoo-H in #30656
chore(relay): pin staging c1 and c4 to image J for the step-6 staging test by @Jinwoo-H in #30812
feat(relay-load): drive paired-phone resumes so staging can time the step-6 phone path by @Jinwoo-H in #30816
fix(relay): never send a raw error message to the desktop as a control error code by @Jinwoo-H in #30873
fix(relay-ops): stop the reserve watch cleanly when the cell leaves reserve by @Jinwoo-H in #30972
fix(relay): keep a host in its region when the database lane is full and a reserve cell has room by @Jinwoo-H in #30974
Tests, CI & maintenance
Broader compatibility and end-to-end coverage, faster release preparation, formatting checks and internal cleanup. This section also includes sidebar and terminal-layout work that remains behind a feature switch; those entries are not enabled product features in this release.
fix(cleanup): count visits as last activity once terminals stop stamping Recent (dark) by @Jinwoo-H in #30397
test(e2e): align title-strip drops with pane selection rules by @brennanb2025 in #29903
refactor(sidebar): the stamp-sorted window list runs no settle, latch or saved order (dark) by @Jinwoo-H in #30401
refactor(sidebar): main keeps sleeping retention only, no order of its own (dark) by @Jinwoo-H in #30404
A CLI-started terminal shows once in its workspace, and a pane close main has no pane for closes in the window (dark, layout-owner build only) by @Jinwoo-H in #30391
feat(sidebar): Smart Done means finished and unread (dark) by @Jinwoo-H in #30425
test(sidebar): the desktop window and a phone reading the feed draw the same list (dark) by @Jinwoo-H in #30426
feat(cleanup): the owning host records last terminal use for cleanup's last active (dark) by @Jinwoo-H in #30431
A paired server's workspace never gets main's layout commands: a pinning test (dark, layout-owner build only) by @Jinwoo-H in #30430
chore(telemetry): remove the three Smart sort telemetry events by @Jinwoo-H in #30435
A CLI split whose pane is closed before it shows answers at once (dark, layout-owner build only) by @Jinwoo-H in #30439
refactor(main): import three ipc seams from their defining modules (no re-exports) by @nwparker in #30440
update prompt logic by @AmethystLiang in #30444
feat(sidebar): the owning host raises the workspace unread flag (dark) by @Jinwoo-H in #30450
refactor(renderer): one owner adapter for the deprecated-resolver folds, pinned by an acceptance table by @nwparker in #30451
test(e2e): the CLI retention test seeds its gone-pane record on disk, so it holds in both layout builds by @Jinwoo-H in #30432
refactor(renderer): fold four lib callers off the deprecated runtime-owner resolver by @nwparker in #30458
The terminal server and desktop finish the two-pane terminal repair before startup continues (dark, layout-owner build only) by @Jinwoo-H in #30429
Editor records keyed by owner, phone active file, and a bound on frame holds (dark, layout-owner build only) by @Jinwoo-H in #30473
refactor(renderer): fold 13 sidebar, hook and chat readers off the deprecated owner resolver, and count the adapter as a focus read by @nwparker in #30478
refactor(ssh): move the ssh-connection and ssh-target cluster into ssh/connection/ and ssh/targets/ by @nwparker in #30479
build: bump pnpm to 12.14.0 by @nwparker in #30481
feat(sidebar): the desktop window lists main's sidebar inputs behind the build switch (dark) by @Jinwoo-H in #30461
build: declare dependencies that only hoisting supplied by @nwparker in #30225
refactor(renderer): fold activation mirroring and sort-order persistence off the deprecated owner resolver by @nwparker in #30484
Main keeps an agent's resume record from the status it receives (dark, layout-owner build only) by @Jinwoo-H in #30455
fix(build): shared native packages get one immutable build instead of in-place rebuilds by @nwparker in #30226
build: share one pnpm virtual store across worktrees (off in CI and on Windows) by @nwparker in #30254
feat(sidebar): the phone reads its workspace list from the sidebar inputs (dark) by @Jinwoo-H in #30462
A first visit resumes a sleeping agent once, in its own pane (dark, layout-owner build only) by @Jinwoo-H in #30468
refactor: extract helpers that agent-status files need room for by @nwparker in #30260
refactor(ssh): split ssh-connection-utils into concretely named modules by @nwparker in #30488
Main writes a workspace sleep's resume records after the statuses it accepted before the sleep (dark, layout-owner build only) by @Jinwoo-H in #30482
One spawn-options step for both ways Orca opens a terminal, and one first-size rule by @brennanb2025 in #30390
refactor(renderer): fold launch, paste and terminal-create callers off the deprecated owner resolver; spawn refuses folder twins by @nwparker in #30497
test(wsl): exercise native chat on real WSL2 hosts by @brennanb2025 in #28973
refactor(shared): move orcad-migration-* into src/shared/orcad-migration/ by @nwparker in #30536
Track usage of closing tabs to left and right by @AmethystLiang in #30557
fix(wsl): repair main typecheck after ssh-connection-utils split by @nwparker in #30566
refactor(agent-status): one live agent transition detector in main, read by the sort stamps by @Jinwoo-H in #30532
test(floating-terminal): mock the bulk-close confirmation the panel suite cannot render by @nwparker in #30568
build: use the shared pnpm store on Windows by default by @nwparker in #30565
Revert "fix(native-chat): Claude, Pi and ACP chats are Working only while the agent holds the send" (#30134) by @brennanb2025 in #30572
An e2e test cuts the window's layout feed mid-session and checks it recovers and survives a restart (dark, layout-owner build only) by @Jinwoo-H in #30574
Editor files that share a path across two hosts: the tab lookup, the load report and the phone close match the right file (dark, layout-owner build only) by @Jinwoo-H in #30569
The host raises the shared unread dot whatever each client's Filters say (dark) by @Jinwoo-H in #30581
test(browser): document blocked popup compatibility gates by @AmethystLiang in #30537
refactor(renderer): fold browser creation, file actions and file preview off the deprecated owner resolver by @nwparker in #30562
refactor(shell): one shell-argument-quoting module for the duplicated quote copies by @nwparker in #30564
refactor(orchestration): delete the unreachable pre-mailbox terminal delivery path by @Jinwoo-H in #30576
build: move cloud/ and docs/site/ to pnpm 12.14.0 by @nwparker in #30600
refactor(renderer): one twin check, one worktree-copy scan, drop stale resolver mocks by @nwparker in #30579
A pane closed while its terminal starts stays closed (dark, layout-owner build only) by @Jinwoo-H in #30560
chore(docs): use Node.js 24 for docs builds and runtime by @nwparker in #30615
fix(persistence): repo writes take the row's identity, never a bare id by @nwparker in #30616
refactor(plugins): name shared catalog and manifest schema parts by @nwparker in #30612
Align root Node types with the supported Node 24 runtime by @nwparker in #30617
fix(sidebar): Hide sleeping keeps a paired server's active workspaces (dark) by @Jinwoo-H in #30624
fix(sidebar): phone feed list leftovers before the flip (dark) by @Jinwoo-H in #30631
refactor(terminal): one PTY attribution for teardown, close and identity; delete the deprecated owner resolver by @nwparker in #30626
refactor(ssh): derive a host-key policy from the target owner by @nwparker in #30627
refactor(process-host): let runProcess callers observe stderr as it arrives by @nwparker in #30628
test(managed-server): 6 KB wire-size budget for every POSIX host-op command by @nwparker in #30635
test(e2e): reveal specs create workspaces through main so they pass with the sidebar switch on by @Jinwoo-H in #30642
fix(sidebar): the window raises the unread flag exactly when its host does not (dark switch) by @Jinwoo-H in #30638
A CLI split that times out leaves no pane (dark, layout-owner build only) by @Jinwoo-H in #30563
fix(managed-server): repair main typecheck after the byte-budget and snapshot-room PRs crossed by @nwparker in #30680
test(relay): census every activity-lease reader for phones without leases by @Jinwoo-H in #30625
refactor(browser): one page gate and one owner for a host command's hold by @nwparker in #30652
refactor(composer): split run-target rows and worktree-creation steps into named pieces by @nwparker in #30703
refactor(renderer): one FileTypeIcon component for file icons by @nwparker in #30695
refactor: one repo-row owner stamp for session placeholders; pass-1 follow-ups by @nwparker in #30699
test(e2e): nine sidebar specs create workspaces and links through main so they pass with the switch on by @Jinwoo-H in #30667
ci: run the layout-owner switch-on specs as an advisory PR check (dark, layout-owner build only) by @Jinwoo-H in #30582
The layout drift log names the values that differ (dark, layout-owner build only) by @Jinwoo-H in #30678
feat(orcad-migration): host applies a signed editor-drafts blob inside the commit (S10-H) by @nwparker in #30665
refactor: de-barrel remote-runtime-client, runtime-terminal-stream and runtime-terminal-inspection (D2, D3) by @nwparker in #30684
refactor(plugins): extract the shared content-pack registry and list store by @nwparker in #30697
fix(security): put every trust decision on a host-owned token surface by @nwparker in #30710
fix(sidebar): key folder workspace rows by host so the phone matches the desktop (dark switch) by @Jinwoo-H in #30721
refactor(pty): every PTY retirement names its exit proof; ratchet the unproven ones by @nwparker in #30722
test(e2e): a phone lists the desktop's managed SSH workspace as the desktop sidebar does (switch on) by @Jinwoo-H in #30718
test(e2e): mount-authority spec polls through the host's "can't answer yet" terminal list by @nwparker in #30743
test(e2e): pane-close specs close panes the way the user does and check main's copy (dark, layout-owner build only) by @Jinwoo-H in #30745
perf(sidebar): announce a burst of sort-stamp writes once (dark switch) by @Jinwoo-H in #30746
refactor(orcad): every snapshot state op fits the gateway exec budget in shell; the state lock sends its script once by @nwparker in #30744
refactor(pane-layout): retire the unread intent tag; renamedLeafIds is the one layout delta by @nwparker in #30734
fix(pty): an exit proof names its incarnation; a spawn is tracked from its reply by @nwparker in #30754
test(e2e): two chat specs follow the pan-and-zoom preview and the renamed New tab chat row by @Jinwoo-H in #30755
fix(persistence): repo-row store writes take the row, not the id; ratchet the rest (R4-2a) by @nwparker in #30756
test(relay): drill a memory cell through a database outage, and pin phone renewal by @Jinwoo-H in #30666
fix(ci): background steps are single run steps, so no action reads the event payload while the runner rewrites it by @nwparker in #30795
fix(persistence): folder, group and session-state store writes name their host or why they needn't (R4-2c) by @nwparker in #30797
fix(persistence): worktree meta and lineage writes take the row's host, not the id (R4-2b) by @nwparker in #30811
A pane main first sees when its terminal starts goes where the window split it (dark, layout-owner build only) by @Jinwoo-H in #30772
style: format the 10 files on main that oxfmt --check reports by @nwparker in #30828
fix: a tab close by the handle a split returned finds the new pane (dark, layout-owner build only) by @Jinwoo-H in #30786
test(codex): pin the stopped-send receipt rule where #30403 moved it (fix red main) by @nwparker in #30865
docs(editor): design for one editor buffer per file by @nwparker in #30851
revert: remove the editor buffer design doc from the repo by @nwparker in #30875
fix(i18n): stop extracting <style> sheets as translatable copy by @nwparker in #30765
refactor(editor): tab buffer state lives in a per-tab store record, mirrored onto the tab by @nwparker in #30885
refactor(orcad-migration): remove the host-side editor-drafts transfer, keep the durable-commit gate by @nwparker in #30884
ci: fail the static job on unformatted files by @nwparker in #30863
Stop running the experimental layout suite on every matching PR by @nwparker in #30907
chore(lint): bring orcad-managed-tunnel-manager.ts back under max-lines by @Jinwoo-H in #30921
chore(format): format the files main's new formatting check rejects by @Jinwoo-H in #30929
style: format the 22 files main merged unformatted (fix red main) by @brennanb2025 in #30918
fix(managed-server): keep the tunnel manager under its line limit (fix red main lint) by @nwparker in #30933
test(browser): wait for the popup fixture's first paint during startup, not in the first test by @Jinwoo-H in #30854
chore(ratchet): prune the tabs-group-actions layout-writer baseline by @brennanb2025 in #30869
Run selected SSH tests instead of the whole suite on PRs by @nwparker in #30928
A pane close by its terminal handle closes only that pane, even before the window lists it (dark, layout-owner build only) by @Jinwoo-H in #30920
style: format three files that landed before the format check (fix red main) by @nwparker in #30948
test(browser): route input into fresh sandboxed popup iframes before clicking them by @nwparker in #30966
test(e2e): give the ACK-backpressured typing scenario the under-load timer-drift budget by @nwparker in #30968
test(node-runtime): stop the refused-download test hanging under the bun runner (fix red main) by @nwparker in #30967
test(e2e): measure typing-time renderer stalls with long tasks, not interval drift by @nwparker in #30971
perf(release): overlap server checks and share the mobile bundle by @nwparker in #30990
Restored terminals named only on their tab reattach after a restart (dark, layout-owner build only) by @Jinwoo-H in #30986
Overlap Mac notarization waits while preserving release gates by @nwparker in #31006
Three small fixes in the layout-owner build: repo reads, dragged-out pane folder, cancelled chat reader (dark, layout-owner build only) by @Jinwoo-H in #31003
New Contributors
@IncursorTech made their first contribution in #29587
@younghwan91 made their first contribution in #30379
@s-stefanov made their first contribution in #30693
@Yi-111-a made their first contribution in #30659
@wswsadadbaba123 made their first contribution in #30763
Full Changelog: v1.4.230...v1.4.232 - Oct 20, 2026
- Date parsed from source:Oct 20, 2026
- First seen by Releasebot:Oct 21, 2026
Similar to stablyai with recent updates:
- Smokeball release notes147 release notes · Latest Oct 2, 2026
- Cosmolex release notes20 release notes · Latest Jul 30, 2025
- PracticePanther release notes36 release notes · Latest Aug 11, 2026
- Salesforce release notes83 release notes · Latest Oct 1, 2026
- Microsoft release notes1046 release notes · Latest Oct 21, 2026
- Zoom release notes221 release notes · Latest Oct 19, 2026
- Oct 20, 2026
- Date parsed from source:Oct 20, 2026
- First seen by Releasebot:Oct 21, 2026
Orca Mobile Android mobile-android-v0.0.58
orca mobile now lets you choose a computer for Tasks, reconnects faster, and prompts desktop updates when screen support is outdated.
Thank you for using Orca mobile! ❤️
What's new
With more than one computer connected, tapping Tasks on the home screen asks which computer to open it on.
Reconnects faster when you switch back to the app.
If Orca on your computer is too old to serve a screen, the app asks you to update it instead of showing an older version of that screen.
Most phone features come from your desktop, so update Orca on your computer to get everything. See the desktop release notes for the full list.
Original source - Oct 19, 2026
- Date parsed from source:Oct 19, 2026
- First seen by Releasebot:Oct 21, 2026
1.4.230
orca releases a broad update with experimental native chat, smoother phone workflows, improved Claude account and agent management, and more reliable SSH workspaces. It also brings clearer connection recovery, safer multi-machine workspace handling, and everyday interface refinements.
Thank you so much for using Orca and for your continued support! ❤️
The short version
- Native chat (experimental): Use Antigravity in chat, choose which agents open as chats, and install a missing agent from the chat itself. Paste copied files as attachments, queue images, and see clearer feedback while attachments and queue actions are pending.
- Accounts & agents: After switching Claude accounts, restart running sessions on the new account. Remove downloaded agent runtimes from Settings, and edit or delete Linear comments through the Orca CLI.
- Phone: Edit queued messages in place, follow tool runs with desktop-style cards, and see your conversation immediately when resuming from history. Landscape phones put session tabs in the top bar, and Tasks makes clear which desktop you’re using.
- SSH & remote workspaces: Disconnect stays disconnected, sleeping workspaces stay asleep, and closed tabs stay closed after reconnecting. Clearer server update and re-pairing messages help you recover a connection.
- Everyday polish: Quick Command shortcuts follow the focused split, tab previews wait for the full hover delay, and file headers offer Reveal in Finder. Workspace cleanup better protects same-path projects on other machines.
Compatibility & upgrade notes
- Native chat (experimental): Some chat features require support from the remote host. Keep the host updated alongside Orca to use the latest capabilities.
- The orca command on SSH hosts: Existing hosts retain explicitly saved CLI control preferences; an unset preference is migrated to off. To allow commands on a connected SSH host to open and control this desktop’s Orca browser tabs for that host’s workspaces, enable Allow this host’s orca CLI to control Orca under Settings → SSH Hosts → edit the host → Advanced Connection.
Product experience
Native chat (experimental)
Choose which agents open as chats, use Antigravity, attach files and images more reliably, and see clearer queue, model and input-ownership feedback.
- Offer Install when a chat’s host is missing the agent it needs by @brennanb2025 in #29051
- Chat: dropped files hold Send until they're attached by @brennanb2025 in #29173
- A queue action still on its way greys its controls, like the phone by @brennanb2025 in #29120
- Image messages wait in the queue like text by @brennanb2025 in #28655
- Chat: pasting a copied file attaches it, like dropping it by @brennanb2025 in #29089
- Choose which agents open in native chat by @brennanb2025 in #29071
- A sign-in prompt on an ACP agent's error output ends the start or turn signed out by @brennanb2025 in #28467
- An agent can run each chat's own permission mode itself by @brennanb2025 in #28455
- Hide Orca's chat-naming requests from Session History by @nwparker in #30029
- A running Claude chat keeps its model when two Claude Code versions list differently by @brennanb2025 in #30022
- Use Antigravity in native chat through its ACP server by @brennanb2025 in #28595
- A refused steer leaves its turn as the chat's latest request by @brennanb2025 in #29907
- A Codex chat is Working only while Codex holds the send by @brennanb2025 in #29922
- Pause an agent's chat starts while its shared sign-in changes by @brennanb2025 in #28649
- The queue button you pressed shows a working spinner by @brennanb2025 in #30010
- Mark each attached image as [Image #N] where it sits in the prompt by @AmoabaKelvin in #28736
- Keep a restored agent’s status unconfirmed after 30 minutes instead of marking it done by @nwparker in #30186
- Show why the chat composer is locked and offer Take back when a phone holds the input by @nwparker in #30199
- Antigravity install: one clear message in the chat, with the message box staying in place by @brennanb2025 in #30001
- Session History: the scan line under the search box no longer jumps during a refresh by @brennanb2025 in #30158
- Sign in to Antigravity chats with the server’s own Google sign-in by @brennanb2025 in #28650
- Move a chat visual's Open and Share buttons above it by @AmoabaKelvin in #30356
- A Claude chat keeps a model its CLI stopped listing by @brennanb2025 in #30436
Agents, integrations & accounts
Switch Claude accounts with a restart offer, manage downloaded runtimes, edit Linear comments, and keep terminal sessions and GitLab task searches reliable.
- Edit and delete Linear comments from the Orca CLI by @brennanb2025 in #30003
- Remove a downloaded agent runtime from its Settings row by @brennanb2025 in #29140
- Follow an Orca Claude account switch when the shell sets CLAUDE_CONFIG_DIR by @Jinwoo-H in #29890
- Offer to restart running Claude sessions on the new account after a switch by @Jinwoo-H in #29898
- Remove a downloaded agent runtime only after nothing on its host can still run it by @brennanb2025 in #29139
- Let jcode's own client start its per-pane server by @brennanb2025 in #30257
- Run the Antigravity usage check with agy's auto-update off by @OrcaWin in #30387
- Quit no longer warns about terminals a paired Orca server keeps running by @nwparker in #30006
- Resume a relaunched workspace's sleeping agents only when shown by @Jinwoo-H in #29459
- One spawn step writes a terminal's pane identity for both ways Orca opens terminals by @brennanb2025 in #29884
- Tell users once that the diff panel in a Claude pane is Claude's own by @AmoabaKelvin in #29818
- Keep OMP prompt markers from ending an agent’s turn so phone chat can find its session by @nwparker in #30273
- Avoid duplicate snapshot replays after reveal by @nwparker in #30205
- Keep OMP prompt markers from triggering unnecessary terminal repair by @nwparker in #30285
- Limit concurrent GitLab project requests to keep task searches within the queue limit by @maxmilian in #30157
SSH, managed servers & remote
Keep disconnects, sleeping workspaces and closed tabs consistent, preserve workspace identity during server moves, and recover with clearer update and re-pairing guidance.
- Stop suggesting --host to listings that reject it by @nwparker in #30012
- Explain why file open fails on a server with no app window by @nwparker in #30014
- A host converted to its managed server keeps its workspaces' visit recency by @nwparker in #30015
- Link a folder workspace the server kept when a re-created SSH host moves again (#27285) by @nwparker in #30017
- A password SSH host waits for you at launch instead of prompting by @nwparker in #30025
- Make the host's tab name the one source for CLI and desktop renames by @nwparker in #30037
- A slept remote workspace stays asleep through terminal orphan recovery by @nwparker in #30118
- A Disconnect stays disconnected, and Settings and the status bar agree by @nwparker in #30130
- Orca serve on orcad serves the browser client and answers plain HTTP by @nwparker in #30120
- A tab closed while a managed host is disconnected stays closed; deflake the shared-home spec by @nwparker in #30146
- Paired clients see a folder-upgraded Git project under the host workspace id by @nwparker in #30190
- Move the open workspace to the server's linked project when joining an existing server by @nwparker in #30189
- Saved terminal history no longer blocks a host's move to its Orca server (#30126) by @nwparker in #30188
- Say when a managed server may be behind this app, and retry a failed update once per launch by @nwparker in #30218
- A late relay-era attach releases only its own viewer, never a successor's by @nwparker in #30219
- Report a legacy relay host active once a day while it bridges terminals by @nwparker in #30229
- SSH host management on a server without the desktop app says why it can't (D3) by @nwparker in #30242
- A connection never redials a host the user disconnected before its teardown runs by @nwparker in #30245
- Refuse a migration request too large for the host's sealed frame before sending it by @nwparker in #30249
- Overlapping update checks never both try a host the first one just failed on by @nwparker in #30253
- Show Re-pair required for revoked servers and let you re-pair in place by @nwparker in #30271
Phone
Edit queued messages in place, follow tool runs, resume conversations with their history visible, and navigate files, Tasks and landscape session tabs more smoothly.
- Edit queued messages in place by @brennanb2025 in #28646
- One Working line in every chat; drop the floating 'Agent is working' pill by @brennanb2025 in #29972
- The chat's Working line uses desktop's spinner by @brennanb2025 in #30008
- Keep a headless host's chat tab through snapshot rebuilds by @nwparker in #30028
- Prevent markdown and file tab reload and screen flicker on retap and revisit by @zhangxaochen in #30033
- Show the update screen instead of native screens when the desktop has no page by @Jinwoo-H in #29956
- Allow Markdown refresh during desktop tab snapshots by @nwparker in #30040
- Draw the host Accounts screen from the desktop's page by @Jinwoo-H in #30020
- Ask which desktop to open Tasks on when several are connected by @Jinwoo-H in #30048
- Show which desktop the mobile Tasks screen is for by @Jinwoo-H in #30105
- A compact phone queue: shorter header, a capped scrolling list, and an editor that fits the card by @brennanb2025 in #30016
- Draw chat tool runs the way desktop does by @AmoabaKelvin in #30135
- Render Source Control on the phone for large branches by @nwparker in #30215
- A session resumed from the phone's history shows its conversation before the first new turn (#10923) by @nwparker in #30283
- Break the transport and terminal-document import cycles, and gate cycles after mobile's install by @nwparker in #30290
- Put the session tabs in the top bar on a landscape phone by @brennanb2025 in #29070
Workspaces, sidebar & tabs
Protect same-path workspaces on different machines, explain cross-host actions, keep shortcuts on the focused split, and make notices and tab previews steadier.
- Main produces per-workspace activity facts, checked against the window in dev and test by @Jinwoo-H in #29980
- Stop the notice stack flickering under a resting mouse, and fit the force-delete button to its notice by @brennanb2025 in #29878
- ResolveOwner refuses folder and project-group twins instead of guessing this computer by @nwparker in #30009
- Main publishes desktop focus, pins, project and host order, and SSH/WSL host state, checked against the window in dev and test by @Jinwoo-H in #30018
- Main keeps one live set of paired-server rows, checked against the window in dev and test by @Jinwoo-H in #30027
- Main produces per-workspace PR facts, checked against the window in dev and test by @Jinwoo-H in #30026
- Main keeps a registry of workspace creations in progress, checked against the window in dev and test by @Jinwoo-H in #30021
- Ui.setCollapsed changes one section's collapse without undoing another device by @Jinwoo-H in #30044
- Say so when a project cannot join a group on another host by @nwparker in #30127
- Draw a project group once when two hosts publish it under one id by @nwparker in #30128
- A host-scoped purge leaves a surviving twin's tabs and edits alone by @nwparker in #30030
- Destructive host callers refuse an ambiguous owner instead of reading it as local by @nwparker in #30035
- Fold getExplicitRuntimeEnvironmentIdForWorktree callers into resolveOwner by @nwparker in #30059
- Confirm before sleeping a workspace that another host's copy shares by @nwparker in #30047
- Shrink twin-removal teardown to the attributed close actions by @nwparker in #30060
- Tighten the host-identity stack by @nwparker in #30124
- Stop CLI-created worktrees flashing into a filtered sidebar by @nwparker in #30194
- Say a Linear task-status skip was for a multi-host workspace by @nwparker in #30243
- Apply Quick Command shortcuts and pane actions to the focused split by @AmethystLiang in #30258
- Show when a paired server’s access is revoked or an update is required by @nwparker in #30280
- Wait for the full hover delay before showing each tab preview by @AmethystLiang in #30388
Editor, files & Markdown
Reveal files from their header menu and run notebook cells only when their workspace belongs to this computer.
- Reveal a file in Finder from its header menu by @nwparker in #30129
- Run cells only when the resolved owner is this computer by @nwparker in #30187
Browser
- Open hosting-provider websites from Cmd/Ctrl+J and clean up browser tabs on hosts without a browser engine.
- Let Cmd+J open hosting-provider domains like github.io by @AmethystLiang in #29989
- A client-hosted ghost tab closes on a host with no browser engine by @nwparker in #30119
Performance & reliability
Retry failed shell PATH checks and speed up development typechecking with a pinned Bun dependency.
- Retry the shell PATH check and fall back when the shell cannot launch by @nwparker in #30204
- Pin Bun as a devDependency and typecheck with it by @nwparker in #30149
Tests, CI & maintenance
Broader regression coverage, dependency updates and internal cleanup support the changes above. Work on host-owned layouts and sidebar state remains behind disabled build switches.
- Brand host-scoped worktree and repo keys for new code by @nwparker in #29990
- Agree with main on main-made terminal tabs and sleeping-agent records (dark, layout-owner build only) by @Jinwoo-H in #29967
- Agree with main on first-group ids, tab order and the preview flag (dark, layout-owner build only) by @Jinwoo-H in #29987
- Record chat tab opens and closes in main (dark, layout-owner build only) by @Jinwoo-H in #30019
- Record the chat pane the window picks in main (dark, layout-owner build only) by @Jinwoo-H in #30036
- Open into the window's emptied pane beside a split branch in one layout command (dark, layout-owner build only) by @Jinwoo-H in #30039
- Write no false preview flag on a new or promoted tab (dark, layout-owner build only) by @Jinwoo-H in #30041
- Record simulator tab opens and closes in main (dark, layout-owner build only) by @Jinwoo-H in #30034
- Put main's sidebar inputs behind the ORCA_SIDEBAR_INPUTS dark build switch by @Jinwoo-H in #30050
- Main serves workspace icons as small data URLs for the phone (dark) by @Jinwoo-H in #30046
- Floating editor files keep one id from open (dark, layout-owner build only) by @Jinwoo-H in #30109
- Main keeps the list's time rules on one clock, checked against the window (dark) by @Jinwoo-H in #30104
- Main's layout Loader keeps one pane per terminal on restore (dark, layout-owner build only) by @Jinwoo-H in #30110
- Main records a Quick Command tab's label when the tab is created (dark, layout-owner build only) by @Jinwoo-H in #30112
- Save-divergence detector: skip empty workspaces, see dropped tab-bar entries and kept pane trees (dark, layout-owner build only) by @Jinwoo-H in #30125
- A background agent tab keeps its live title when another tab opens (dark, layout-owner build only) by @Jinwoo-H in #30131
- Dark phone feed of the sidebar inputs (sidebarInputs.read) by @Jinwoo-H in #30161
- Pane titles stay layout: the window stops writing tab names as pane titles, and main loads them as the window does (dark, layout-owner build only) by @Jinwoo-H in #30136
- Main's temporal owner reads the catalog the way the window does (dark) by @Jinwoo-H in #30166
- Main produces this host's workspace rows, checked against the window (dark) by @Jinwoo-H in #30184
- One placement helper for drawn tab opens (dark, layout-owner build only) by @Jinwoo-H in #30174
- Main drops the layout of workspaces the catalog no longer validates (dark, layout-owner build only) by @Jinwoo-H in #30177
- Reopening a file in its open tab sends the main process the changed file record (dark, layout-owner build only) by @Jinwoo-H in #30197
- Main repairs a terminal stored in two panes once at startup (dark, layout-owner build only) by @Jinwoo-H in #30178
- Main records when a workspace's default tabs were applied (dark, layout-owner build only) by @Jinwoo-H in #30176
- Main keeps editor tabs under owned ids and in-place re-owns in step (dark, layout-owner build only) by @Jinwoo-H in #30206
- Refuse a layout change on a workspace a WSL move has paused (dark, layout-owner build only) by @Jinwoo-H in #30198
- Main routes folders by the window's host rule and never stops layout frames (dark, layout-owner build only) by @Jinwoo-H in #30201
- Phone and old-client tab lists keep editor tabs under owned ids (dark, layout-owner build only) by @Jinwoo-H in #30216
- One comparison-only worktreeIdentityKey replaces three key wrappers by @nwparker in #30217
- One worktree path equality; the ipc copy folded WSL ext4 tails by @nwparker in #30227
- The host that owns a workspace stamps its Recent and Smart keys (dark) by @Jinwoo-H in #30235
- After a restart, the host clears sort tiers nothing backs any more (dark) by @Jinwoo-H in #30259
- Drop the runtimeWorktreeIdsEqual alias; name the WSL hook relay gate for what it gates by @nwparker in #30264
- Main routes a project registered on two machines to the same owner the window saves to (dark, layout-owner build only) by @Jinwoo-H in #30196
- Window saves stop carrying tab and pane layout; main keeps its own (dark, layout-owner build only) by @Jinwoo-H in #30282
- The window's layout stream reconnects after a drop; a retried quit still sends resume records (dark, layout-owner build only) by @Jinwoo-H in #30380
- Only the tabs the window just changed wait for main's answer; the window-wide layout hold goes (dark, layout-owner build only) by @Jinwoo-H in #30384
- Sort Recent and Smart by the owning host's stamps, hold order under the pointer (dark) by @Jinwoo-H in #30284
- Renderer hydration cutoffs read main's status retention window by @nwparker in #30248
- One isRemoteExecutionHostPtyId, on prefix semantics by @nwparker in #30232
- Drop remote-pty checks the shared predicate already covers by @nwparker in #30256
- One isLocalExecutionHost in shared by @nwparker in #30241
- Import orcad helpers from their owning modules; delete the orcad-runtime-lifecycle re-export shim by @nwparker in #30265
- Move runtime/relay to runtime/mobile-cloud-relay by @nwparker in #30274
- Import mobile-cloud-relay and browser-host helpers from their owning modules by @nwparker in #30279
- SSH pane terminals and local-to-SSH tab moves reach main directly (dark, layout-owner build only) by @Jinwoo-H in #30281
- Import system-ssh and ssh -G modules directly; delete the ssh-system-fallback re-export shim by @nwparker in #30255
- Fence the legacy relay in ssh/legacy-relay/; live deploy primitives drop the relay name by @nwparker in #30292
- Move orcad activation into src/main/managed-server/activation/ by @nwparker in #30320
- Move port forwarding and hostile-host test harnesses into their own folders by @nwparker in #30277
- Move the managed server's install and deploy code into src/main/managed-server/install/ by @nwparker in #30335
- Move the managed server's lifecycle into src/main/managed-server/lifecycle/ by @nwparker in #30343
- Move host state into src/main/managed-server/host-state/ by @nwparker in #30347
- Group system-ssh transport, ssh config and remote exec into their own folders by @nwparker in #30355
- Group SSH and runtime-environment IPC handlers into ipc/ssh/ and ipc/runtime-environments/ by @nwparker in #30362
- Import ipc helpers from their owning modules, not re-export shims by @nwparker in #30369
- Import renderer runtime, shared remote-runtime and orcad helpers from their owning modules by @nwparker in #30370
- Import runtime helpers from their owning modules, not re-export shims by @nwparker in #30373
- Import worktree, watcher and runtime-environment helpers from their owning modules by @nwparker in #30375
- Send a browser tab's window times to main with its open (dark, layout-owner build only) by @Jinwoo-H in #29988
- Move runtime/browser-host-* into runtime/browser-host/ by @nwparker in #30275
- The common-dir check uses areWorktreePathsEqual by @nwparker in #30263
- Every build is the OTA shell; drop the native/OTA build switch by @Jinwoo-H in #29969
- Delete native screens the OTA shell no longer reaches by @Jinwoo-H in #29979
- Name the vm transcript and mobile pending-write caps for what they count by @nwparker in #30251
- Host-twin fixture and twin isolation suite for destructive and selection actions by @nwparker in #29991
- Test that main and the window agree on a worktree identity rekey (tests only) by @Jinwoo-H in #30005
- Read isStructuredTab from the shared module the newest release defines it in by @brennanb2025 in #30000
- Open and close structured chat tabs with an isolated Claude stand-in by @Jinwoo-H in #30011
- Ratchet importers of the deprecated runtime-owner resolvers by @nwparker in #30002
- Fix a timing-dependent hang in the PTY launch race test (CI only) by @Jinwoo-H in #30132
- Update vulnerable dependencies and prune stale overrides by @nwparker in #30143
- Make the hidden split-pane exit test exit cleanly (test only) by @Jinwoo-H in #30162
- Wait for git status before the discard confirmation test acts (test only) by @Jinwoo-H in #30165
- Reduce lint dependencies with Oxlint by @nwparker in #30180
- Pin the CocoaPods installer used by iOS releases by @nwparker in #30181
- Guard: older sessions' moved editor tabs get the right workspace id (tests only) by @Jinwoo-H in #30172
- Lock routine React Doctor and Knip execution by @nwparker in #30183
- Remove unused desktop and mobile declarations by @nwparker in #30182
- Ship the locked skills installer instead of executing npx by @nwparker in #30185
- Simplify CocoaPods pin checks by reusing existing Ruby CI by @nwparker in #30208
- Start the managed-SSH lane for remote product changes no route names by @nwparker in #30210
- Revert bundled skills installer; restore pinned [email protected] by @nwparker in #30207
- Fail when Electron and orcad wire the runtime differently without a reason by @nwparker in #30212
- Delete the rollout-flag module nothing reads by @nwparker in #30211
- Delete the never-served TLS branch of the LAN WebSocket server by @nwparker in #30220
- Freeze the clock in the explicit-binary timeout test by @nwparker in #30221
- Delete unimported SSH, renderer and orchestration modules by @nwparker in #30214
- ORCA_FEATURE_REMOTE_AGENT_HOOKS now only gates the WSL hook relay by @nwparker in #30223
- Fail when orca serve's serve-selection entry or its chunks stay packed (#27404 guard) by @nwparker in #30228
- Fail when CI config, workflows or e2e code name a src/ file that no longer exists by @nwparker in #30224
- Orca serve's command line makes orcad serve the web client (#30120 regression) by @nwparker in #30222
- Start the managed-SSH lane for every helper only its specs import by @nwparker in #30233
- Native-ignore watcher test waits on delivered events, not a fixed sleep by @nwparker in #30236
- Start the remote host lanes and cross-version job for the transport code they execute by @nwparker in #30239
- Windows CLI matrix convert cell uses the convert helper that exists by @nwparker in #30231
- Pin the 12 hand-kept error-code lists to their callers' policy by @nwparker in #30246
- Path-literal check scans live gate references; historical gate commands move to currentCommand by @nwparker in #30252
- ComposeWorktreeId plus a ratchet on hand-built worktree ids by @nwparker in #30238
- Resolve macOS tmpdir realpath in create-intent and clone tests by @nwparker in #30268
- Tighten the round-2 parity, serve and watcher tests by @nwparker in #30267
- Compatibility folders name their entry modules instead of an index barrel by @nwparker in #30269
- Ratchet type errors under tests/ so a broken spec import can't land unnoticed by @nwparker in #30286
- Ratchet the legacy relay fence (importers of ssh/legacy-relay/ and COMPAT seams) by @nwparker in #30317
- Format the resume and transcript files main left unformatted by @brennanb2025 in #30137
New Contributors
- @zhangxaochen made their first contribution in #30033
- @maxmilian made their first contribution in #30157
Full Changelog: v1.4.229...v1.4.230
Original source - Oct 17, 2026
- Date parsed from source:Oct 17, 2026
- First seen by Releasebot:Oct 18, 2026
v1.4.229
orca releases a major update that improves experimental native chat, expands shared skills and phone workflows, and adds Jira planning with boards, saved filters and agent ticket access. It also strengthens SSH and remote-terminal reconnects, workspace management and automation reliability.
Thank you so much for using Orca and for your continued support! ❤️
Original source
The short version
Native chat (experimental): Review turn-by-turn edits inline, expand diagrams to pan and zoom, share chat visuals with a click, and see Claude goals and Codex context usage. Keyboard answers, an unread divider and Copy on Select make long conversations easier to navigate.
Shared skills: Shared-skill installation now supports 20 additional agents, with broader WSL discovery and the right install locations for tools such as Kiro, Qoder and CodeBuddy.
Phone: Workspace filters, grouping and sorting now follow the desktop’s shared choices. Long-press for linked issues and notes, work with server workspaces and browser pages, or continue a supported chat in a new terminal conversation.
SSH and remote terminals: Reconnect fixes preserve split panes, paste order and managed-server project groups. Sleeping agents resume their conversations, and removing one machine’s project leaves its same-path counterpart alone.
Workspaces and everyday polish: Open a website from Cmd/Ctrl+J, watch checkout progress as a worktree is created, and clean up workspaces with an explicit confirmation before stopping running agents.
Jira planning: Switch between issue lists and boards, focus on the current sprint, reuse saved JQL and Jira favourites, and start workspaces from desktop or phone. Your agents can read and update Jira tickets through the Orca CLI, too.
Known issues
Native chat (experimental): Features that depend on a remote host are available when that host supports them. Update the host alongside Orca to get the latest capabilities.
The orca command on SSH hosts: Existing hosts keep their saved Orca CLI control preference. To let agents there manage workspaces or control the desktop browser, turn on Allow this host’s orca CLI to control Orca under Settings → SSH Hosts → edit the host → Advanced Connection.
Product experience
Automations
Create and edit automations on SSH projects with older paired servers, and keep scheduled work attached to the right host.
Stop offering Blank Terminal in agent-only pickers (automations) by @Jinwoo-H in #26961
Start server-run automations' agents through the launch executor by @brennanb2025 in #26820
Display valid multi-day automation schedules by @nwparker in #26850
Automation runs, CLI tabs and folder-workspace browser tabs follow the owner by @OrcaWin in #27246
Find folder-workspace targets on the Automations page by @OrcaWin in #27416
Stop offering Resume workspace for runs that never started an agent (STA-10103) by @Jinwoo-H in #28179
Format the jobs-file limit consistently by @nwparker in #28220
Remove Hermes automation support by @AmethystLiang in #28519
Sleep a finished run's terminal instead of closing it by @AmoabaKelvin in #28838
Run Now matches the managed server's setup after an SSH host moves by @nwparker in #29394
Page automations runs so a paired server's history fits its replies by @nwparker in #29446
Automations create/edit for an SSH project work against an older paired server by @nwparker in #29924
Native chat (experimental)
Review edits inline, expand diagrams, share visuals, follow Claude goals and Codex context usage, and keep long conversations easier to read and continue.
Re-land Claude per-account folders (#24434, #26405) with the upgrade and proxy fixes by @Jinwoo-H in #26801
Save a new chat's first message during create by @brennanb2025 in #26332
A new Pi chat names the model it will run on its first frame by @brennanb2025 in #26821
Start orchestration workers as native chats for every agent that has native chat by @brennanb2025 in #26776
Highlight code blocks and shell commands by @AmoabaKelvin in #26343
Open a chat visual in its own tab instead of the sidebar by @brennanb2025 in #26728
Keep Chat UI users with a Terminal default on the terminal, with a chat mode switch in the upgrade tip by @brennanb2025 in #26915
Let a Codex chat stop a command it left running in the background by @brennanb2025 in #26780
Add "Copy sign-in link instead" for Claude accounts (STA-9912) by @Jinwoo-H in #26990
Every new-chat request opens its own chat by @brennanb2025 in #26782
Native chat: identify a paired device by its device id, never its credential by @brennanb2025 in #26777
Match model picker type to the options menu by @AmoabaKelvin in #26349
Every agent reports its learned default model once, when a chat starts by @brennanb2025 in #26982
Floating-workspace chats of every native-chat agent keep links in the folder they started in by @brennanb2025 in #26981
Keep select-all and copy in a chat from reaching the terminal underneath by @AmoabaKelvin in #26831
Accept sends through their own receipt by @brennanb2025 in #26672
Edit a queued message in place, even while a question is open by @brennanb2025 in #26886
Settle a reply cut off by a server restart by @brennanb2025 in #26460
Hide agent message controls while the turn runs by @AmoabaKelvin in #26404
Drop the redundant 'Waiting for your answer' line from queued cards by @brennanb2025 in #27073
Show attached files as filename pills in the composer by @AmoabaKelvin in #26409
Offer Codex Ultrafast as a speed choice by @brennanb2025 in #26962
Let a Codex chat stop a sub-agent from the background-tasks strip by @brennanb2025 in #27026
Lazy WSL tier for Claude, Grok and omp lookup by id by @OrcaWin in #27082
Resume a WSL session only in its own namespace, with a Linux Pi path by @OrcaWin in #27092
Retire the pending image bubble when the CLI records its path as text by @OrcaWin in #27095
Retire a first send's echo in transcript time, not this client's by @OrcaWin in #27099
Reduce memory used to count Codex usage and avoid partial totals by @nwparker in #26966
Update Claude usage without rereading the whole conversation by @nwparker in #26967
Give each animation a reduced-motion state by @AmoabaKelvin in #26276
Let a Grok chat list and stop the commands it left running in the background by @brennanb2025 in #27022
Preserve running subagent rows in long chats by @brennanb2025 in #26798
Honor inactive Claude account retry deadlines by @nwparker in #26936
Read ZCode conversations in their recorded order by @nwparker in #27142
Register a short PostCompact hook command by @vampik33 in #25211
Fix Codex usage bypassing configured proxy routing by @nwparker in #26942
A new chat's model and effort pickers match their first frame before the agent starts by @brennanb2025 in #27031
A closed chat tab stays closed instead of coming back on the right by @brennanb2025 in #27205
Put Continue in the card that says the reply stopped by @brennanb2025 in #27097
One shared subagent tracker for Claude, Codex and Grok chat rows by @brennanb2025 in #27228
Let managed SSH Claude chats load the agent SDK by @brennanb2025 in #26450
Offer resume after restart for chats whose only work was in the background by @brennanb2025 in #27167
Copy in remote Orca Server Codex sessions reaches your clipboard by @OrcaWin in #27605
Keep diagram source mounted and retire reveal history by @brennanb2025 in #26690
Keep SSH chat providers alive after the desktop disconnects by @brennanb2025 in #26473
Native chat: queued-message actions and question answers accept through their own receipt by @brennanb2025 in #26988
One set of rules for chat text size, colour, hover and focus by @AmoabaKelvin in #26685
Use quote icon for Add to chat by @brennanb2025 in #27631
Jump to messages without scrolling animation by @AmethystLiang in #27612
Native chat: every agent launches through one composed launch path by @brennanb2025 in #27204
Offer Resume in New Native Chat only while the tab's agent is running by @brennanb2025 in #27520
Show hook failure details in error cards by @nwparker in #27824
Honor Chat UI setting for worktree agent creation by @brennanb2025 in #27796
Show turn edit diffs inline in native chat by @brennanb2025 in #27758
Terminal header button: Resume in New Native Chat replaces Show chat view by @brennanb2025 in #27184
Message rail lights a message sent while the agent was working by @brennanb2025 in #27821
Name orchestration worker chat tabs after their task title by @brennanb2025 in #28045
Wrap long lines in code blocks by @brennanb2025 in #26130
Start the Codex usage probe off the main thread so focus doesn't freeze the UI by @OrcaWin in #27707
Native chat: read one saved row per subagent (part 1 of 2) by @brennanb2025 in #27914
Name the agent when it refuses a message by @brennanb2025 in #27946
Require Codex 0.136.0 for chats by @brennanb2025 in #26684
Move Chat UI's chat settings from Experimental to the Chat page by @brennanb2025 in #28050
Register the Windows statusLine so usage updates without Git Bash by @OrcaWin in #27710
Session History shows OpenCode, Grok, OMP and Pi chats as chats and refuses a second terminal writer by @brennanb2025 in #27183
Move the start-refusal table out so Lint passes on main by @brennanb2025 in #28083
Each Claude/Codex chat gets its own permission mode by @brennanb2025 in #26116
Replace chat upgrade switch with primary Enable Now button by @nwparker in #28113
Native chat tabs show their recorded provider, not one guessed from the title by @brennanb2025 in #28082
Host writes one saved row per subagent by @brennanb2025 in #27947
Make Enable Now the full-width action in the chat upgrade tip by @brennanb2025 in #28199
Seed the chat permission default from Claude's and Codex's own arguments by @brennanb2025 in #28100
Move Permissions for new chats into the Chat page's Behavior section by @brennanb2025 in #28212
Fix delayed agent launches such as sleep 30 && claude by @nwparker in #28205
Show Codex model capacity failures as red agent status by @nwparker in #28231
Record the Codex capacity capture's known replay divergence by @OrcaWin in #28286
Drop the duplicate Codex capacity replay baseline entry by @OrcaWin in #28295
Drop the duplicate Codex capacity replay entry by @OrcaWin in #28297
Restore the single Codex capacity replay entry by @OrcaWin in #28301
Expand mermaid diagrams into a pan and zoom viewer by @AmoabaKelvin in #27715
Load long chats on the phone by keeping every update within its limit by @Jinwoo-H in #28203
Chats from before permission modes keep the mode they were running with by @brennanb2025 in #28099
Resume in New Native Chat for Grok and OMP terminal conversations by @brennanb2025 in #28049
Stop is saved before it acts, and a late or repeated Stop does nothing by @brennanb2025 in #27076
Show context usage in Codex chats by @AmoabaKelvin in #28084
Slash-menu command names no longer look oversized by @brennanb2025 in #28461
Copy the Codex TOML parser into packaged Orca by @nwparker in #28416
Combine model and options into one picker by @AmoabaKelvin in #27972
Phone Stop reaches a message the agent hasn't answered; unreadable task list reports unconfirmed by @brennanb2025 in #28243
A Claude model that's gone switches to the list's default when you send by @brennanb2025 in #27826
Store a chat's permission mode on its own, so a model pick can't reset it by @brennanb2025 in #28268
Pass the clock to a recorded option pick by @nwparker in #28571
Drop the duplicate now key left by crossing fixes by @nwparker in #28599
Questions an agent sends as permission requests are never auto-answered by @brennanb2025 in #28449
Resume in New Native Chat for OpenCode by @brennanb2025 in #28072
Native chat: a message stopped before the agent got it reaches the agent with your next send by @brennanb2025 in #27623
Native chat: record which agent run wrote each journal item (1/5, rebuild of #26867) by @brennanb2025 in #28092
Resume in New Native Chat for Pi by @brennanb2025 in #28080
Share a chat visual from the chat by @brennanb2025 in #28479
Resume in New CLI for OpenCode and OMP chats by @brennanb2025 in #28075
Add a "New" line above unseen messages by @AmoabaKelvin in #28333
Send typing after a click to the chat's composer by @AmoabaKelvin in #28728
Copy chat selections when Copy on Select is on by @AmoabaKelvin in #28737
Chat scratch folders expire after 30 days unused by @brennanb2025 in #28394
Native chat: one current-work projection for every host reader, death recorded first (2/5, rebuild of #26867) by @brennanb2025 in #28103
Use short effort label in the native chat model pill by @AmethystLiang in #29029
Recognize missing history before chat creation by @brennanb2025 in #28261
Focus the composer after a keyboard switch between chats by @AmoabaKelvin in #29152
Show and focus the field in pi text dialogs by @AmoabaKelvin in #28895
Show Claude's /goal in the goal banner by @brennanb2025 in #28923
Start OMP on cmd.exe when setup runs first by @brennanb2025 in #29176
Keep Claude skills tagged as skills after the agent changes folder by @brennanb2025 in #29030
Resume large terminal conversations in a new native chat by @brennanb2025 in #29056
Chat agents can declare a managed runtime that a start runs but never installs by @brennanb2025 in #28460
Open a native chat copy in the CLI without waiting for History by @brennanb2025 in #29126
One queue header that becomes the pause row; drop the composer Resume and the send dialog by @brennanb2025 in #28654
Support arrow-key answers in chat question cards by @brennanb2025 in #28865
Paste clipboard images into a chat on a managed SSH host or paired server by @nwparker in #29278
Fix terminal daemon restart leaving older Codex conversations locked by @nwparker in #29216
Chat agents can run with their own temp folder, cleared when they exit by @brennanb2025 in #28462
A reclamation primitive removes all but the kept managed runtime release by @brennanb2025 in #28507
Settle acknowledged messages after a paged reconnect by @brennanb2025 in #28993
Acting on one chat no longer waits on checks of every other chat by @brennanb2025 in #26555
Link a bare file name once the chat's folder has it by @brennanb2025 in #28818
Fix keyboard focus when revealing a chat in another pane by @brennanb2025 in #28987
Save agent prompts whole, bounded by what a chat message carries by @brennanb2025 in #24488
A slash command that starts a turn shows one Worked-for bar by @brennanb2025 in #29013
Keep the "New" line in place when a turn is expanded by @AmoabaKelvin in #29230
Native chat: one settlement transaction for everything an ended run left (4/5, rebuild of #26867) by @brennanb2025 in #28111
Enable Claude plugin images and bounded terminal file transport by @nwparker in #28200
Keep idle Claude sessions selected during nested Codex work by @nwparker in #29386
Never run a chat on an older host with more access than Ask for approval allows by @nwparker in #29442
A transcript lookup miss creates no Codex directories by @nwparker in #29557
Keep saved visuals from before the chat-scratch rename by @AmoabaKelvin in #29717
Offer Claude's own / commands (like /goal) in a chat before Claude starts by @brennanb2025 in #29026
Stop following the end when the reader scrolls over a visual by @AmoabaKelvin in #29116
Offer actions for what you right-click in chat by @AmoabaKelvin in #28729
Fix extra terminal during background native-chat setup by @AmethystLiang in #29810
Wait for agent readiness without blocking native chat by @brennanb2025 in #27925
Keep Claude's /color, /doctor and /reload-plugins in the chat / menu by @brennanb2025 in #29784
Identify the owner when resume creation is refused by @brennanb2025 in #29119
Keep pending chat decisions available outside loaded history by @brennanb2025 in #29121
Dictate into the composer when it lacks focus by @AmoabaKelvin in #29855
OMP, OpenCode and Grok chats follow their own permission mode by @brennanb2025 in #29335
Decide provider failures by kind, never by searching the payload by @brennanb2025 in #29092
A managed runtime installs only when asked, with progress and cancel by @brennanb2025 in #29023
A dot between the queue header's label and its count by @brennanb2025 in #29268
Hosts install a managed runtime over RPC, and mark agents whose program Orca provides by @brennanb2025 in #29024
The app follows a host's managed runtime install state, shared by every surface by @brennanb2025 in #29048
Verify the actual CLI conversation during resume by @brennanb2025 in #29124
Idle cleanup and commands read the helpers the agent reported, not the capped status store by @brennanb2025 in #29905
One install row shows and drives a managed runtime install, for Settings and chat by @brennanb2025 in #29049
Agents, integrations & orchestration
Plan work in Jira with boards, saved filters and current-sprint views, find the right task, and keep agent launches and session status consistent across machines.
Report Kiro agent status and list Kiro sessions in history by @w-felipe360 in #26695
Show the usage unit once in the status bar by @AmethystLiang in #26869
Start plain new-tab agent launches through the host's agent.launch by @brennanb2025 in #26489
One host-routed agent-detection entry point by @OrcaWin in #27054
Route the first-work branch rename by the repo's execution host by @OrcaWin in #27080
A session dropped on a pane edge splits the pane in paired-runtime workspaces by @OrcaWin in #27102
Throttle and background last-status.json writes by @nwparker in #26822
An old Windows or unknown-platform host asks to update instead of answering its default list by @OrcaWin in #27164
Exclude label groups from assignable labels by @nwparker in #26861
Show DeepSeek icon for observed Build sessions by @nwparker in #26863
Name Agent Dashboard column regions by @nwparker in #26865
One agent inventory per host and execution context by @OrcaWin in #27225
Review providers resolve the repo on its host by @OrcaWin in #27247
A server's late account result stays with that server by @OrcaWin in #27262
GitHub Projects boards read from the task page's source host by @OrcaWin in #27270
Keep Coding Plan credentials and quota tied to the selected account by @nwparker in #24674
Open ZCode sign-in in the existing setup terminal by @nwparker in #27321
Remove a rejected GLM key when restore fails by @parkavenue9639 in #24964
Stop feature branches from borrowing unrelated PRs by @nwparker in #27332
Avoid downloading unchanged paired-runtime session history by @nwparker in #27383
Keep nested models off parent panes by @nwparker in #26846
Session History: resume folder workspace chats in their own folder by @brennanb2025 in #27209
Account switchers and CLI cards follow the focused repo's host by @nwparker in #27687
Edit agent launch settings on the workspace host by @brennanb2025 in #26479
Launch agents in existing workspaces by @brennanb2025 in #27794
Register forward-slash Windows hook paths for Grok, Devin, ZCode and Antigravity by @OrcaWin in #27713
After a restart, an agent tab asks the terminal host what is running, never "Couldn't confirm the agent started" by @brennanb2025 in #28043
Cap Cursor's Retry-After at 24h and share one Retry-After parser by @Jinwoo-H in #28406
Host plans agent launches with the window's runtime rule and one runtime fact (C1) by @brennanb2025 in #27692
Stop retried failed worker starts from piling up live agents by @brennanb2025 in #27795
Show "Network issue" for any provider whose usage request fails on the network by @Jinwoo-H in #28415
Usage requests answer authenticated-proxy challenges on a cold start by @Jinwoo-H in #28411
Preserve open chat status when terminals close by @brennanb2025 in #28188
A focused WSL host shows and switches its distro's accounts by @nwparker in #28465
Launches a WSL host starts itself use the account selected for its distro by @nwparker in #28464
Add "None" agent option that opens only the setup script by @leog in #25617
Retire any restored agent row whose terminal died while Orca was closed (STA-10194) by @Jinwoo-H in #28475
Refresh Source Control only for the worktree whose git index changed by @Jinwoo-H in #26946
Open a server agent's notification on its server by @Jinwoo-H in #26518
Refuse an agent whose WSL runtime needs repair under its own code, in the settings page's words by @brennanb2025 in #28232
Fix CLI delivery and fresh launch environments for managed SSH agents by @brennanb2025 in #26464
AI-button and OpenCode-model tabs start their agent in their own terminal by @brennanb2025 in #28210
Refuse desktop resumes of chat-owned conversations by @brennanb2025 in #28229
Trust a WSL share path's distro in the agent list, over Orca's cached distro list by @brennanb2025 in #28233
Keep status refresh for worktrees whose admin dirs differ only by case by @nwparker in #28586
Clear agent selections in workspace creation and settings by @nwparker in #28543
Finish agent-selection cleanup and restore merge validation by @nwparker in #28607
Keep issue titles readable in narrow panels by @nwparker in #28583
Keep description and comment hyperlinks clickable by @nwparker in #28584
Let agents read and update Jira tickets safely by @nwparker in #28592
Support scoped Cloud API tokens by @nwparker in #28604
Keep edits and comments visible while saving by @nwparker in #28585
Generate issue titles on the connection host by @nwparker in #28625
Fix Jira Cloud All and classify presets by ticket status by @nwparker in #28579
Resolve Jira keys in workspace references by @nwparker in #28619
Show every linked Jira workspace and add a Has Workspace view by @nwparker in #28590
Notice Jira and Linear state changes from other processes by @nwparker in #28594
Add row quick copy and reusable prompt templates by @nwparker in #28618
Save and reuse named Jira JQL filters on the execution host by @nwparker in #28600
Choose planning columns in the issue list by @nwparker in #28615
Choose Jira key casing and keep canonical Jira keys in review titles by @nwparker in #28596
Collect required fields before changing status by @nwparker in #28588
Restore Jira CI lint checks without changing behavior by @nwparker in #28717
Make existing Jira assignees searchable and add Assign to me by @nwparker in #28612
View Jira work on a board and filter the current sprint by @nwparker in #28633
Load attachment images outside issue Markdown by @nwparker in #28631
Remember repository project defaults by @nwparker in #28622
Split Jira issue workspace hooks and IPC param checks by @AmethystLiang in #28759
Refuse a picked OpenCode model in any WSL share repo by @brennanb2025 in #28236
Show whole credit balances in usage displays by @nwparker in #28887
Find a repo's project the way the window does by @brennanb2025 in #28237
Stop Jira search loops when saved filters fail to load by @nwparker in #29011
Add bounded site-specific favourite filter catalogue by @nwparker in #29028
Avoid blank shells when launching new workspaces by @brennanb2025 in #28451
Use favourite filters within their source site by @nwparker in #29037
Show linked workspaces in Has Workspace by matching the Jira login, not its label by @Jinwoo-H in #29201
Session History: show the scan's progress in a strip under the search box by @brennanb2025 in #28576
Keep collapsed sidebar agent cards steady when the child arrow appears by @nwparker in #29246
Session History: let a scan run until it finishes instead of stopping it after 130 s by @brennanb2025 in #29073
Stop nested reviews from collapsing Claude children by @nwparker in #29264
Resolve SSH host aliases for account binding by @orchardprior in #29018
Clear a Claude permission wait when its approved tool fails by @nwparker in #29387
Keep scan notices from burying the session list by @nwparker in #29392
Show usage from the host that owns the accounts by @nwparker in #29430
Removing a worktree drops its sleeping-agent records by @nwparker in #29449
Remote worker liveness reports exited when the host proves the agent gone by @nwparker in #29276
Quote resume commands for a Windows SSH host's own shell by @nwparker in #29409
Release a Claude permission wait that ended during an SSH disconnect by @nwparker in #29482
The wake sweep no longer forks sessions owned by a disconnected SSH pane or a stale-workspace record by @nwparker in #29454
A proven agent exit survives restarts, late hooks and same-second attaches by @nwparker in #29483
Open disk usage in a separate window by @nwparker in #29513
Open the browser for a WSL account sign-in by @nwparker in #29566
Bound retained agent exits by @nwparker in #29600
New-agent shortcut, Explain and direct launches ask the workspace's own host for its agents by @nwparker in #29622
A resumed agent's chat is readable on the phone before its first new turn by @nwparker in #29664
Direct work-item and checks-fix launches quote for the execution host by @nwparker in #29716
Let npm-installed agents generate commit messages on Windows by @AmoabaKelvin in #29434
Native-chat agents get their mail notice right away, the same way for every agent by @brennanb2025 in #28540
Session History: stop re-reading unchanged transcripts past 4,096 files by @brennanb2025 in #28821
Bold an agent row only while looking at it can clear it by @brennanb2025 in #28830
Session History: save the parse cache one row per transcript, so restarts re-read nothing by @brennanb2025 in #29401
Load MR reviewer choices from the paired server that owns the repo by @nwparker in #29917
Fill the label and reviewer pickers and stop replacing issue assignees by @zanmlakar in #28776
No false "Couldn't launch" toast while a new agent's terminal is still starting by @brennanb2025 in #29911
Delete the active or a running-agent workspace like a sidebar delete by @brennanb2025 in #23593
SSH, managed servers & remote
Reconnect after sleep or a network drop, recover split panes without losing their siblings, resume sleeping agents, and preserve each machine’s projects and running work.
Show help before server startup by @nwparker in #26855
Start AI commit messages from the same shell environment chats use by @Jinwoo-H in #26808
Host registry stops minting client SSH hosts from a server's nested target by @OrcaWin in #26952
Folder workspaces can answer "paired server" by @OrcaWin in #26958
Keep MCP repository settings on their selected host by @nwparker in #26859
Extract subprocess handling into @orca/process-host by @nwparker in #26963
Keep a floating terminal floating when its cwd is inside a workspace by @OrcaWin in #27088
Bounded OpenClaw discovery; title filter when a host's search is off by @OrcaWin in #27089
A tab stream the host ends resubscribes on the retry backoff by @OrcaWin in #27098
Automatic tab activation no longer wakes a worktree the host put to sleep by @OrcaWin in #27081
A direct-SSH host republish no longer steals this view's tab selection by @OrcaWin in #27100
A restored terminal row is retired only by its own host PTY by @OrcaWin in #27101
Honor the OpenSSH DefaultShell on Windows SSH hosts running orcad by @OrcaWin in #27085
A returning paired publisher is repaired by an authoritative census by @OrcaWin in #27094
Implicit worktree selection is scoped to the caller's host by @OrcaWin in #27108
The unresolved-owner sentinel is never routable by @OrcaWin in #27111
Worktree create enforces the lineage host boundary by @OrcaWin in #27114
Every repo catalog uses the host-catalog fence by @OrcaWin in #27116
A terminal close commits in the session partition that holds the tab by @OrcaWin in #27119
Closing a tab is never a silent no-op by @OrcaWin in #27132
A server whose status answers is selectable while shared control connects by @OrcaWin in #27137
Speed up process-host import enforcement in CI by @nwparker in #27124
Advertise a key and fallback port the host can actually serve by @OrcaWin in #27158
OS open actions follow the file's owner, not the focused server by @OrcaWin in #27165
Deleting a project with live terminals warns and needs --force by @OrcaWin in #27172
Servers publish a host descriptor by @OrcaWin in #27193
Host-scoped port scan and stop on the server by @OrcaWin in #27188
Check the runtime source before sending by @OrcaWin in #27206
The host refuses a request meant for another runtime by @OrcaWin in #27224
Terminal IDs, agent rows and dashboard rows follow the owner by @OrcaWin in #27243
Dashboard terminal previews from the owning host by @OrcaWin in #27250
The ports panel scans and stops on the workspace's own host by @OrcaWin in #27258
Agent launch platform and shell come from the execution host by @OrcaWin in #27259
Resource Manager lists the owning host's processes by @OrcaWin in #27263
Host-owned settings panes choose their host explicitly by @OrcaWin in #27265
Install agent status hooks when a managed host starts by @OrcaWin in #27319
Provide the orca CLI in Windows managed-host terminals by @OrcaWin in #27324
Save runtime-started tabs in the tab bar before their terminal starts by @Jinwoo-H in #27083
A paired client can manage the server's own SSH hosts (ssh.target-management.v1) by @OrcaWin in #27329
Create on a server's SSH project; Add Project SSH lists the server's targets by @OrcaWin in #27331
Restore saved port forwards on managed hosts and show their Ports tab by @OrcaWin in #27361
Reenable terminal link Actions after an old opt-out by @nwparker in #26853
A recipe VM's SSH root runs on a managed Orca server by @OrcaWin in #27366
A restore racing a disconnect never leaves a forward behind by @OrcaWin in #27368
Refuse headless tab moves into a group the server doesn't have by @Jinwoo-H in #27381
Let a paired desktop register its phones as phone devices by @Jinwoo-H in #26427
Stop dropping terminal output on a backed-up legacy connection by @Jinwoo-H in #26528
Move tabs into a split-off group on the server too by @Jinwoo-H in #26522
Reuse an Asia load principal set for shards past the fourth by @Jinwoo-H in #27403
Unpack the orcad serve-selection entry so orca serve can run it by @OrcaWin in #27404
Refresh open clients after project setup changes by @nwparker in #26941
A fast remote folder listing no longer shows a false error by @nwparker in #26940
Remove the relay-only remote workspace sync so reconnect never sticks on pulling by @OrcaWin in #27409
Only force-kill processes in the terminal's own Linux session by @OrcaWin in #27422
Scope layout.unsubscribe to the caller's connection by @Jinwoo-H in #27423
Observe-only fork gate for automatic terminal restores by @OrcaWin in #27424
Launch the AppImage terminal daemon through its own mount by @OrcaWin in #27435
Pace automatic terminal restores on headless hosts by @OrcaWin in #27428
Pause automatic restores after a same-boot crash by @OrcaWin in #27433
Report secrets unavailable instead of hanging on an unreachable macOS keychain by @OrcaWin in #27441
Process-growth breaker that pauses automatic restores by @OrcaWin in #27437
Drop a legacy daemon that can no longer accept a connection by @OrcaWin in #27436
Count a claimed agent resume as automatic even without a history seed by @OrcaWin in #27442
Reuse cached worktree rows when the admin probe cannot answer by @OrcaWin in #27445
Phone wake reaches hibernated agent panes in place by @OrcaWin in #27450
Accept a declared spawn intent from paired clients by @OrcaWin in #27452
Keep the isolated profile off the login keychain by @OrcaWin in #27463
Stop promising a manual update enables remote updates by @OrcaWin in #27464
Install macOS orca serve updates instead of waiting on Squirrel forever by @OrcaWin in #27466
Declare restore intent and keep deferred panes sleeping by @OrcaWin in #27455
Decide a duplicate or doomed Electron serve before exec by @OrcaWin in #27472
Let the owner resume paused automatic restores by @OrcaWin in #27459
Cap terminals per execution host by @OrcaWin in #27488
One automatic-restore budget per execution host by @OrcaWin in #27492
Device-key authentication and per-installation key migration (host) by @OrcaWin in #27493
Keep tweetnacl out of the relocated Windows daemon-host graph; guard daemon externals at build by @OrcaWin in #27504
The host keeps its own record of old-client restores it refuses by @OrcaWin in #27496
Remove a simulated terminal credit correctness check by @nwparker in #27507
Preserve terminal permissions across app updates with a small signed helper by @Jinwoo-H in #27021
Show terminal-host Full Disk Access, tag stable-copy daemons, and give Helpers folder strings by @Jinwoo-H in #27354
Replace three copied new-terminal tab-order blocks with the shared helper by @brennanb2025 in #26771
Session-only browser keys and opt-in for pairing from plain-http pages (host) by @OrcaWin in #27540
Open WSL paths in Cursor's WSL mode; ignore Windows-side CLIs in WSL hook setup by @nwparker in #27681
Keep remote servers usable when one saved record can't be read by @nwparker in #27685
Restore Windows interop after another distro wipes it by @nwparker in #27682
Don't duplicate terminals a newer Orca still runs after a downgrade by @Jinwoo-H in #27577
Stop booting stopped distros for background work by @nwparker in #27684
Supervised mode for orca serve --supervise by @OrcaWin in #27716
Auto-park registered serve supervisors during a desktop install by @OrcaWin in #27722
End an older Orca's relay terminals from the connect refusal (STA-10166) by @OrcaWin in #27748
Orca serve service install|status|uninstall by @OrcaWin in #27744
Initialize the updater in headless Electron serve by @OrcaWin in #27771
Opt-in OS ceiling on terminal processes, reported per host by @OrcaWin in #27769
Quitting Claude or Codex in cmd.exe or Git Bash removes it from the running list by @brennanb2025 in #27742
Keep 1.4.224's running terminals working after the upgrade (legacy relay bridge) by @OrcaWin in #27787
An old relay terminal's tab shows output again after a reconnect by @OrcaWin in #27951
Never start a hidden orcad shell for a tab the legacy relay bridge serves by @OrcaWin in #27939
Save Codex auth before a headless serve update restart by @OrcaWin in #28001
Explain what to run when an SSH host's orca cannot start or install a server by @OrcaWin in #28003
Run the --supervise supervisor from a copy outside the app by @OrcaWin in #28007
Give the first AppImage serve one unpacking deadline and progress by @OrcaWin in #28015
Stop giving new terminals to a daemon whose AppImage files are gone by @OrcaWin in #28011
Persistent banner to restart a terminal daemon whose files are gone by @OrcaWin in #28021
Verify daemon PID identity from the native Windows process table, not PowerShell by @OrcaWin in #27703
Start every host wsl.exe call through process-host so no console window flashes by @OrcaWin in #27628
Save terminal rows in the tab groups' order by @Jinwoo-H in #28066
Keep the tab when a reattach finds its process gone by @Jinwoo-H in #28067
Speed up daemon smoke checks and keep compiler slots busy by @nwparker in #28106
Identify instances by kernel start ticks, not drifting wall-clock start time by @nwparker in #28125
Run WSL git with Windows Git line-ending settings on checkouts Windows Git wrote by @nwparker in #27778
Stop a project's terminals before the host forgets the project by @nwparker in #28024
Keep a named terminal's title across an orca serve restart by @Jinwoo-H in #28126
Show a host-created setup split in the window that holds its tab by @Jinwoo-H in #28105
Recheck watcher-reported paths with full stat on Windows Git drive checkouts by @nwparker in #27817
Keep the relocated Windows daemon host's conpty.dll under the path limit by @nwparker in #28156
Orcad host transport over wsl.exe (WSL-via-orcad C1) by @nwparker in #27792
Detached distro holder re-adopted from a pid file (WSL-via-orcad C3) by @nwparker in #27800
Let existing profiles migrate without losing client history by @nwparker in #28141
Pace automatic terminal restores on the desktop too by @OrcaWin in #28202
Open the floating panel instead of blanking the main window on host reveals by @Jinwoo-H in #28184
Clearer headless-display and supervisor messages on Linux by @OrcaWin in #28230
Deploy and launch orcad inside a WSL distro (WSL-via-orcad C4) by @nwparker in #27819
Direct AppImage serve honours the chosen profile and --supervise by @OrcaWin in #28227
Name a new tab's first pane so its saved layout is never empty by @Jinwoo-H in #28168
Route the worktree ready toast's host check by its owner, not the Active Server setting by @nwparker in #28265
Show managed hosts once in the connection menu by @nwparker in #28277
Run the AppImage terminal daemon off the mount, on the extracted copy's bundled Node by @OrcaWin in #28214
A supervised serve run from the AppImage stays in place by @OrcaWin in #28270
A supervised AppImage serve follows a replaced AppImage by @OrcaWin in #28244
Status says live, exited or unverifiable, and shows the process ceiling by @OrcaWin in #28239
A stop requested from outside never counts as a crash by @OrcaWin in #28307
Connect to a WSL distro's orcad over wsl.exe stdio only (WSL-via-orcad C5) by @nwparker in #27834
Unpack the AppImage copy in the background so the first daemon runs from it by @OrcaWin in #28311
Liveness, failure classification and recovery for WSL orcad (WSL-via-orcad C6) by @nwparker in #27916
Accounts shim for agents on a WSL orcad host (WSL-via-orcad C9) by @nwparker in #27874
Account env for agent tabs on a WSL orcad host (WSL-via-orcad C9b) by @nwparker in #27940
WSL distro hosts, main-process wiring and persistence (WSL-via-orcad C7a, experimental) by @nwparker in #27933
Add WSL distro host UI and status (WSL-via-orcad C7b, experimental) by @nwparker in #27934
Windows path actions for WSL hosts through one owner-routed capability (WSL-via-orcad C8) by @nwparker in #27955
Keep a paired pane when the desktop has not opened it yet by @Jinwoo-H in #28181
Wait for the desktop's terminal list before opening a terminal by @Jinwoo-H in #28154
A disconnect keeps an old relay terminal's tab on that terminal instead of starting a new shell by @Jinwoo-H in #28344
A slow window no longer makes orca terminal create fail and then duplicate by @Jinwoo-H in #28158
A host whose ssh_config forwards a port can still open its server tunnel (STA-10471) by @OrcaWin in #28396
Start a startup terminal while Orca's window is hidden instead of waiting for it to be shown by @brennanb2025 in #28351
An SSH host comes back after restarting Orca instead of staying offline (STA-10476) by @OrcaWin in #28398
Send only the text a Linux IME commits, not the candidate key by @nwparker in #28275
Cancel on an SSH password prompt no longer brings it straight back by @OrcaWin in #28402
Accept string stdin in synchronous runs by @nwparker in #28225
Orcad's own git sees the login shell's SSH agent, proxy and signing env by @nwparker in #28456
Retain CRLF split across output chunks by @nwparker in #28224
Keep Codex status hooks in a managed account home on a WSL host, and list its sessions by @nwparker in #28469
Decide every piece of project state and add a losslessness check (D1b-1) by @nwparker in #28459
Accept local WSL projects on the migration wire, only in their own distro (D1b-2) by @nwparker in #28466
A system-SSH host whose sshd refuses forwarding reaches its managed server over exec by @OrcaWin in #28408
The stdio bridge clears an ssh -L an earlier Orca left on its port by @OrcaWin in #28509
Let an app update reach a WSL host orcad (E1) by @nwparker in #28458
Choose which projects a distro move takes and rewrite their paths (D1b-3) by @nwparker in #28473
Bind the host to its distro registration and preflight every moved path (D1b-4) by @nwparker in #28542
Keep the text of an IME key pressed before a commit finalizes by @nwparker in #28441
Stamp the build commit so orca skills install works on SSH and headless hosts by @brennanb2025 in #28558
A journal and fence for local WSL moves, on one shared journal store (D1b-5a) by @nwparker in #28536
Don't report kitty releases for key presses the app never received by @nwparker in #28621
Terminal gate, last-folder capture and exit proof for a WSL move (D1b-5b) by @nwparker in #28606
Save a windowless host's chat tabs in its layout by @Jinwoo-H in #28354
A new desktop can connect to a host already running a different Orca server version by @OrcaWin in #28642
A password host no longer asks again after every reconnect by @OrcaWin in #28644
Fence moving projects from new terminals and hide them once the host owns them (D1b-5c) by @nwparker in #28668
The CLI, phone and paired clients no longer list a converted host's retained rows by @nwparker in #28754
Restore a remote server's browser tabs after it restarts by @Jinwoo-H in #28166
Store the Terminal shell setting trimmed so agent tabs start like plain tabs by @brennanb2025 in #28635
Judge an agent's --shell against the runtime it runs in by @brennanb2025 in #28234
Name the fix that applies when --shell is refused by @brennanb2025 in #28235
Refuse edits to a project a WSL move is taking (D1b-5c-2) by @nwparker in #28761
Report agent start failures the same way from every launch path by @brennanb2025 in #28724
Pause a moving project's terminals through Sleep and prove they exited (D1b-5d) by @nwparker in #28820
Background writers step aside for a project a WSL move is taking (D1b-5c-3) by @nwparker in #28835
Keep every pane in main's layout through a terminal service restart by @Jinwoo-H in #28852
Reject a requested tab id that is already taken by @Jinwoo-H in #28841
A capability-gated blob channel beside scrollback (D1b-6a) by @nwparker in #28866
A moved pane reopens in its last folder on the WSL host (D1b-6b) by @nwparker in #28885
Bring each pane back after a terminal service restart when it is shown by @Jinwoo-H in #28880
The SSH password dialog no longer closes itself and comes back by @OrcaWin in #28883
Let users close the profile storage delay warning by @brennanb2025 in #28900
Shell history moves with the project to the WSL host (D1b-6c-1) by @nwparker in #28902
Reuse real launcher builds and avoid unused runtime RPC imports by @nwparker in #28905
Drop a stored terminal row the tab bar already shows when loading the layout by @Jinwoo-H in #28889
Overlap independent real PTY idle checks by @nwparker in #28932
Publish each pane's live terminal title on the layout stream by @Jinwoo-H in #28928
A relay-era desktop can join the server another desktop on the same login runs by @OrcaWin in #28886
Run each terminal in its own systemd scope so one out-of-memory kill no longer closes every terminal by @Jinwoo-H in #28871
Start a managed server that stopped, on every connect path by @OrcaWin in #28996
Stop stale saved state from blocking an SSH host's move to a managed server by @OrcaWin in #29003
Detect stalled terminal daemon I/O and offer restart review by @nwparker in #29087
Fix macOS terminal daemon restart leaving service registered by @nwparker in #29130
A paused move to the managed server says so; servers show their real version; a gone server's project can be removed (#27267) by @OrcaWin in #29208
Give each machine sharing one home its own managed server by @OrcaWin in #29214
Reattach a healthy remote pane promptly after a worktree switch by @OrcaWin in #29210
Skip the ps process-table read on Windows by @OrcaWin in #29199
Show the Reconnecting banner only when recovery outlasts a second by @nwparker in #29243
Send typing held during a reattach at the host's subscribed reply by @nwparker in #29244
A tall remote terminal pane gets a PTY of the same height by @nwparker in #29235
Forward headless browser commands through startup by @nwparker in #29250
A parked remote TUI keeps its screen on reveal instead of flashing its shell line by @nwparker in #29251
Stop a remote-typed terminal hidden on the host from reconnecting on every send by @nwparker in #29252
Keep live output flowing during resync and retry an unanswered one by @nwparker in #29236
Hand the graph back to the headless host when its desktop window closes by @nwparker in #29273
After a reboot, a connect that finds the host busy waits instead of failing on the terminal count by @nwparker in #29267
Retry a stalled SSH reconnect when the machine wakes or the network returns by @nwparker in #29237
Orca serve owns its Claude and Codex accounts again by @OrcaWin in #29209
Ship the paired web client outside app.asar so a /tmp sweep cannot break it by @nwparker in #29277
Hand macOS opens from the browser sidecar to the desktop app by @nwparker in #29258
A worktree created from a remote branch tracks it by @nwparker in #29275
Never leave an SSH host unconnectable after a refused move (phone users, #29083, Move anyway) by @OrcaWin in #29220
A windowless host no longer lists no tabs for a workspace with live terminals by @nwparker in #29283
Adopt the v47 terminal daemon the 1.4.227 release runs by @brennanb2025 in #29191
A paired client reopening a slept agent tab resumes its conversation by @nwparker in #29272
Focus and hover reports no longer take a mirrored terminal's size by @nwparker in #29239
Draw the host's saved screen when a reattached pane's first image is blank by @nwparker in #29261
Start Linux headless serve on X11 so an inherited Wayland session can't abort it by @nwparker in #29260
Switching back to a quiet remote terminal no longer refetches its snapshot by @nwparker in #29253
Skip redundant process-host compilation during dev rebuilds by @OrcaWin in #29317
No probe stall on the first remote action after a pause by @nwparker in #29240
Hide sleeping keeps a live remote workspace row through a transient PTY gap by @nwparker in #29325
Preserve wake records after hibernation exit by @nwparker in https://github.com/stablyai/orca/pull/29288
Overlap a reveal's stream open with its create, and claim the viewport once by @nwparker in https://github.com/stablyai/orca/pull/29269
Give Macs sharing a home their own server, and make the shared-home claim exclusive by @nwparker in https://github.com/stablyai/orca/pull/29284
Remote hosts honor the client's Nest Workspaces setting by @nwparker in https://github.com/stablyai/orca/pull/29404
Never launch the orca-ide bash shim as the headless browser by @nwparker in https://github.com/stablyai/orca/pull/29363
Keep a CLI socket open while its request is still running by @nwparker in https://github.com/stablyai/orca/pull/29262
Revealing a remote pane no longer triggers a second clear-and-repaint by @nwparker in https://github.com/stablyai/orca/pull/29285
Prevent automatic replacement of host-mirrored agents by @nwparker in https://github.com/stablyai/orca/pull/29289
A cold-parked terminal reveal paints once, at the pane's own size by @nwparker in https://github.com/stablyai/orca/pull/29331
Report an unreachable host's worktree graph as unavailable, not empty by @nwparker in https://github.com/stablyai/orca/pull/29416
Drop this desktop's rows for a paired host's project when it is removed by @nwparker in https://github.com/stablyai/orca/pull/29436
A reveal after hidden output was dropped always restores it by @nwparker in https://github.com/stablyai/orca/pull/29342
Route a CLI close of a paired host's terminal to that host by @nwparker in https://github.com/stablyai/orca/pull/29455
A headless host keeps a parked terminal at its viewer's size by @nwparker in https://github.com/stablyai/orca/pull/29349
Flag a macOS host whose managed server outlived its launching SSH session by @nwparker in https://github.com/stablyai/orca/pull/29371
Ship @linear/sdk with the managed server so Linear works on SSH hosts by @nwparker in https://github.com/stablyai/orca/pull/29388
A paired-client open leaves originless legacy resume records unresumed by @nwparker in https://github.com/stablyai/orca/pull/29389
Reap orphaned processes when orca serve is PID 1 by @nwparker in https://github.com/stablyai/orca/pull/29390
Replace a retired macOS terminal service job that blocks new terminals by @nwparker in https://github.com/stablyai/orca/pull/29395
Try the waiting ~/.ssh key before showing a password dialog by @nwparker in https://github.com/stablyai/orca/pull/29397
A reconnect replay no longer re-fires task-complete notifications by @nwparker in https://github.com/stablyai/orca/pull/29410
Seal integration credentials on the headless server instead of storing them in plaintext by @nwparker in https://github.com/stablyai/orca/pull/29412
Opt-in per-terminal memory and swap limits on terminal hosts by @nwparker in https://github.com/stablyai/orca/pull/29413
A Windows terminal read no longer shows PowerShell's history suggestion as typed input by @nwparker in https://github.com/stablyai/orca/pull/29415
Restoring more than 32 remote terminals queues them instead of failing by @nwparker in https://github.com/stablyai/orca/pull/29417
A terminal the old daemon still runs is never handed to the new daemon after an update by @nwparker in https://github.com/stablyai/orca/pull/29418
Keep remote typing in the fast paint lane by measuring each pane's echo delay by @nwparker in https://github.com/stablyai/orca/pull/29419
Log and survive recoverable process errors, stop cleanly on fatal ones by @nwparker in https://github.com/stablyai/orca/pull/29423
Resolve the install root through a symlinked launch script by @nwparker in https://github.com/stablyai/orca/pull/29424
Classify remote_runtime_busy as recoverable by @nwparker in https://github.com/stablyai/orca/pull/29425
Keep port forwarding controls for an SSH host that moved to its managed server by @nwparker in https://github.com/stablyai/orca/pull/29427
Hermes settles and first-work rename runs on a headless host by @nwparker in https://github.com/stablyai/orca/pull/29429
A phone wake no longer resumes an agent whose terminal is still running by @nwparker in https://github.com/stablyai/orca/pull/29431
Fail when an explicit --port is taken instead of serving on another port by @nwparker in https://github.com/stablyai/orca/pull/29432
A paired tab closed right after a restart stays closed on the first sync by @nwparker in https://github.com/stablyai/orca/pull/29433
Let an unfinished SSH access link be retried or cancelled by @nwparker in https://github.com/stablyai/orca/pull/29441
A remote pane comes back on its own once its host answers again by @nwparker in https://github.com/stablyai/orca/pull/29444
Pick up ~/.ssh/config changes at launch and whe - Oct 17, 2026
- Date parsed from source:Oct 17, 2026
- First seen by Releasebot:Oct 18, 2026
v1.4.228
orca lists version 1.4.228, but provides no details about what changed.
v1.4.228
Original source - Oct 17, 2026
- Date parsed from source:Oct 17, 2026
- First seen by Releasebot:Oct 18, 2026
Orca Mobile Android mobile-android-v0.0.57
orca improves mobile app downloads over slow connections and avoids redownloading the app when opening an unchanged workspace.
Thank you for using Orca mobile! ❤️
What's new
Downloading the latest app from your computer keeps going over slow connections, such as Tailscale or a weak signal, instead of failing partway.
Opening a workspace no longer downloads the app again when nothing has changed on your computer.
Most phone features come from your desktop, so update Orca on your computer to get everything. See the desktop release notes for the full list.
Original source - Oct 16, 2026
- Date parsed from source:Oct 16, 2026
- First seen by Releasebot:Oct 17, 2026
v1.4.227
orca releases smoother native chats with per-chat permissions, easier session recovery, and broader provider support. The update also improves browser automation, mobile chat loading, notifications, worktree safety, and session-history performance.
Thank you so much for using Orca and for your continued support! ❤️
The short version
Native chats have their own permission mode. Choose permissions for each new Claude or Codex chat from Settings → Chat → Behavior; existing chats keep the mode they were already using, and changing models no longer resets it.
Native chat sessions are easier to continue. You can resume large terminal conversations in a new native chat, recover chats whose only work ran in the background after a restart, and see every supported chat provider accurately in Session History.
Claude accounts and Codex chat setup are smoother. Claude accounts again use separate folders, the sign-in link can be copied, Codex chats require version 0.136.0 or later, and Codex Ultrafast is available as a speed choice.
Browser automation gives your keyboard back reliably. Agent browser commands target the intended page, and browser popups behave more like Chrome.
Also: worktree cleanup is safer, read macOS notifications disappear from Notification Center, long chats load better on phones, and cold session-history reads avoid unnecessary reindexing.
Product experience
UI / workspace
Safer worktree cleanup, tidier macOS notifications and small translation cleanup.
- fix(worktrees): never delete a folder git no longer tracks by @brennanb2025 in #25075
- fix(notifications): remove read macOS notifications from Notification Center by pane thread by @Jinwoo-H in #28425
- fix(i18n): drop chat-mode keys removed from en.json in #28113 by @nwparker in #28131
Orchestration
Retries no longer leave failed worker starts piling up as live agents.
- fix(orchestration): stop retried failed worker starts from piling up live agents by @brennanb2025 in #27795
Agents / native chat
Each Claude and Codex chat keeps its own permission mode, chats are easier to resume and manage, Claude accounts return with safer sign-in, and chat settings and model handling are more consistent.
- feat(native-chat): each Claude/Codex chat gets its own permission mode by @brennanb2025 in #26116
- fix(native-chat): chats from before permission modes keep the mode they were running with by @brennanb2025 in #28099
- fix(native-chat): seed the chat permission default from Claude's and Codex's own arguments by @brennanb2025 in #28100
- feat(settings): move Permissions for new chats into the Chat page's Behavior section by @brennanb2025 in #28212
- fix(native-chat): store a chat's permission mode on its own, so a model pick can't reset it by @brennanb2025 in #28268
- feat(native-chat): require Codex 0.136.0 for chats by @brennanb2025 in #26684
- feat(native-chat): offer Codex Ultrafast as a speed choice by @brennanb2025 in #26962
- Re-land Claude per-account folders (#24434, #26405) with the upgrade and proxy fixes by @Jinwoo-H in #26801
- Add "Copy sign-in link instead" for Claude accounts (STA-9912) by @Jinwoo-H in #26990
- fix(native-chat): offer resume after restart for chats whose only work was in the background by @brennanb2025 in #27167
- fix(native-chat): resume large terminal conversations in a new native chat by @brennanb2025 in #29056
- Terminal header button: Resume in New Native Chat replaces Show chat view by @brennanb2025 in #27184
- fix(tab-bar): offer Resume in New Native Chat only while the tab's agent is running by @brennanb2025 in #27520
- Session History shows OpenCode, Grok, OMP and Pi chats as chats and refuses a second terminal writer by @brennanb2025 in #27183
- Session History: resume folder workspace chats in their own folder by @brennanb2025 in #27209
- Resume dialog: show a finished resume as a result, not a picker by @brennanb2025 in #27732
- Save a new chat's first message during create by @brennanb2025 in #26332
- fix(native-chat): settle a reply cut off by a server restart by @brennanb2025 in #26460
- Open a chat visual in its own tab instead of the sidebar by @brennanb2025 in #26728
- Let a Codex chat stop a command it left running in the background by @brennanb2025 in #26780
- fix(native-chat): preserve running subagent rows in long chats by @brennanb2025 in #26798
- A new Pi chat names the model it will run on its first frame by @brennanb2025 in #26821
- Keep Chat UI users with a Terminal default on the terminal, with a chat mode switch in the upgrade tip by @brennanb2025 in #26915
- Floating-workspace chats of every native-chat agent keep links in the folder they started in by @brennanb2025 in #26981
- Every agent reports its learned default model once, when a chat starts by @brennanb2025 in #26982
- Let a Grok chat list and stop the commands it left running in the background by @brennanb2025 in #27022
- Let a Codex chat stop a sub-agent from the background-tasks strip by @brennanb2025 in #27026
- fix(native-chat): a new chat's model and effort pickers match their first frame before the agent starts by @brennanb2025 in #27031
- Native chat: every agent launches through one composed launch path by @brennanb2025 in #27204
- Edit agent launch settings on the workspace host by @brennanb2025 in #26479
- One shared subagent tracker for Claude, Codex and Grok chat rows by @brennanb2025 in #27228
- Native chat: read one saved row per subagent (part 1 of 2) by @brennanb2025 in #27914
- feat(chat): host writes one saved row per subagent by @brennanb2025 in #27947
- feat(settings): move Chat UI's chat settings from Experimental to the Chat page by @brennanb2025 in #28050
- fix(tab-bar): native chat tabs show their recorded provider, not one guessed from the title by @brennanb2025 in #28082
- Replace chat upgrade switch with primary Enable Now button by @nwparker in #28113
- Make Enable Now the full-width action in the chat upgrade tip by @brennanb2025 in #28199
Remote server / SSH
Paired devices are identified by their device ID instead of a credential.
- native chat: identify a paired device by its device id, never its credential by @brennanb2025 in #26777
Browser
Popups follow Chrome’s behavior more closely, while agent browser actions stay focused on the intended page and return the keyboard when they finish.
- Open links and window.open in Orca tabs the way Chrome does by @Jinwoo-H in #26976
- Fix browser login popups and menu actions in native windows by @AmethystLiang in #28474
- Auto-hide menu bar in web popups and re-layout when revealed by @AmethystLiang in #28388
- fix(browser): agent bringToFront and activateTarget no longer take your keyboard (1/3) by @nwparker in #28452
- fix(browser): agent keys and text go to the page, never into your terminal (2/3) by @nwparker in #28453
- fix(browser): agent clicks give your keyboard back (3/3) by @nwparker in #28454
- fix(browser): require a target for ambiguous keypress commands by @nwparker in #28221
- fix(browser): refuse web pages on the agent-browser CDP proxy by @OrcaWin in #27415
GitHub / source control
AI commit messages now start from the same shell environment that chats use.
- Start AI commit messages from the same shell environment chats use by @Jinwoo-H in #26808
Performance
Windows notifications no longer freeze Orca, and cold session-history reads skip unchanged transcript reindexing.
- perf(notifications): stop every Windows notification from freezing Orca by @brennanb2025 in #27731
- Skip reindexing unchanged transcripts on cold session list reads by @AmethystLiang in #28798
Mobile
Long chats preserve each update within its limit, remember the reader’s place, and open every supported native-chat provider on the phone.
- fix(native-chat): load long chats on the phone by keeping every update within its limit by @Jinwoo-H in #28203
- fix(mobile): keep the chat where the reader scrolled to by @AmoabaKelvin in #28413
- fix(mobile): open Grok, OpenCode, OMP and Pi chats on the phone by @brennanb2025 in #27212
Full Changelog: v1.4.224...v1.4.227
Original source - Oct 14, 2026
- Date parsed from source:Oct 14, 2026
- First seen by Releasebot:Oct 14, 2026
v1.4.225
orca releases a broad update centered on managed SSH servers and smoother remote work, with richer native chats, expanded phone and iPad support, new server management tools, and improvements to terminal recovery, performance, and reliability.
Thank you so much for using Orca and for your continued support! ❤️
Original source
The short version
SSH and managed servers: New SSH connections now use Orca's managed server. Terminals left running by v1.4.224 keep working in their existing tabs through the upgrade and reconnect; new terminals open on the managed server. Saved port forwards return, Windows managed-host terminals get the orca CLI, and managed Claude chats keep their provider running after the desktop disconnects. Hosts that cannot run the managed server show a clear reason; the old SSH fallback is no longer available.
Native chat (experimental): Code blocks and shell commands are highlighted, attached files show as filename pills, and you can edit a queued message even while the agent is asking a question. Codex offers Ultrafast and can stop background commands and subagents; Grok can list and stop its background commands too. A new chat saves its first message immediately, closed chats stay closed, and interrupted replies put Continue in the explanation card. Mermaid diagrams work better in dark mode, and chat visuals can open in their own tab.
Agents and accounts: Kiro reports agent status and appears in Session History. Claude accounts use separate folders and offer Copy sign-in link instead. Orchestration workers can start as native chats for supported agents, agent launch settings are edited on the workspace's own host, and account switching and MCP settings stay with the selected host.
Remote work: The Ports panel scans and stops ports on the workspace's own computer, Resource Manager lists that host's processes, and Agent Dashboard can show terminal previews from the owning host. Files, project creation, pull request and merge request actions, account results and settings follow the computer that owns them. Re-pairing the same server keeps its environment, and one unreadable saved record no longer makes the whole server unusable.
Serving and updates: orca serve --supervise gains a supervisor that runs from a copy outside the app, and orca serve service install, status and uninstall manage a service. Updates preserve Codex sign-in before a headless restart, macOS terminal permissions survive app updates, and automatic terminal restores are paced and limited to avoid runaway restarts. Linux keeps AppImage copies that are still in use and shows a persistent restart banner if a terminal background service's files are gone.
Phone and iPad: Grok, OpenCode, OMP and Pi chats open on the phone. iPad keeps chat drafts and the host sidebar reachable, workspace badges show SSH host health, tool results stay with the right command, and terminal views accept a fresh snapshot after a stream ends.
Workspaces and automations: You can copy stable tab references and manage workspace references from the CLI, and launch an agent in an existing workspace from the CLI. Folder workspaces appear as automation targets, multi-day schedules display correctly, removed folder workspaces no longer leave blank sidebar rows, and the worktree is ready notification stays until you dismiss it. Feature branches no longer borrow unrelated pull requests.
Windows, WSL and Linux: Windows notifications no longer freeze Orca, CodeBuddy hooks work without PowerShell 7, and quitting Claude or Codex in cmd.exe or Git Bash removes it from the running list. WSL paths open in Cursor's WSL mode, background work leaves stopped distributions asleep, Windows-drive searches use the host's ripgrep, and Wayland clipboard text stays current.
Reliability and performance: Orca is more reliable and responsive, with safer terminal restores, stronger connection recovery, less main-thread work, and faster background and CI workflows.
Also: Nim and Typst highlighting no longer lets a long line freeze the window, HTML previews load authorized web fonts, links open in Orca tabs like they do in Chrome, cancelled browser-tab drags leave tabs clickable, and terminal output, usage counting and project discovery do less work on the main thread.
Known issues
SSH hosts that cannot run the managed server: This version no longer falls back to the old SSH runtime. If the host is unsupported, Settings → SSH Hosts explains why. Use an older Orca version to keep connecting to a host the managed server cannot support (#27214).
The orca command in older SSH terminals: Terminals kept running from v1.4.224 still accept typing, output and resizing, but orca commands are unavailable inside those older terminals. Run them in a new terminal on the same host (#27787).
Tab order after a cold restart: If the terminal background process is killed before Orca reopens, the saved terminal-tab order can disagree with the tab bar. This remains a known layout issue (#27353).
OpenCode 2: If you update from v1.4.219 or earlier, OpenCode 2 panes that were already running may show no status until you restart OpenCode in them. If you downgrade Orca after updating, duplicate OpenCode status plugins are left behind. After opencode run exits, its pane can keep showing "Done"; a fix is pending in #24472.
Product experience
Native chat (experimental)
Code blocks and commands are highlighted, attachments appear as filename pills, queued messages can be edited while a question is open, and interrupted replies offer Continue in the explanation card. Codex and Grok can stop their background work, chats keep their first message and stay closed after you close them, and diagrams work better in dark mode.
Save a new chat's first message during create by @brennanb2025 in #26332
A new Pi chat names the model it will run on its first frame by @brennanb2025 in #26821
feat(native-chat): highlight code blocks and shell commands by @AmoabaKelvin in #26343
Open a chat visual in its own tab instead of the sidebar by @brennanb2025 in #26728
Keep Chat UI users with a Terminal default on the terminal, with a chat mode switch in the upgrade tip by @brennanb2025 in #26915
Let a Codex chat stop a command it left running in the background by @brennanb2025 in #26780
fix(native-chat): every new-chat request opens its own chat by @brennanb2025 in #26782
native chat: identify a paired device by its device id, never its credential by @brennanb2025 in #26777
fix(native-chat): match model picker type to the options menu by @AmoabaKelvin in #26349
Every agent reports its learned default model once, when a chat starts by @brennanb2025 in #26982
Floating-workspace chats of every native-chat agent keep links in the folder they started in by @brennanb2025 in #26981
Keep select-all and copy in a chat from reaching the terminal underneath by @AmoabaKelvin in #26831
fix(native-chat): accept sends through their own receipt by @brennanb2025 in #26672
fix(native-chat): edit a queued message in place, even while a question is open by @brennanb2025 in #26886
fix(native-chat): settle a reply cut off by a server restart by @brennanb2025 in #26460
fix(native-chat): hide agent message controls while the turn runs by @AmoabaKelvin in #26404
fix(native-chat): drop the redundant 'Waiting for your answer' line from queued cards by @brennanb2025 in #27073
feat(native-chat): show attached files as filename pills in the composer by @AmoabaKelvin in #26409
feat(native-chat): offer Codex Ultrafast as a speed choice by @brennanb2025 in #26962
Let a Codex chat stop a sub-agent from the background-tasks strip by @brennanb2025 in #27026
fix(native-chat): lazy WSL tier for Claude, Grok and omp lookup by id by @OrcaWin in #27082
fix(native-chat): retire the pending image bubble when the CLI records its path as text by @OrcaWin in #27095
fix(native-chat): retire a first send's echo in transcript time, not this client's by @OrcaWin in #27099
Keep tool results with the right command and reveal all results on mobile by @nwparker in #26968
fix(native-chat): give each animation a reduced-motion state by @AmoabaKelvin in #26276
Let a Grok chat list and stop the commands it left running in the background by @brennanb2025 in #27022
fix(native-chat): preserve running subagent rows in long chats by @brennanb2025 in #26798
fix(native-chat): read ZCode conversations in their recorded order by @nwparker in #27142
fix(native-chat): a new chat's model and effort pickers match their first frame before the agent starts by @brennanb2025 in #27031
A closed chat tab stays closed instead of coming back on the right by @brennanb2025 in #27205
Theme Mermaid diagrams for dark mode by @AmethystLiang in #27398
fix(native-chat): put Continue in the card that says the reply stopped by @brennanb2025 in #27097
One shared subagent tracker for Claude, Codex and Grok chat rows by @brennanb2025 in #27228
Session History: resume folder workspace chats in their own folder by @brennanb2025 in #27209
fix(native-chat): offer resume after restart for chats whose only work was in the background by @brennanb2025 in #27167
fix(native-chat): keep diagram source mounted and retire reveal history by @brennanb2025 in #26690
native chat: queued-message actions and question answers accept through their own receipt by @brennanb2025 in #26988
fix(native-chat): one set of rules for chat text size, colour, hover and focus by @AmoabaKelvin in #26685
fix(native-chat): use quote icon for Add to chat by @brennanb2025 in #27631
fix(chat): jump to messages without scrolling animation by @AmethystLiang in #27612
Native chat: every agent launches through one composed launch path by @brennanb2025 in #27204
fix(tab-bar): offer Resume in New Native Chat only while the tab's agent is running by @brennanb2025 in #27520
fix(chat): show hook failure details in error cards by @nwparker in #27824
Resume dialog: show a finished resume as a result, not a picker by @brennanb2025 in #27732
Agents, accounts & orchestration
Kiro reports its status and appears in Session History, Claude accounts use separate folders and offer a sign-in link you can copy, and orchestration workers can start as native chats. Agent settings, account results and MCP settings stay with the computer that runs the work.
feat(kiro): report Kiro agent status and list Kiro sessions in history by @w-felipe360 in #26695
Re-land Claude per-account folders (#24434, #26405) with the upgrade and proxy fixes by @Jinwoo-H in #26801
Start orchestration workers as native chats for every agent that has native chat by @brennanb2025 in #26776
Add "Copy sign-in link instead" for Claude accounts (STA-9912) by @Jinwoo-H in #26990
Keep MCP repository settings on their selected host by @nwparker in #26859
fix(agents): one host-routed agent-detection entry point by @OrcaWin in #27054
fix(agent-hooks): route the first-work branch rename by the repo's execution host by @OrcaWin in #27080
fix(ai-vault): bounded OpenClaw discovery; title filter when a host's search is off by @OrcaWin in #27089
fix(ai-vault): resume a WSL session only in its own namespace, with a Linux Pi path by @OrcaWin in #27092
fix(pi): name workflow child rows by their step key, not only the agent by @mmarabel in #26909
fix(agents): show DeepSeek icon for observed Build sessions by @nwparker in #26863
fix(zcode): keep Coding Plan credentials and quota tied to the selected account by @nwparker in #24674
feat(accounts): open ZCode sign-in in the existing setup terminal by @nwparker in #27321
Honor inactive Claude account retry deadlines by @nwparker in #26936
fix(accounts): remove a rejected GLM key when restore fails by @parkavenue9639 in #24964
fix(orcad): install agent status hooks when a managed host starts by @OrcaWin in #27319
fix(claude): register a short PostCompact hook command by @vampik33 in #25211
fix(agent-status): keep nested models off parent panes by @nwparker in #26846
fix(zsh): keep deferred line-init defined for plugins that call it by name by @nwparker in #26842
Fix Codex usage bypassing configured proxy routing by @nwparker in #26942
Fix cold proxy authentication in the desktop HTTP client by @nwparker in #26957
fix(renderer): account switchers and CLI cards follow the focused repo's host by @nwparker in #27687
Edit agent launch settings on the workspace host by @brennanb2025 in #26479
SSH, managed servers & remote
New SSH connections use the managed Orca server, while terminals left running by v1.4.224 keep working in their existing tabs. Saved port forwards return, remote files open on their own computer, and projects, reviews, settings, ports and processes follow the host that owns them.
fix(hosts): host registry stops minting client SSH hosts from a server's nested target by @OrcaWin in #26952
fix(folders): folder workspaces can answer "paired server" by @OrcaWin in #26958
Allow paired-server files to drop into their own terminals by @nwparker in #26931
fix(session-tabs): a tab stream the host ends resubscribes on the retry backoff by @OrcaWin in #27098
fix(ssh): a direct-SSH host republish no longer steals this view's tab selection by @OrcaWin in #27100
fix(session-tabs): a restored terminal row is retired only by its own host PTY by @OrcaWin in #27101
fix(terminal): honor the OpenSSH DefaultShell on Windows SSH hosts running orcad by @OrcaWin in #27085
fix(session-tabs): a returning paired publisher is repaired by an authoritative census by @OrcaWin in #27094
fix(hosts): the unresolved-owner sentinel is never routable by @OrcaWin in #27111
fix(runtime): worktree create enforces the lineage host boundary by @OrcaWin in #27114
fix(repos): every repo catalog uses the host-catalog fence by @OrcaWin in #27116
fix(web): usage and account switching come from the paired server by @OrcaWin in #27135
fix(web): Jira reaches the server by @OrcaWin in #27136
fix(hosts): a server whose status answers is selectable while shared control connects by @OrcaWin in #27137
fix(cli): orca file open and diff open name their owner by @OrcaWin in #27154
fix(agents): an old Windows or unknown-platform host asks to update instead of answering its default list by @OrcaWin in #27164
fix(pairing): advertise a key and fallback port the host can actually serve by @OrcaWin in #27158
fix(shell): OS open actions follow the file's owner, not the focused server by @OrcaWin in #27165
fix(pairing): pairing with this same Orca profile is refused by @OrcaWin in #27166
feat(hosts): servers publish a host descriptor by @OrcaWin in #27193
feat(ports): host-scoped port scan and stop on the server by @OrcaWin in #27188
feat(pairing): re-pairing the same server keeps its environment by @OrcaWin in #27197
fix(cli): check the runtime source before sending by @OrcaWin in #27206
feat(runtime): the host refuses a request meant for another runtime by @OrcaWin in #27224
fix(agents): one agent inventory per host and execution context by @OrcaWin in #27225
fix(files): a paired-server link outside its workspace opens in the host workspace that holds it by @OrcaWin in #27226
fix(files): client drops on a remote composer upload through the import transaction by @OrcaWin in #27227
fix(files): links to this computer in a remote terminal open on the client with trusted provenance by @OrcaWin in #27234
fix(terminals): terminal IDs, agent rows and dashboard rows follow the owner by @OrcaWin in #27243
fix(terminals): automation runs, CLI tabs and folder-workspace browser tabs follow the owner by @OrcaWin in #27246
fix(review): review providers resolve the repo on its host by @OrcaWin in #27247
fix(review): PR reads and actions follow the ownership table by @OrcaWin in #27248
feat(terminals): dashboard terminal previews from the owning host by @OrcaWin in #27250
fix(ports): the ports panel scans and stops on the workspace's own host by @OrcaWin in #27258
fix(skills): say an SSH repo was not scanned instead of dropping it silently by @OrcaWin in #27261
fix(hosts): agent launch platform and shell come from the execution host by @OrcaWin in #27259
fix(accounts): a server's late account result stays with that server by @OrcaWin in #27262
feat(hosts): Resource Manager lists the owning host's processes by @OrcaWin in #27263
feat(settings): host-owned settings panes choose their host explicitly by @OrcaWin in #27265
fix(web): the paired server is the web client's only host by @OrcaWin in #27266
fix(sources): GitHub Projects boards read from the task page's source host by @OrcaWin in #27270
fix(orcad): provide the orca CLI in Windows managed-host terminals by @OrcaWin in #27324
feat(ssh): a paired client can manage the server's own SSH hosts (ssh.target-management.v1) by @OrcaWin in #27329
fix(projects): create on a server's SSH project; Add Project SSH lists the server's targets by @OrcaWin in #27331
fix(ssh): restore saved port forwards on managed hosts and show their Ports tab by @OrcaWin in #27361
fix(files): a managed terminal links and opens a host file outside its workspace by @OrcaWin in #27364
fix(vm): a recipe VM's SSH root runs on a managed Orca server by @OrcaWin in #27366
fix(ssh): a restore racing a disconnect never leaves a forward behind by @OrcaWin in #27368
refactor(ssh): connect fails for hosts orcad can't serve; remove the relay client path by @OrcaWin in #27214
fix(e2ee): stop dropping terminal output on a backed-up legacy connection by @Jinwoo-H in #26528
fix(remote): move tabs into a split-off group on the server too by @Jinwoo-H in #26522
fix(runtime): refresh open clients after project setup changes by @nwparker in #26941
fix(ssh): a fast remote folder listing no longer shows a false error by @nwparker in #26940
fix(ssh): remove the relay-only remote workspace sync so reconnect never sticks on pulling by @OrcaWin in #27409
fix(browser): refuse web pages on the agent-browser CDP proxy by @OrcaWin in #27415
fix(pty): only force-kill processes in the terminal's own Linux session by @OrcaWin in #27422
fix(runtime): reuse cached worktree rows when the admin probe cannot answer by @OrcaWin in #27445
feat(runtime): device-key authentication and per-installation key migration (host) by @OrcaWin in #27493
fix: let managed SSH Claude chats load the agent SDK by @brennanb2025 in #26450
feat(runtime): session-only browser keys and opt-in for pairing from plain-http pages (host) by @OrcaWin in #27540
feat(web): the browser signs in with a non-extractable device key, or pairs for this session only by @OrcaWin in #27552
fix(codex): copy in remote Orca Server Codex sessions reaches your clipboard by @OrcaWin in #27605
Keep SSH chat providers alive after the desktop disconnects by @brennanb2025 in #26473
fix(runtime): keep remote servers usable when one saved record can't be read by @nwparker in #27685
fix(ssh): keep 1.4.224's running terminals working after the upgrade (legacy relay bridge) by @OrcaWin in #27787
fix(ssh): an old relay terminal's tab shows output again after a reconnect by @OrcaWin in #27951
fix(ssh): never start a hidden orcad shell for a tab the legacy relay bridge serves by @OrcaWin in #27939
Serving, updates & terminal recovery
orca serve gains supervised operation and service management, automatic terminal restores are paced and limited, and updates preserve more of the server and terminal state. macOS terminal permissions survive app updates, and Linux shows a persistent recovery banner when a terminal background service loses its AppImage files.
fix(orcad): show help before server startup by @nwparker in #26855
fix(packaging): unpack the orcad serve-selection entry so orca serve can run it by @OrcaWin in #27404
fix(linux): stop the AppImage crashpad handler before the mount goes away by @sergeytiron in #23459
feat(daemon): observe-only fork gate for automatic terminal restores by @OrcaWin in #27424
fix(linux): launch the AppImage terminal daemon through its own mount by @OrcaWin in #27435
feat(daemon): pace automatic terminal restores on headless hosts by @OrcaWin in #27428
feat(daemon): pause automatic restores after a same-boot crash by @OrcaWin in #27433
fix(serve): report secrets unavailable instead of hanging on an unreachable macOS keychain by @OrcaWin in #27441
feat(daemon): process-growth breaker that pauses automatic restores by @OrcaWin in #27437
fix(daemon): drop a legacy daemon that can no longer accept a connection by @OrcaWin in #27436
fix(daemon): count a claimed agent resume as automatic even without a history seed by @OrcaWin in #27442
fix(serve): keep the isolated profile off the login keychain by @OrcaWin in #27463
fix(updater): stop promising a manual update enables remote updates by @OrcaWin in #27464
fix(updater): install macOS orca serve updates instead of waiting on Squirrel forever by @OrcaWin in #27466
feat(terminal): declare restore intent and keep deferred panes sleeping by @OrcaWin in #27455
fix(serve): decide a duplicate or doomed Electron serve before exec by @OrcaWin in #27472
feat(serve): let the owner resume paused automatic restores by @OrcaWin in #27459
feat(daemon): cap terminals per execution host by @OrcaWin in #27488
feat(daemon): one automatic-restore budget per execution host by @OrcaWin in #27492
fix(daemon): keep tweetnacl out of the relocated Windows daemon-host graph; guard daemon externals at build by @OrcaWin in #27504
feat(daemon): the host keeps its own record of old-client restores it refuses by @OrcaWin in #27496
fix(macos): preserve terminal permissions across app updates with a small signed helper by @Jinwoo-H in #27021
feat(macos): show terminal-host Full Disk Access, tag stable-copy daemons, and give Helpers folder strings by @Jinwoo-H in #27354
fix(terminal): don't duplicate terminals a newer Orca still runs after a downgrade by @Jinwoo-H in #27577
feat(serve): supervised mode for orca serve --supervise by @OrcaWin in #27716
feat(updater): auto-park registered serve supervisors during a desktop install by @OrcaWin in #27722
feat(serve): orca serve service install|status|uninstall by @OrcaWin in #27744
fix(serve): initialize the updater in headless Electron serve by @OrcaWin in #27771
feat(daemon): opt-in OS ceiling on terminal processes, reported per host by @OrcaWin in #27769
fix(serve): save Codex auth before a headless serve update restart by @OrcaWin in #28001
fix(serve): explain what to run when an SSH host's orca cannot start or install a server by @OrcaWin in #28003
fix(linux): keep extracted AppImage copies that something still runs from by @OrcaWin in #28002
fix(updater): clear a cancelled macOS install request before staging the next update by @OrcaWin in #28010
feat(serve): run the --supervise supervisor from a copy outside the app by @OrcaWin in #28007
fix(serve): give the first AppImage serve one unpacking deadline and progress by @OrcaWin in #28015
fix(daemon): stop giving new terminals to a daemon whose AppImage files are gone by @OrcaWin in #28011
feat(terminal): persistent banner to restart a terminal daemon whose files are gone by @OrcaWin in #28021
Phone & paired clients
Grok, OpenCode, OMP and Pi chats open on the phone, iPad keeps drafts and the sidebar reachable, SSH workspace badges show host health, and phone terminals accept fresh snapshots after their stream ends.
fix(mobile): size onboarding slides to the modal sheet on iPad by @Jinwoo-H in #26919
fix(mobile): one host sidebar on iPad, with the page owning the host area by @Jinwoo-H in #26761
fix(mobile): keep chat drafts and the sidebar reachable on iPad by @brennanb2025 in #26096
fix(mobile-pairing): preselect LAN for a signed-out desktop by @OrcaWin in #27145
fix(mobile): a new pairing scan supersedes a stale relay pairing journal by @OrcaWin in #27157
fix(mobile): agents for workspaces another runtime owns show why by @OrcaWin in #27196
feat(push): accept a notification's workspace server by @Jinwoo-H in #26516
feat(mobile): show SSH host health on the workspace row badge by @Jinwoo-H in #26415
feat(runtime): let a paired desktop register its phones as phone devices by @Jinwoo-H in #26427
feat(mobile): relay a paired phone's server-workspace requests through the desktop (hidden) by @Jinwoo-H in #26435
feat(mobile): let the desktop list its servers and their workspaces for the phone by @Jinwoo-H in #26442
fix(terminal): phone wake reaches hibernated agent panes in place by @OrcaWin in #27450
fix(mobile): direct connections use v2 framing and never fall back once v2 is seen by @OrcaWin in #27473
fix(mobile): open Grok, OpenCode, OMP and Pi chats on the phone by @brennanb2025 in #27212
fix(mobile): accept a fresh terminal snapshot after a stream ends by @Jinwoo-H in #27539
feat(mobile): let the OTA page send extra top-level request fields by @Jinwoo-H in #27815
Workspaces, sidebar & tabs
Tabs have stable references you can copy, the CLI can manage workspace references and launch agents in an existing workspace, closed tabs stay closed, and the worktree-ready notification stays until you dismiss it.
fix(runtime): keep a floating terminal floating when its cwd is inside a workspace by @OrcaWin in #27088
fix(runtime): automatic tab activation no longer wakes a worktree the host put to sleep by @OrcaWin in #27081
fix(agents): a session dropped on a pane edge splits the pane in paired-runtime workspaces by @OrcaWin in #27102
fix(cli): implicit worktree selection is scoped to the caller's host by @OrcaWin in #27108
fix(runtime): a terminal close commits in the session partition that holds the tab by @OrcaWin in #27119
fix(terminal): closing a tab is never a silent no-op by @OrcaWin in #27132
fix(persistence): a session write cannot bring back a tab its partition recorded as closed by @OrcaWin in #27125
feat(tabs): copy stable tab references by @fabricedge in #26881
Add CLI commands to manage and find workspace references by @nwparker in #26807
fix(repos): deleting a project with live terminals warns and needs --force by @OrcaWin in #27172
fix(composer): preserve explicit workspace names after selecting tasks by @nwparker in #26937
fix(settings): return current preferences after slow updates by @nwparker in #27199
Save runtime-started tabs in the tab bar before their terminal starts by @Jinwoo-H in #27083
fix(runtime): refuse headless tab moves into a group the server doesn't have by @Jinwoo-H in #27381
fix: save editor-only host sessions during quit by @nwparker in #26848
fix(sidebar): stop a removed folder workspace from leaving a blank row by @bbingz in #26376
Keep the 'worktree is ready' toast until dismissed by @brennanb2025 in #27566
feat(cli): launch agents in existing workspaces by @brennanb2025 in #27794
fix(cli): honor Chat UI setting for worktree agent creation by @brennanb2025 in #27796
Automations, tasks & source control
Folder workspaces appear as automation targets, multi-day schedules display correctly, selected task names survive composer updates, unrelated pull requests stay off feature branches, and Git history lanes survive unrelated roots.
Start AI commit messages from the same shell environment chats use by @Jinwoo-H in #26808
Stop offering Blank Terminal in agent-only pickers (automations) by @Jinwoo-H in #26961
Start server-run automations' agents through the launch executor by @brennanb2025 in #26820
Display valid multi-day automation schedules by @nwparker in #26850
Fix roadmap crash with plugin language packs by @nwparker in #26860
fix(linear): exclude label groups from assignable labels by @nwparker in #26861
Preserve Git history lanes through unrelated roots by @nwparker in #26932
fix(github): stop feature branches from borrowing unrelated PRs by @nwparker in #27332
fix(composer): ignore delayed PR/MR lookups after you change the form by @nwparker in #26954
fix(automations): find folder-workspace targets on the Automations page by @OrcaWin in #27416
Editor, files & clipboard
Nim and Typst highlighting no longer lets a long line freeze the window, HTML previews load authorized web fonts, editor-only sessions save on quit, and image pastes on macOS and clipboard text on Wayland are more reliable.
fix(clipboard): paste a macOS image copied beside its file URL by @benjaminb10 in #27346
fix(doc-preview): load authorized web fonts in HTML previews by @nwparker in #26849
Editor: Nim and Typst on the shared TextMate layer, so a long line can't freeze the window by @brennanb2025 in #26987
fix(linux): keep Wayland clipboard text current by @nwparker in #27772
Browser, skills & feedback
Links open in Orca tabs like they do in Chrome, cancelled drags leave browser tabs clickable, double-click selects a word in the address bar, and skill updates are checked against their ownership.
Open links and window.open in Orca tabs the way Chrome does by @Jinwoo-H in #26976
Keep browser tabs clickable after a drag that never starts by @Jinwoo-H in #26986
refs/heads/update-wechat-qr-code-2 by @AmethystLiang in #27036
fix(browser): return JPEG bytes for JPEG viewport screenshots by @nwparker in #26856
fix(settings): reenable terminal link Actions after an old opt-out by @nwparker in #26853
Require pointer rest before opening activity hover cards by @AmethystLiang in #25931
fix(browser): double-click in the address bar selects a word, like other browsers by @Jinwoo-H in #27371
fix(skills): judge official skill updates by ownership, not snapshot matching by @OrcaWin in #27603
fix(browser): end a page's mount admission whenever it leaves the store by @brennanb2025 in #27755
fix(browser): end a background page's mount admission after its first load by @brennanb2025 in #27754
Windows, WSL & languages
WSL files open in Cursor’s WSL mode, background work leaves stopped distributions asleep, Windows-drive searches use the host’s ripgrep, and CodeBuddy hooks work without PowerShell 7. Korean menu and check labels are corrected.
fix(i18n): correct Korean Finder menu label by @nwparker in #26866
fix(i18n): correct Korean CI check translations by @abruption in #27367
fix(wsl): open WSL paths in Cursor's WSL mode; ignore Windows-side CLIs in WSL hook setup by @nwparker in #27681
fix(wsl): restore Windows interop after another distro wipes it by @nwparker in #27682
perf(wsl): search Windows-drive projects with host ripgrep by @nwparker in #27690
fix(wsl): stop booting stopped distros for background work by @nwparker in #27684
fix(terminal-pane): quitting Claude or Codex in cmd.exe or Git Bash removes it from the running list by @brennanb2025 in #27742
fix(codebuddy): run Windows hooks without requiring PowerShell 7 by @OrcaWin in #27626
Performance & reliability
Terminal output and usage counting do less work on the main thread, project discovery and Git checks stay responsive, Windows notifications stop freezing the app, and port scans stop leaving stuck lsof processes behind.
Show the usage unit once in the status bar by @AmethystLiang in #26869
perf(daemon): send PTY output to main as raw bytes, not NDJSON by @outof-place in #27006
perf(usage): keep per-source usage caches off the main thread by @outof-place in #26980
Reduce memory used to count Codex usage and avoid partial totals by @nwparker in #26966
Update Claude usage without rereading the whole conversation by @nwparker in #26967
fix(agent-hooks): throttle and background last-status.json writes by @nwparker in #26822
fix(a11y): name Agent Dashboard column regions by @nwparker in #26865
Keep repository detection off the main registration thread by @nwparker in #26760
Await Git checks while discovering and importing nested projects by @nwparker in #26790
Keep folder Git upgrades responsive and recheck project ownership by @nwparker in #26791
perf(mac): resolve terminal names once per full process capture by @nwparker in #27146
perf(ai-vault): pipeline fresh transcript discovery with bounded I/O by @outof-place in #27009
fix(computer-use): clean up completed permission helpers asynchronously by @nwparker in #27347
perf(runtime): reduce terminal ANSI scanning work by @nwparker in #27344
perf(main): release startup allocations held by journal sentinel by @nwparker in #27342
fix(computer-use): release macOS screenshot memory after each request by @f8team in #27374
perf(worktrees): preserve Git scans when saving sort order by @nwparker in #27343
perf(worktrees): skip unchanged lineage after sidebar order saves by @nwparker in #27384
Avoid downloading unchanged paired-runtime session history by @nwparker in #27383
fix(renderer): jump instead of smooth-scrolling under reduced motion by @AmoabaKelvin in #26796
perf(daemon): yield between bounded slices of terminal output ingest by @Jinwoo-H in #27578
perf(zod): use Zod 4.6 validation and compile ACP updates by @nwparker in #27735
perf(ports): stop leaving stuck lsof processes behind on a dead network mount by @brennanb2025 in #27729
perf(notifications): stop every Windows notification from freezing Orca by @brennanb2025 in #27731
Relay service
Relay service work improves reconnect handling, database-fault recovery, authentication during outages, capacity placement, staging checks and operational alerts. Several reserve-mode changes remain disabled or preparatory, as noted in their PR titles.
fix(relay): spread drain placement over a load band instead of one empty cell by @Jinwoo-H in #26802
fix(relay): a database fault reaching unhandledRejection no longer kills the process by @Jinwoo-H in #26817
feat(relay): read-only seat feed on cells for the directors' shadow directory by @Jinwoo-H in #26803
feat(relay): Cloud Storage bucket for the per-cell runtime switch files (targeted apply only) by @Jinwoo-H in #26835
feat(relay): one-cell flag write workflow with dry run, compare-and-swap and read-back by @Jinwoo-H in #26837
fix(relay): a lost database reply ends its connection within statement timeout + 10 s by @Jinwoo-H in #26829
feat(relay): per-cell runtime switches read from Cloud Storage every 5 s by @Jinwoo-H in #26805
feat(relay): log metrics and alerts for fenced and fatal rejections and the lease shadow (evidence code) by @Jinwoo-H in #26839
feat(relay): local /ready behind the per-cell readinessLocal switch (off) by @Jinwoo-H in #26812
feat(relay): dark shadow seat directory poller on directors (step 3) by @Jinwoo-H in #26810
feat(relay): key id on assignment leases; cells shadow-check the lease (off) by @Jinwoo-H in #26815
feat(relay): dark shadow seat compare on sticky verify and /v1/resolve (step 3) by @Jinwoo-H in #26813
feat(relay): read-only /v1/admin/host-whereabouts on directors (step 3) by @Jinwoo-H in #26816
refactor(relay): share one retry schedule and identity key by @OrcaWin in #27139
fix(relay): wait through a scheduled reconnect and name why Relay is not ready by @OrcaWin in #27141
fix(relay): a switch-file read cut off mid-body is asked for again by @Jinwoo-H in #27049
feat(relay): per-cell switches for the rejection fence and the lost-reply margin by @Jinwoo-H in #27057
feat(relay): step-5 reserve core: the cell's booking book and the director's placer (inert) by @Jinwoo-H in #27038
feat(relay): cell reserve mode: book, admit and demote without the database (off) by @Jinwoo-H in #27041
feat(relay): flip a reserve-mode cell back without disconnecting anyone (E-mix) by @Jinwoo-H in #27043
fix(relay): read control-error in every state and pace repeated rate limits by @OrcaWin in #27160
fix(relay): install the desktop Relay provider on demand by @OrcaWin in #27159
feat(relay): directors place on reserve-mode cells from memory (off) by @Jinwoo-H in #27047
fix(relay): cells without a seat feed stay out of shadow coverage and switch state by @Jinwoo-H in #27058
feat(relay): the director that booked a join writes its row about a second later (off) by @Jinwoo-H in #27048
fix(relay): database sweeps and ops reads skip reserve-mode cells (step-5 census, inert) by @Jinwoo-H in #27046
feat(relay): log metric and console alert for unreadable cell switch files (evidence code) by @Jinwoo-H in #27024
feat(relay): alert when a reserve-mode cell trips its dead-man by @Jinwoo-H in #27096
fix(relay): the cell switch tool changes only the named switches by @Jinwoo-H in #27056
fix(relay): staging director deploys run as relay-dir with rehome identity, and can register one cell's cap by @Jinwoo-H in #27118
fix(relay): staging director deploys set the admin identity the director trusts to gha-relay by @Jinwoo-H in #27121
infra(relay): staging c1 gets a 600/60 cap, and c1/c4 get rehome trust, for the step-5 e2e by @Jinwoo-H in #27117
feat(relay): a staging cell-flags workflow, trusted by the staging relay deploy identity by @Jinwoo-H in #27113
feat(relay): a free-form staging load mode on Prove Relay Asia Staging by @Jinwoo-H in #27115
fix(relay): staging sleep runs under the admission selector instead of refusing by @Jinwoo-H in #27126
infra(relay): pin staging c1, c2 and c4 to the step-5 image for the staging e2e by @Jinwoo-H in #27339
infra(relay): keep staging c4 on the serving director image until the director identity bootstrap by @Jinwoo-H in #27351
infra(relay): pin staging c4 to the step-5 image again after the director identity bootstrap by @Jinwoo-H in #27352
infra(relay): point the staging deploy at the pre-step-5 image for the reserve guard drill by @Jinwoo-H in #27357
infra(relay): pin staging c4 to the step-5 image again after the reserve guard drill by @Jinwoo-H in #27360
refactor(relay): delete the SSH relay server, its build assets and tests by @OrcaWin in #27215
fix(relay-load): reuse an Asia load principal set for shards past the fourth by @Jinwoo-H in #27403
fix(relay): report event-loop freezes and keep seat polls off the cell-list read by @Jinwoo-H in #27405
fix(relay): director reaches Cloud SQL through a proxy sidecar (staging), adoptable deploy shape, event-loop stall alert by @Jinwoo-H in #27406
chore(relay-staging): declare staging C4 on image E so the director can deploy it by @Jinwoo-H in #27462
infra(relay): add staging cells c5-c7 at c2's shape for the dead-cell guard e2e by @Jinwoo-H in #27476
fix(relay): cell-flags tool refuses reserve without readinessLocal=true by @Jinwoo-H in #27460
docs(relay): director Cloud SQL sidecar enablement and rollback by @Jinwoo-H in #27461
fix(relay): let the staging admission workflow register and promote c5-c7 by @Jinwoo-H in #27491
fix(relay): let a host leave a dead reserve cell without an operator fence by @Jinwoo-H in #27458
fix(relay): a resumed host control adopts the token its hello proved by @Jinwoo-H in #27487
fix(relay): keep verifying host tokens from the last served keys while auth is down by @Jinwoo-H in #27490
chore(relay): move the staging cells onto image F by @Jinwoo-H in #27570
chore(relay): turn on the director Cloud SQL proxy sidecar and stall alert in production by @Jinwoo-H in #27697
feat(relay): declare Asia spare cell c35 as migration-only by @Jinwoo-H in #27695
feat(relay): promotion path for Asia spare cell c35 by @Jinwoo-H in #27733
chore(relay): move Asia cell c35 to the general same-cap lists after promotion by @Jinwoo-H in #27761
Reverted
The new-tab launch routing change and verified mobile pairing links were reverted. The older-SSH-terminal refusal and stop action were superseded by the compatibility bridge that keeps those terminals running.
Start plain new-tab agent launches through the host's agent.launch by @brennanb2025 in #26489
feat(mobile): verified https pairing links; custom scheme carries no secret by @OrcaWin in #27475
Revert "+" new-tab agent launches to the window route (reverts #26489) by @brennanb2025 in #27173
Revert "feat(mobile): verified https pairing links; custom scheme carries no secret" (#27475) by @OrcaWin in #27693
fix(ssh): end an older Orca's relay terminals from the connect refusal (STA-10166) by @OrcaWin in #27748
Tests, CI & maintenance
Checks spend less time on repeated setup and waits, layout tests cover managed SSH and mixed-version clients, and internal routing and layout preparation are consolidated. Inert or unused layout work listed here does not enable a new workspace layout in this release.
refactor(runtime-core): clean up Phase 3-3.8 code by @OrcaWin in #26894
refactor(execution-host): one connection-to-host helper by @OrcaWin in #26929
refactor(pty): one remote-runtime PTY id predicate by @OrcaWin in #26930
refactor(runtime-rpc-terminal-io): clean up Phase 3-3.8 code by @OrcaWin in #26895
test(e2e): headless layout oracle covers tab moves between groups by @Jinwoo-H in #26857
Add the inert workspace layout model, Loader and Serializer by @Jinwoo-H in #26748
refactor(renderer-terminal-runtime): clean up Phase 3-3.8 code by @OrcaWin in #26900
Add inert layout commands and runtime transitions by @Jinwoo-H in #26749
refactor(ipc-persistence-shared): clean up Phase 3-3.8 code by @OrcaWin in #26902
refactor(renderer-ui-store): clean up Phase 3-3.8 code by @OrcaWin in #26903
[CI] Consolidate Activity tests and remove real-time quiescence wait by @nwparker in #26949
refactor(providers): local git provider behind the host router by @OrcaWin in #26955
refactor(runtime): runtime git commands use a provider for every host by @OrcaWin in #26965
Add an inert read-only layout stream and the layout round-trip self-check by @Jinwoo-H in #26964
chore(providers): neutral router rationale and typed provider generation by @OrcaWin in #26925
refactor(runtime): runtime file commands use a provider for every host by @OrcaWin in #26994
refactor(pty): key the PTY registry by execution host by @OrcaWin in #26995
[CI] Advance debounce clocks and simplify test fixtures by @nwparker in #26996
fix(layout): an absent editor or browser map is not a round-trip change by @OrcaWin in #27007
refactor(pty): PTY controller inventory and startup waits take a host id by @OrcaWin in #26998
test(search): keep Kiro out of older hosts' expected history-search agents by @brennanb2025 in #27002
Add the inert layout client for local and remote runtimes by @Jinwoo-H in #27000
refactor(ssh): register each SSH host's providers as one set by @OrcaWin in #27044
refactor(ipc): route filesystem git handlers through the host router by @OrcaWin in #27059
[CI] Reduce fixture work and consolidate related tests by @nwparker in #27063
refactor(main): route git probe and terminal-artifact provider checks through the host router by @OrcaWin in #27066
Extract subprocess handling into @orca/process-host by @nwparker in #26963
refactor(ai-vault, native-chat): one per-call agent root table by @OrcaWin in #27079
refactor(session-tabs): one authority-repair lane shared by every session-tabs mirror by @OrcaWin in #27093
ci: skip build:packages on release tags that predate it by @Jinwoo-H in #27110
ci(release): read the watcher child from the supervisor's slot in the fault harness by @Jinwoo-H in #27120
[CI] Consolidate tests, retire static scans, and update evidence by @nwparker in #27109
Speed up process-host import enforcement in CI by @nwparker in #27124
refactor(shell): the local-open guard takes an owner, not settings by @OrcaWin in #27144
test(tabs): mock the Copy icon the tab context menu now imports by @OrcaWin in #27162
test(wire): give the preflight downgrade journey a non-Windows old host by @OrcaWin in #27177
chore: remove verified unused Orca code by @nwparker in #27175
[CI] Overlap independent process waits and remove two static tests by @nwparker in #27198
refactor(wsl): move the WSL guest bundle sources out of src/relay by @OrcaWin in #27174
refactor(hosts): host authorities and owner resolution by @OrcaWin in #27176
refactor(hosts): one ingest adapter for fetched rows by @OrcaWin in #27216
refactor(hosts): stamp events and optimistic rows at ingest by @OrcaWin in #27223
refactor(runtime): route adapter, split fences, ownership table, combined ratchet by @OrcaWin in #27218
[CI] Reduce repeated test imports and unrelated runner allocations by @nwparker in #27222
[CI] Reduce test teardown waits and duplicate CI setup by @nwparker in #27253
refactor(runtime): owner transports, the creation default and a focus-read ratchet by @OrcaWin in #27275
refactor(forge): forge reads and edits route by the repo's owner or the task source by @OrcaWin in #27276
refactor(files): file reads and edits route by the file's owner by @OrcaWin in #27278
refactor(terminals): terminal input and inspection route by the PTY's owner by @OrcaWin in #27279
refactor(agents): agent, session and port calls route by their workspace owner by @OrcaWin in #27283
refactor(github): PR and work-item calls carry the repo owner's host by @OrcaWin in #27289
refactor(sources): row-less sources and host-less surfaces name their host by @OrcaWin in #27290
refactor(projects): repo, project group and folder catalog calls route by their owner by @OrcaWin in #27288
[CI] Reduce repeated test setup and real CLI waits by @nwparker in #27297
refactor(git): git calls route by the worktree's owner by @OrcaWin in #27291
[CI] Reduce repeated test setup and unnecessary packaging by @nwparker in #27308
refactor(worktrees): worktree create, listing, removal and repo hook/ref reads route by their owner by @OrcaWin in #27298
chore(lint): bypassing owner routing fails lint by @OrcaWin in #27313
chore(settings): rename "Active Server" to "Default host for new projects" by @OrcaWin in #27286
[CI] Refresh unit timing weights and reduce repeated test setup by @nwparker in #27315
fix(cli): preserve alias recovery while guarding destructive suggestions by @nwparker in #26934
docs(rpc): a paired client runs commands as you; say so when pairing by @OrcaWin in #27317
ci(e2e): run the layout oracle on PRs that change layout writers by @Jinwoo-H in #27103
test(relay): deterministic step-5 simulation with invariants 1-8 by @Jinwoo-H in #27040
test(e2e): pass the catalog owner to the remaining fetchRepos callers by @OrcaWin in #27325
test(relay): load generator can send two concurrent assigns per host (--duplicate-assign-probes) by @Jinwoo-H in #27107
test(e2e): pass the catalog owner to the remaining catalog fetches and creates by @OrcaWin in #27338
test(e2e): cover SSH user journeys on an orcad-managed host by @OrcaWin in #27323
List the cold-relaunch tab-order swap as known on main by @Jinwoo-H in #27353
test(native-chat): unmount the cut-turn notice hooks after each test by @OrcaWin in #27358
Record a display-only snapshot of each paired server's tabs (inert) by @Jinwoo-H in #27359
fix: keep NUL-separated source literals searchable by @nwparker in #26864
[CI] Fix test fixtures and reduce unnecessary test setup by @nwparker in #27330
test(main): fail if the journal's shared no-row error returns (follow-up to #27342) by @nwparker in #27375
test(runtime): enforce ANSI preview-final pre-filter invariant by @nwparker in #27376
fix(dev): keep Node-only Quick Open path accumulator out of the renderer by @Jinwoo-H in #27372
test(e2e): reusable phone-mirror test setup and baseline specs by @Jinwoo-H in #26412
[CI] Reduce test teardown and scope server qualification by @nwparker in #27380
perf(ci): overlap Bun typechecking and skip redundant alias scans by @nwparker in #27382
ci(relay-staging): asia-east2 staging load from a hosted runner by @Jinwoo-H in #27393
test(ci): point server-scope qualification fixtures at SSH after relay deletion by @Jinwoo-H in #27392
ci(relay-staging): split the staging load across two hosted runners by @Jinwoo-H in #27402
test(relay): load generator can reopen a closed phone splice instead of failing the run by @Jinwoo-H in #27379
refactor(runtime): compose typed file search and listing ownership by @nwparker in #27396
ci: ship the managed SSH server (orcad template) in hourly and daily builds by @OrcaWin in #27407
test(e2e): delete helpers orphaned by relay deletion by @OrcaWin in #27411
ci: drop the relay Windows process-tree job from desktop packaging by @OrcaWin in #27412
refactor(runtime): remove unused text-search spawn hook by @nwparker in #27418
test(ssh): hostile-host cells state managed-orcad expectations only by @OrcaWin in #27419
Add manual cleanup for worktree Electron storage by @nwparker in #27414
chore(ratchet): one focus-read ratchet by @OrcaWin in #27426
fix(runtime): scope layout.unsubscribe to the caller's connection by @Jinwoo-H in #27423
test(ssh): Windows host lane drops relay cells by @OrcaWin in #27421
refactor(renderer): delete dead owner and settings shims by @OrcaWin in #27430
chore: delete verified-unused modules and exports by @OrcaWin in #27438
refactor(rpc): delete the SSH-bridge caller scope by @OrcaWin in #27440
refactor(rpc): name the terminal.subscribe modules by @OrcaWin in #27444
refactor(cli): extract the serve supervisor's after-exit decision into a pure policy by @OrcaWin in #27446
refactor(orcad): shared serve-option validation; no daemon barrel by @OrcaWin in #27443
[CI] Remove copied probes and advance queued-card test waits by @nwparker in #27447
test(e2e): one posixShellQuote; docker-ssh-host fixture names (Phase 3.99 0.11b) by @OrcaWin in #27449
feat(runtime): accept a declared spawn intent from paired clients by @OrcaWin in #27452
test(e2e): one managed-host setup path and skip gate for the ssh-orcad specs (Phase 3.99 0.11a) by @OrcaWin in #27465
refactor(ssh): drop the legacy-relay bridge and the relay branch of the terminal gate by @OrcaWin in #27471
refactor(providers): an ssh: route carries no provider and throws one typed error by @OrcaWin in #27477
[CI] Clean up runtime test callbacks by @nwparker in #27483
refactor(runtime): paired sockets authenticate to a device principal by @OrcaWin in #27480
refactor(rpc): one dispatcher by @OrcaWin in #27486
refactor(terminal): panes have two transports, local or remote runtime by @OrcaWin in #27489
refactor(runtime): runtime git and file callers drop SSH arms by @OrcaWin in #27501
[CI] Remove duplicate terminal backlog test replays by @nwparker in #27503
refactor(pty): delete the SSH PTY provider and its registry slot by @OrcaWin in #27499
[CI] Remove a simulated terminal credit correctness check by @nwparker in #27507
refactor(main): agent detection, automations, skills, AI vault and ephemeral VM drop SSH provider arms by @OrcaWin in #27511
[CI] Wait for delayed Codex answers before test cleanup by @nwparker in #27516
refactor(pty): delete relay-fed SSH output intake and projection threading by @OrcaWin in #27515
[CI] Speed up Mobile test execution by @nwparker in #27521
refactor(terminal): move the mounted-terminal regist - Oct 13, 2026
- Date parsed from source:Oct 13, 2026
- First seen by Releasebot:Oct 13, 2026
Orca Mobile Android mobile-android-v0.0.55
orca releases an over-the-air mobile update that syncs phone features with the desktop app, bringing faster updates, smoother chat, inline agent visuals, queued messages, better file previews, stronger pairing security, and improved performance and reliability on phone.
Thank you for using Orca mobile! ❤️
Over-the-air updates
The Orca app on your phone now gets most of its screens and features from the desktop it's paired with, instead of having them built into the app. When you update Orca on your computer, the phone picks up the new version the next time it connects.
New features sooner. Phone improvements ship with each desktop release. You don't have to wait for an App Store or Play Store update.
Phone and desktop always match. The phone runs the version your desktop serves, so features and fixes line up and nothing breaks because one side is newer.
Fewer app updates. You only need to update the app itself occasionally.
You'll see a short "Downloading the latest app" screen the first time you connect to a computer, and again after you update Orca there. After that, the app opens right away.
What's new
When the app downloads the latest version from your computer, a progress bar shows how far along it is, and downloads finish faster.
Grok, OpenCode, OMP and Pi chats now open on the phone, and chat visuals and subagents show inline like on desktop.
Messages you send while an agent is working wait above the composer and go out in order. A message that couldn't be delivered is marked "Not sent" and goes back to your draft.
Answer an agent's questions with number keys.
SSH hosts show their connection health on the workspace list, and the list follows the desktop's pinned-workspace setting.
Videos and music files play in file previews.
Pairing links are more secure, and scanning a new code replaces an old pairing.
Lower memory use, smoother chat scrolling on Android, and more reliable terminals.
Most phone features come from your desktop, so update Orca on your computer to get everything. See the desktop release notes for the full list.
Original source - Oct 10, 2026
- Date parsed from source:Oct 10, 2026
- First seen by Releasebot:Oct 13, 2026
v1.4.224
orca adds smarter automations, richer native chat, and major SSH and managed server improvements, plus mobile, workspace, editor and performance upgrades. The release also brings better reliability, new language translations, and cleaner workflows across desktop and phone.
Thank you so much for using Orca and for your continued support! ❤️
The short version
Automations can now set the agent's model and effort for each run. In the automation editor, open Advanced and fill in Extra agent arguments (or use --extra-agent-args with orca automations create and edit), for example -model haiku --effort high. This works today for Claude, Codex, Grok and CodeBuddy (model and effort), Cursor (model, which carries its effort) and OMP (model), and support for more agents is coming soon. Each run starts a fresh session, and your other automations keep the host's defaults. Separately, scheduled runs in an existing workspace on an Orca server now hand the task to agents that read it after they start, such as Aider, Goose and Amp, instead of leaving them idle.
SSH hosts now run a managed Orca server. Orca ships its own runtime and sets it up when you connect, so connections no longer fail because a host has the wrong Node version or no build tools. A host with no open terminals switches on its next connect and brings its projects, folders and open editor tabs along. A host with open terminals keeps working as before and offers Move to a managed Orca server, which restarts those terminals. A host that can't run it keeps its current connection, and Settings → SSH Hosts says why. You can see, update, roll back, Recover or Forget each server in Settings → Managed servers.
Native chat (experimental): If you turned on Chat UI with chat as your default view, supported agents now open in the structured chat by default. If Terminal was your default, new agent tabs stay in the terminal, and a one-time tip explains the change and lets you turn chat mode on. You can move a conversation between chat and a terminal from the tab's right-click menu or from Agent Session History (Resume in New CLI / Resume in New Native Chat).
More in native chat: Recent versions of OpenCode (including 2.x), Pi and OMP open as structured chats on this computer. Agents can draw charts, diagrams and mockups right inside a reply, on desktop and phone (switch it off under Settings → Chat → Inline visuals). Cmd/Ctrl+F searches a chat, you can quote part of a reply with Add to chat, Up/Down recalls every prompt you sent, number keys answer an agent's questions, and long messages and runs of tool calls fold into one row. The model picker no longer waits for the agent to start, Codex and Pi say they're signed out before you send, and a reply Orca had to cut off says why and offers Continue. Grok shows its subagents, and Grok, OpenCode and OMP can /compact.
SSH and remote terminals: Keys you type during a network outage arrive exactly once and in order, scrollback and pane size survive a reconnect, and open tabs reattach after a managed server update. Shell startup files that print text, folders with tens of thousands of entries and 64-bit ARM Linux servers no longer break or drop the connection. Files, browser tabs, links and drag-and-drop stay on the machine they belong to when two machines share a path. orca serve now loads its SSH hosts, and quitting a window on a serving machine no longer stops the server.
Phone: A browser tab opened on the phone loads while the desktop is minimized or in its screen saver, chat visuals and subagents show in the phone's native chat, and videos and music files play in previews.
Workspaces and editing: You can attach several pull requests, merge requests and tasks to one workspace. Hovering a tab shows its full title with icon and program, Force Delete can remember Always force delete, and Continue in New Session is now Hand Off to Another Agent. Markdown shows GitHub-style callouts such as > [!NOTE], PDFs zoom with pinch and Cmd/Ctrl+=/-, and files dragged in from Finder or File Explorer land in the exact pane, folder or editor you drop them on.
Also: The usage meters in the status bar now default to a shorter Compact view unless you chose one (Detailed is still available), Stage All stages every change even when the list is capped at 1,000, and Orca detects the GitHub CLI even when a gh launcher hangs.
Known issues
The orca command on SSH hosts: By default, orca commands run on an SSH host reach only that host's own terminals and orchestration messages. To let agents there create worktrees, open terminals or dispatch work through orca, turn on Allow this host's orca CLI to control Orca for that host (Settings → SSH Hosts → edit the host → Advanced Connection) (#26483).
Downgrading to v1.4.223: Terminals started in v1.4.224 can't be reached from v1.4.223 until you update again. Extra pull requests, merge requests and tasks you attached to a folder workspace are removed. If Chat UI was on, it may be off after you update again; turn it back on in Settings → Experimental. SSH hosts that moved to a managed server work over the old connection in v1.4.223; if you add or remove projects there, the host shows "Changed on an older Orca" after you update and offers Move the new projects. Orca still refuses to install versions older than v1.4.214 from its version picker. To go back to one of those, run orca profile state rollback --latest-json with Orca closed, then install the old version by hand (#23262).
Terminals after updating: This version starts a new terminal background service for new terminals. Terminals that were already open keep running on the previous one, so changes in this release apply only to terminals opened after the update.
Native chats from v1.4.217 or older: If you used native chat (experimental) on v1.4.217 or older and update straight to v1.4.224, your earlier native chats won't appear. Their files stay on disk (#26038).
Relaunching from shell history: When an agent's launch command is long or spans several lines, the shell history holds a short one-time line instead, so pressing up-arrow and Enter does not start the agent again (#23962).
Workspaces created from the phone: Creating a workspace from an issue, pull request or Linear item with an agent on the phone still moves the desktop to that workspace (#26025).
Windows on ARM: The ARM64 package ships an x64 orca.exe command-line tool. Windows 11 on ARM runs it under emulation. Windows 10 on ARM can't run it, so the orca command does not work there (#24094).
OpenCode 2: If you update from v1.4.219 or earlier, OpenCode 2 panes that were already running may show no status until you restart OpenCode in them. If you downgrade Orca after updating, duplicate OpenCode status plugins are left behind. After opencode run exits, its pane can keep showing "Done"; a fix is pending in #24472.
Claude folder trust: Folder pre-trust is on by default (Settings → Agents → "Trust the folder when Orca starts an agent"). On Alpine WSL, Orca can't copy the file permissions it needs, so Claude shows its own trust prompt instead (#23744).
Product experience
Automations
Each automation can set its own model and effort, and server-run automations in an existing workspace now deliver their task to agents that read it after they start.
- Let automations pass extra agent arguments on each run by @AmethystLiang in #26659
- Send scheduled automation prompts to agents that read them after they start by @brennanb2025 in #26703
Native chat (experimental)
Structured chat becomes the Chat UI default (Terminal-default users stay put), OpenCode, Pi and OMP join as structured chats, agents can show inline visuals, and chats gain find, quoting, prompt recall, tidier tool rows, clearer sign-in and stop messages, and a steadier message queue.
- Default experimental native chat to structured chat by @brennanb2025 in #22933
- Keep Chat UI users with a Terminal default on the terminal, with a chat mode switch in the upgrade tip by @brennanb2025 in #26915
- Show pre-upgrade Experimental Chat UI users a one-time native chat upgrade tip by @brennanb2025 in #26710
- Offer Resume in New CLI / Native Chat from the tab right-click menu by @brennanb2025 in #26705
- feat(session-history): Resume in New CLI forks a native chat's conversation into the terminal by @brennanb2025 in #26336
- OpenCode structured chat over the Agent Client Protocol by @brennanb2025 in #25845
- feat(opencode): open OpenCode 2.x in the structured chat too by @brennanb2025 in #26395
- Add Pi structured native chat through its RPC mode by @brennanb2025 in #25851
- feat(omp): open OMP in the structured chat over ACP by @brennanb2025 in #26401
- Show model and effort choices for every agent before its session starts by @brennanb2025 in #26407
- fix(native-chat): return focus to the composer after picking a model or effort by @AmoabaKelvin in #26574
- feat(native-chat): show agent-written visuals inline in structured chats by @brennanb2025 in #26103
- feat(native-chat): teach chat agents to show inline visuals in their own folder by @brennanb2025 in #26099
- Native chat: add an inline visuals switch and simplify the skill by @brennanb2025 in #26358
- Native chat: inline visuals for Grok, OpenCode and OMP chats by @brennanb2025 in #26530
- Let in-page links switch sections inside a chat visual by @brennanb2025 in #26729
- Native chat: Cmd/Ctrl+F finds in the chat by @brennanb2025 in #26517
- feat(native-chat): quote a selection from an agent reply into the composer by @AmoabaKelvin in #26018
- fix(native-chat): recall every sent prompt with Up/Down in the composer by @AmoabaKelvin in #26044
- feat(native-chat): fold long sent messages behind a toggle by @AmoabaKelvin in #25996
- fix(native-chat): read a queued message in full by @brennanb2025 in #26004
- fix(native-chat): fold thoughts and tool calls between replies into one row by @brennanb2025 in #26048
- feat(native-chat): compact tool runs with a bounded call list by @AmoabaKelvin in #26285
- feat(native-chat): preview each rail tick with its reply, and land jumps at the top by @AmoabaKelvin in #26056
- feat(native-chat): number keys and auto-advance for questions by @AmoabaKelvin in #26288
- feat(native-chat): make native chat replies flow in and the transcript glide when following by @AmoabaKelvin in #26238
- Fix Mermaid diagrams that stay on error after replies finish by @brennanb2025 in #26480
- Native chat: open files from tool rows through the terminal's file link menu by @brennanb2025 in #26511
- fix(native-chat): underline a file path only once its workspace confirms it exists by @brennanb2025 in #26675
- fix(native-chat): show right-click Copy and Paste only where they apply by @AmoabaKelvin in #26207
- feat(acp): compact Grok, OpenCode and OMP chats by @brennanb2025 in #26502
- feat(grok): show Grok's subagents as subagent rows by @brennanb2025 in #26508
- fix(omp): show exit 0 for a command that finished normally by @brennanb2025 in #26494
- fix(acp): keep OMP replies that follow its reasoning by @brennanb2025 in #26658
- fix(acp): start chats for agents that report no model by @brennanb2025 in #26587
- fix(acp): show agent details when a chat message fails by @brennanb2025 in #26666
- Native chat: say when Codex is signed out or the agent isn't installed, without disabling Send by @brennanb2025 in #25666
- Show "Pi isn't signed in" in native chat before the first send by @brennanb2025 in #26743
- Show sign-in guidance for all native chat agents by @brennanb2025 in #26544
- Show OMP sign-in guidance when OMP reports no model selected by @brennanb2025 in #26649
- feat(native-chat): say in the chat why Orca stopped a reply, and offer Continue by @brennanb2025 in #25675
- feat(native-chat): show each interrupted chat's workspace as its read-only sidebar card by @brennanb2025 in #25652
- feat(native-chat): show each chat's resume as it happens, and start more at once by @brennanb2025 in #26361
- Hold messages in the host until a chat's agent has finished starting by @brennanb2025 in #26416
- fix(native-chat): a local chat this computer can't run opens the agent in a terminal by @brennanb2025 in #25947
- feat(native-chat): attach files to a structured chat on a paired server by @brennanb2025 in #25146
- fix(native-chat): show an SSH session's chat history on the phone and desktop by @Jinwoo-H in #26334
- fix(native-chat): no saved outbox on the desktop; one send at a time, and the host owns what it accepted by @brennanb2025 in #25959
- fix(native-chat): a message kept after a quit or close waits in order and follows the chat's next turn by @brennanb2025 in #25960
- fix(native-chat): never refuse a queued card because 20 were waiting, and keep the queue from covering the chat by @brennanb2025 in #26553
- fix(native-chat): never refuse a user's write because the retry record is full by @brennanb2025 in #26543
- fix(native-chat): a /compact sent while the agent works waits in line instead of being refused by @brennanb2025 in #25704
- Label a message stopped before the agent began on it plainly as "Stopped" by @brennanb2025 in #26381
- feat(native-chat): show an agent message's sender by its current title, clickable on the queued card too by @brennanb2025 in #26357
- Keep native chat /clear in the same conversation by @brennanb2025 in #26579
- Stop native chat jumping when Codex starts a foreground command by @brennanb2025 in #26503
- fix(native-chat): show host outages in the notice card by @brennanb2025 in #26161
- Keep picked skills and pending uploads when native chat composers close by @brennanb2025 in #26538
- Release clipboard previews when the chat composer closes by @nwparker in #26234
- fix(native-chat): settle a dead agent's leftover work in one write that always fits by @brennanb2025 in #26664
- Resolve native chat workspaces from catalog snapshots by @AmethystLiang in #26428
Agents, integrations & orchestration
Session hand-off gets a clearer name, DeepSeek Harness reports when it is idle, OpenCode 2 resumes keep their launch mode, phone and CLI workspace creates match the desktop, and Windows agent hooks start faster.
- Detect installed GitHub CLI behind hung launchers by @OrcaWin in #25183
- feat(agent-sessions): rename "Continue in New Session" to "Hand Off to Another Agent" by @brennanb2025 in #26375
- fix(runtime): settle DSH tui-idle on its hook-store done by @Jinwoo-H in #26481
- Honor OpenCode 2 launch mode when resuming sessions by @nwparker in #26843
- Start worktree.create's agent through the launch executor by @brennanb2025 in #26709
- Start orchestration workers and remote workers through the launch executor by @brennanb2025 in #26724
- fix(worktrees): a phone or CLI create keeps a sparse preset only when its folders match by @brennanb2025 in #26104
- fix(worktrees): a phone or CLI create puts the agent in the first orca.yaml default tab, as the desktop does by @brennanb2025 in #26106
- fix: dispatch Muse Windows hooks directly on safe profile paths by @nwparker in #26755
- fix(hooks): speed up guarded Unicode Windows hook launches by @OrcaWin in #26382
- perf: skip unused Grok login-shell probe when installing agent hooks by @nwparker in #26241
SSH, managed servers & remote
SSH hosts move to a managed Orca server, remote terminals keep typed input, scrollback and size across outages, and files, links, browser tabs and drops stay on the machine they belong to.
- Phase 3: every SSH host runs a managed Orca server (orcad), replacing the relay, and orca serve runs on it by @OrcaWin in #24863
- Phase 3.5: fix the top SSH/remote issues at the root cause by @OrcaWin in #26483
- Phase 3.7: fix SSH/remote failures found by adversarial real-host testing by @OrcaWin in #26847
- fix(remote-terminal): keep the disconnected-input grace honest across retries by @OrcaWin in #26871
- Provide Orca CLI on managed Linux and macOS servers by @nwparker in #26539
- Keep managed servers unverifiable until they answer by @nwparker in #26637
- Avoid claiming an unverifiable managed server has stopped by @nwparker in #26663
- Reconnect managed servers through the current SSH connection by @nwparker in #26645
- Refresh SSH status after manual managed-server updates by @nwparker in #26665
- Explain the Active Server stop refusal in Settings by @nwparker in #26584
- Keep open Remote Settings in sync with saved servers by @nwparker in #26581
- Retry failed catalog reads when SSH hosts move to Remote by @nwparker in #26531
- Keep migrated folder workspaces under their Remote host by @nwparker in #26535
- Keep remote folder sidebar rows distinct across execution hosts by @nwparker in #26634
- Keep Git identity probes from blocking SSH host reconversion by @nwparker in #26578
- Report browser placement support from the installed provider by @nwparker in #26559
- Keep new browser tabs on SSH routing after managed conversion by @nwparker in #26570
- Preserve retained desktop browser pages during SSH conversion by @nwparker in #26572
- Distinguish remote browser failures from server connection failures by @nwparker in #26573
- Wait for editor ownership before listing remote Markdown by @nwparker in #26590
- Preserve editor file identity during SSH host conversion by @nwparker in #26593
- Restore editor file watching when remote host contact returns by @nwparker in #26606
- Restore remote explorer updates after server recovery by @nwparker in #26612
- Keep explorer file watches on the selected remote host by @nwparker in #26616
- Reset explorer files when switching remote hosts at the same path by @nwparker in #26627
- Move shared file watches when the selected remote host changes by @nwparker in #26632
- Keep managed workspace paths out of desktop editor launches by @nwparker in #26668
- Keep managed status warnings out of desktop gitignore writes by @nwparker in #26671
- Wait for managed editor saves before discarding Git changes by @nwparker in #26677
- Keep remote file deletion from saving and closing desktop drafts by @nwparker in #26679
- Keep managed file Copy from selecting a desktop file by @nwparker in #26682
- Keep remote terminal path links on their own host by @nwparker in #26696
- Keep remote file drops from opening desktop browser files by @nwparker in #26698
- Keep workspace file drops on the terminal's host by @nwparker in #26830
- Keep an unplaceable workspace owner out of desktop Open in launches by @OrcaWin in #26797
- fix: admit relay bulk frames once under backpressure by @nwparker in #26333
- fix(serve): restore the saved active tab group after a cold start by @Jinwoo-H in #26089
Phone
Browser tabs stream while the desktop sleeps, chat visuals and subagents show on the phone, media files play, and big images and Markdown use less time and memory.
- fix(browser): keep the desktop drawing while a phone streams a browser tab by @Jinwoo-H in #26284
- fix(window): stop a covered window drawing after a phone stream, and keep a streamed foreground tab live by @Jinwoo-H in #26657
- feat(mobile): show chat visuals inline in the phone's native chat by @brennanb2025 in #26071
- feat(mobile): show a native chat's subagents like desktop by @brennanb2025 in #26125
- Allow another phone send after delivery is unconfirmed by @brennanb2025 in #26392
- feat: play video and music files in mobile previews by @nwparker in #26148
- Release closed Markdown documents on mobile by @nwparker in #26159
- Use native Base64 encoding for mobile image bytes when available by @nwparker in #26165
- Use browser crypto to speed up mobile image fingerprints by @nwparker in #26170
- Avoid rebuilding committed mobile files while typing by @nwparker in #26196
- Stop repeated GitLab detail requests on mobile by @nwparker in #26197
- refactor(mobile): remove the hybrid-shell toggle; the build decides by @Jinwoo-H in #26825
Workspaces, sidebar & tabs
Tab hover cards show full titles, Force Delete can remember your choice, the usage bar defaults to Compact, and sidebar headers and workspace refreshes behave better.
- Show whole-tab hover cards with icons and smooth tab-to-tab slides by @nwparker in #26811
- fix(sidebar): keep project headers from overlapping the pinned host by @AmethystLiang in #26775
- fix: keep workspace search filter button on one line by @genni613 in #26580
- Add saved force-delete preference to workspace deletion menu by @nwparker in #26425
- Add Always force delete dropdown to the workspace deletion dialog by @nwparker in #26476
- Remove local branch deletion success notification by @nwparker in #26422
- Keep one local project after concurrent registration by @nwparker in #26789
- Default status-bar usage to Compact and explain the change once by @AmethystLiang in #26726
- Fix Compact usage notice focus and older-host compatibility by @AmethystLiang in #26747
- Keep usage overflow chip width stable as hidden count changes by @AmethystLiang in #26873
- fix(floating-workspace): keep file links from blanking the main window by @brennanb2025 in #26655
- Avoid refreshing GitHub accounts while editing project names by @nwparker in #26228
- Avoid repeated session copies when deleting project groups by @nwparker in #26230
- Avoid refreshing every repository after deleting one worktree by @nwparker in #26253
- perf: preserve unrelated authorization roots after desktop removal by @nwparker in #26294
- perf: group Space decision inputs by workspace by @nwparker in #26297
Editor, files & Markdown
GitHub-style callouts, PDF zoom, large Markdown with HTML in rich mode, live Markdown links, OS file drops that land where you drop them, and faster notebooks and Markdown.
- feat(markdown): render GitHub-style callouts by @AmoabaKelvin in #26255
- fix(editor): route zoom gestures and app zoom to the PDF viewer by @Jinwoo-H in #26652
- Allow large markdown documents with HTML in rich mode by @AmethystLiang in #26331
- Fix alternate browser clicks in rich Markdown by @nwparker in #26920
- Refresh rich Markdown links when document metadata changes by @nwparker in #26595
- Refresh open Markdown links when workspace files change by @nwparker in #26599
- fix(file-drop): explorer, project sidebar, tab strip and editor own OS file drops (STA-6940 PR5) by @brennanb2025 in #26133
- fix(file-drop): deliver terminal files to the pane under the cursor (STA-6940 PR4/6) by @brennanb2025 in #26008
- [STA-6940] Deliver chat, workspace composer, and feedback file drops at their elements (3/6) by @brennanb2025 in #25781
- Remove legacy OS file-drop routing (STA-6940 PR6/6) by @brennanb2025 in #26385
- perf: save completed notebook runs in one document update by @nwparker in #26254
- Avoid rescanning accumulated notebook stream output by @nwparker in #26123
- Skip repeated ANSI parsing scans for plain notebook output by @nwparker in #26124
- Scan Markdown inline-code spans once when highlighting links by @nwparker in #26126
- perf: skip redundant image scans in image-free Markdown previews by @nwparker in #26240
- perf: skip Markdown fence scans when no toggle opens by @nwparker in #26324
- Filter unrelated workspace events before Explorer defers them by @nwparker in #26265
- Avoid repeatedly extracting source text for the copy-context hint by @nwparker in #26115
Browser, skills & feedback
The browser comment box no longer covers what you annotate, and cookie imports, browser commands, feedback and skill downloads clean up after themselves.
- fix(browser): keep the annotation composer off the element it annotates by @AmoabaKelvin in #26596
- Release cookie snapshots when import preparation fails by @nwparker in #26218
- Release completed browser helper drain timers by @nwparker in #26210
- Release feedback requests after response handling completes by @nwparker in #26274
- Cancel abandoned skill package download responses by @nwparker in #26169
- fix(skills): keep archive abort errors observed before reading by @nwparker in #26246
- perf(skills): avoid repeated placement scans during batch deletion by @nwparker in #26223
Performance & reliability
Less CPU and memory for terminal redraws, checkpoints, Codex output and chat recovery, and profile saves that warn instead of failing on a slow disk.
- Avoid retaining an unused OpenCode database worker by @nwparker in #26113
- Close rejected optional OpenCode billing requests by @nwparker in #26236
- Remove repeated row copying from terminal redraw ingestion by @nwparker in #26118
- Reduce terminal checkpoint stalls with bounded native JSON encoding by @nwparker in #26177
- Avoid rescanning unfinished records while tailing agent logs by @nwparker in #26132
- perf: reuse chat tab ownership across unrelated app updates by @nwparker in #26150
- Avoid repeated history serialization during recovery by @nwparker in #26160
- perf: avoid copying Codex output between saved checkpoints by @nwparker in #26199
- Release completed provider write payloads by @nwparker in #26208
- Drain queued SQLite replies before faulting after a main-loop stall by @nwparker in #26444
- Warn on slow profile saves instead of failing them by @AmethystLiang in #26447
- Abort failed runtime downloads after cleanup by @nwparker in #26269
Languages
New screens are translated into Spanish, French, Japanese, Korean and Chinese.
- chore(i18n): translate 176 new keys to es/fr/ja/ko/zh by @AmethystLiang in #26365
Relay service
Server-side capacity, deploy and monitoring work for Orca's relay service.
- feat(relay): slower same-cap drain paces (15 and 20 min) for every cell class by @Jinwoo-H in #26350
- fix(relay-ops): let the pre-drain auth gate tolerate an isolated auth 5xx by @Jinwoo-H in #26353
- fix(relay): skip idle rehome for hosts that reconnected under 3 minutes ago by @Jinwoo-H in #26355
- fix(relay): refuse host hellos fast when the database pool is timing them out; renewals jump the queue by @Jinwoo-H in #26362
- feat(relay): alert on cell disconnect bursts and database pool herds by @Jinwoo-H in #26363
- fix(relay): throttle the connection-reservations autovacuum so a run stops evicting the shared database cache by @Jinwoo-H in #26370
- fix(relay): latch rehome off only on a sql failure breach that outlasts a DB stall by @Jinwoo-H in #26371
- fix(relay): let the same-cap roll's post-roll verify outlast one DB stall by @Jinwoo-H in #26372
Reverted
Per-account Claude folders, the Node 24 requirement for remote hosts and the Windows hang watchdog were taken back out before release.
- fix(claude): activate account profiles and remove credential replay (Step 4 of 4) by @brennanb2025 in #24434
- fix(claude): drop the repeated sign-in line in the account menu and name the right Settings page by @Jinwoo-H in #26405
- Revert Claude per-account folders (#24434, #26405) before release by @Jinwoo-H in #26638
- feat(runtime): require Node 24 for servers and remote hosts by @nwparker in #26171
- revert(runtime): temporarily restore the previous host Node minimum by @nwparker in #26823
- [CI] Enable the existing Windows hang watchdog and preserve restart evidence by @nwparker in #26763
- Roll back Windows hang watchdog activation by @nwparker in #26804
Tests, CI & maintenance
Groundwork that is not switched on yet (folder-workspace agent launch, chat receipts, terminal layout checks), cleanup of the managed-server code, and faster, steadier test runs.
- feat(agent-launch): create a folder workspace and start its agent in one host operation by @brennanb2025 in #26083
- feat(native-chat): add a chat-owned command receipt store by @brennanb2025 in #26653
- feat(runtime): isolate the server behind a compatibility launcher by @nwparker in #26374
- test(terminal): pin layout invariants the mirror refactor must keep by @Jinwoo-H in #26073
- terminal: window says where each new terminal goes (no behavior change) by @Jinwoo-H in #26078
- test(terminal): check the runtime's workspace layout against structural rules by @Jinwoo-H in #26673
- test(e2e): layout oracle scenarios with window, headless serve and SSH by @Jinwoo-H in #26674
- refactor(tabs): reuse the shared tab-order helper instead of three copies by @brennanb2025 in #26704
- refactor(ssh-relay-runtime): clean up Phase 3-3.8 code by @OrcaWin in #26889
- refactor(ssh-connect-managed): clean up Phase 3-3.8 code by @OrcaWin in #26890
- refactor(ssh-orcad-lifecycle): clean up Phase 3-3.8 code by @OrcaWin in #26891
- refactor(orcad-daemon-startup-cli): clean up Phase 3-3.8 code by @OrcaWin in #26892
- docs: remove stale internal reference documentation by @nwparker in #26328
- fix(lint): move the macOS input-source probe out of app.ts by @brennanb2025 in #26643
- fix(lint): move knownAgentIds out of the session host by @brennanb2025 in #26648
- test(native-chat): fix main typecheck after the batched journal commit by @brennanb2025 in #26781
- Fix journal receipt test typecheck by @AmethystLiang in #26788
- Run only the intended performance contract suites by @nwparker in #26121
- [CI] Speed up composer decision tests by reusing their narrow module by @nwparker in #26179
- [CI] Reduce repeated persistence imports in UI-state tests by @nwparker in #26185
- [CI] Make SSH permission probe fixture independent of real PID reuse by @nwparker in #26190
- [CI] test: make remote upload cases independent of clocks and initial writes by @nwparker in #26202
- [CI] test: avoid loading the full Store for renderer fixture builders by @nwparker in #26217
- [CI] test: advance retry clocks instead of waiting in real time by @nwparker in #26220
- [CI] test: keep real SSH command contracts on Node by @nwparker in #26226
- [CI] test: load Activity fixture builders without importing the page by @nwparker in #26229
- [CI] Reuse first SQLite fixture construction in five persistence suites by @nwparker in #26231
- [CI] Import Activity functions directly in eight test suites by @nwparker in #26237
- [CI] test(persistence): reuse first constructors in six more suites by @nwparker in #26250
- perf(renderer): load Radix primitives through public package entries by @nwparker in #26256
- [CI] test(runtime): advance injected teardown policy clocks by @nwparker in #26267
- [CI] test(startup): advance mocked display readiness polling by @nwparker in #26283
- [CI] ci: run full pull-request unit tests across ten shards by @nwparker in #26295
- [CI] Keep native watcher contracts in Node and reset runtime test caches by @nwparker in #26315
- [CI] Speed up terminal probe tests with controlled policy clocks by @nwparker in #26327
- ci(e2e): move apt off the Azure mirror on runner images that use a mirror list by @OrcaWin in #26335
- [CI] Keep the structured-session compatibility manifest within the file limit by @nwparker in #26342
- [CI] Reset the canonical PR stack cache in GraphQL test fixtures by @nwparker in #26346
- [CI] test: remove repeated idle polling from PTY cleanup by @nwparker in #26360
- test: isolate hook fixture connections from fake timers by @brennanb2025 in #26369
- [CI] test: remove idle polling from compaction contracts by @nwparker in #26373
- [CI] test: load GitHub operations from their public modules by @nwparker in #26384
- [CI] test: keep relay correction fixtures alive through the minimum connection age by @nwparker in #26389
- [CI] test: speed terminal comparisons and retry-policy checks by @nwparker in #26396
- [CI] ci: stop cache-test edits from starting five warm-up runners by @nwparker in #26399
- [CI] ci: restore five unit runners and prune source-only tests by @nwparker in #26437
- test(native-chat): make the in-place transcript replacement test deterministic by @OrcaWin in #26532
- [CI] test: remove duplicated cases and source-text checks by @nwparker in #26546
- test(e2e): retry Hangul-digit attempts the input method never delivered by @OrcaWin in #26566
- [CI] test: reduce session imports and mocked recovery waits by @nwparker in #26567
- [CI] ci: avoid package and browser jobs for a shared unit fixture by @nwparker in #26575
- [CI] Reduce repeated test work and fix Windows cleanup and IME confirmation by @nwparker in #26608
- [CI] Revert library patches introduced by test optimization by @nwparker in #26727
- [CI] Reduce repeated test work and skip unrelated server matrices by @nwparker in #26711
- [CI] Reduce repeated test work and use pinned Bun for localization extraction by @nwparker in #26806
- test(e2e): keep two host sections in the catalog-retry reconnect test by @OrcaWin in #26838
- [CI] Consolidate related tests and advance transcript waits with the existing virtual clock by @nwparker in #26874
- [CI] Run mobile Vitest tests in stock Node worker threads by @nwparker in #26899
New Contributors
@genni613 made their first contribution in #26580
Full Changelog: v1.4.223...v1.4.224
Original source - Oct 9, 2026
- Date parsed from source:Oct 9, 2026
- First seen by Releasebot:Oct 13, 2026
v1.4.223
orca releases Orca Server 2.0 improvements for more reliable remote work, led by experimental native chat updates, stronger SSH and phone session recovery, better agent and terminal handling, richer sidebar and workspace tools, improved file search, and broader integrations.
Thank you so much for using Orca and for your continued support! ❤️
Orca Server 2.0 is coming soon, with improvements to make remote work more reliable. The current Remote Server remains experimental and may have bugs.
The short version
Native chat (experimental): With "Use updated structured native chat" turned on (Settings → Chat UI), Grok now opens as a structured chat on this computer and on paired Orca servers; SSH and WSL keep the terminal chat. You can rewind a conversation to an earlier message, search the model list, pick workspace files by typing @, and set text size, code size, width and contrast, or match your terminal, on a new Settings → Chat page. Chats are named after their first message, alert you when they stop to ask for approval, keep an unsent draft through a reload or quit, and use the Command and Arguments saved in Settings → Agents. Claude chats now open for API-key users, and Windows chats no longer refuse to start.
SSH workspaces: Open files, live agent tabs and paused Claude or Codex resume offers survive an SSH reconnect and a restart, and tabs you closed long ago no longer come back as empty shells. Clicking an SSH worktree whose last tab you closed opens a terminal again.
Remote servers and the phone: A paired terminal accepts typing again after its host app relaunches, remote browser tabs come back after a network drop, and the phone keeps every terminal after orca serve restarts. Starting an agent from the phone shows its tab right away and no longer moves your desktop window; creating a workspace on a remote host no longer pulls other connected desktops to it.
Agents and terminals: Long or multi-line agent launch commands on macOS and Linux reach the agent whole instead of being cut off or run line by line, and startup commands now use a real Enter. A pane you close just before quitting no longer comes back, and a pane dragged into its own tab no longer appears in two tabs. Claude's spinner clears when you cancel with Escape, and Codex keeps its working status when Escape only closes search. Orca no longer rewrites your ~/.codex hooks on every Codex launch, and helper processes it starts for Claude, Codex and OpenCode stop when Orca quits or crashes.
Accounts and agents: Switching Claude accounts keeps your MCP server sign-ins. Pi and OMP show their background helpers as rows, Rovo Dev is detected through acli, and Grok 4.7 is in the model list.
Sidebar and workspaces: Orca remembers whether the left sidebar was open. The agent activity view gets filters, a right-click menu and multi-select. A workspace that contains nested worktrees can be deleted together with them, in the background. Revealing a remote workspace no longer expands your local sections, and the Dock badge clears when you visit the workspace.
Files and search: Audio and video files play in Orca. Quarto and R Markdown files are highlighted. You can reveal a changed file in Source Control, or a file path in a terminal, in Finder or File Explorer. Quick Open matches multi-part queries and opens files at the requested location, and abandoned searches stop.
Tasks and review: GitHub Projects Board views show as a kanban you can drag cards across, private Linear images in task descriptions load, and GitLab merge request and issue actions in SSH workspaces reach the right server.
Also: A completion sound now plays for an agent that finishes right after another, and screenshot markup has an eraser.
Known issues
Native chats from v1.4.217 or older (release manager: drop this item if it does not apply): If you used native chat (experimental) on v1.4.217 or older and update straight to v1.4.223, your earlier native chats won't appear. Their files stay on disk (#26038).
Terminals after updating: This version starts a new terminal background service for new terminals. Terminals that were already open keep running on the previous one, so changes such as whole long launch commands apply only to terminals opened after the update. This also means the OpenCode, Pi and Qoder detection improvements from v1.4.222 now work in new terminals without restarting anything.
Relaunching from shell history: When an agent's launch command is long or spans several lines, the shell history holds a short one-time line instead, so pressing up-arrow and Enter does not start the agent again (#23962).
Workspaces created from the phone: Creating a workspace from an issue, pull request or Linear item with an agent on the phone still moves the desktop to that workspace (#26025).
Downgrading: Orca now refuses to install versions older than v1.4.214 from its version picker. To go back to one of those, run orca profile state rollback --latest-json with Orca closed, then install the old version by hand (#23262).
Windows on ARM: The ARM64 package ships an x64 orca.exe command-line tool. Windows 11 on ARM runs it under emulation. Windows 10 on ARM can't run it, so the orca command does not work there (#24094).
OpenCode 2: If you update from v1.4.219 or earlier, OpenCode 2 panes that were already running may show no status until you restart OpenCode in them. If you downgrade Orca after updating, duplicate OpenCode status plugins are left behind. After opencode run exits, its pane can keep showing "Done"; a fix is pending in #24472.
Claude folder trust: Folder pre-trust is on by default (Settings → Agents → "Trust the folder when Orca starts an agent"). On Alpine WSL, Orca can't copy the file permissions it needs, so Claude shows its own trust prompt instead (#23744).
Product experience
Native chat (experimental)
Grok can run as a structured chat, you can rewind a conversation, search models, mention files with @ and tune how chats look, chats get names and approval alerts, drafts and Stops keep your text, and chats start more reliably for Codex, API-key Claude users, Windows and custom agent commands.
fix(native-chat): reasoning rows with a real open/finished state, and readable Claude thinking by @brennanb2025 in #19221
Add confirmed conversation rewind from structured chat messages by @brennanb2025 in #19338
feat(native-chat): Grok as a structured chat over the Agent Client Protocol by @brennanb2025 in #25225
feat(native-chat): record fresh sessions after failed restoration by @brennanb2025 in #25747
feat(native-chat): searchable model picker by @AmoabaKelvin in #26011
feat(native-chat): suggest files on @ and name the triggers by @AmoabaKelvin in #26017
Add chat appearance settings: text size, code size, width by @brennanb2025 in #25657
Add chat contrast and "Match terminal interface" by @brennanb2025 in #25659
Add a Chat settings page for structured native chat by @brennanb2025 in #25685
Soften native chat colors and code surfaces by @brennanb2025 in #25651
Show native chat tool calls as plain sentences by @brennanb2025 in #25654
fix(native-chat): let code blocks grow to their full height by @AmoabaKelvin in #26021
fix(native-chat): show the message rail from the first user message by @brennanb2025 in #25707
feat(native-chat): a solid, fading Jump to latest by @brennanb2025 in #25759
Name native Claude and Codex chats after their first message by @brennanb2025 in #25724
Give native chat names one source for tabs, sidebar and AI Vault (list and search) by @brennanb2025 in #25986
fix(native-chat): alert when a structured chat asks for approval or input mid-turn by @brennanb2025 in #25766
fix(native-chat): an unsent draft survives a reload or quit by @brennanb2025 in #24905
feat(native-chat): the chat reads "Stopping…" from your Stop until the turn actually ends by @brennanb2025 in #24369
feat(native-chat): keep a message a Stop took back on screen, with one stop row after it by @brennanb2025 in #25051
fix(native-chat): keep a Stop's note with the turn it waited for and stopped by @brennanb2025 in #25056
feat(native-chat): publish where each submission was sent and the turn a stopped one was answered into by @brennanb2025 in #25073
fix(native-chat): hold a queued message until the turn ahead opens (follow-up to the Stop-event plan, fixes STA-9348) by @brennanb2025 in #25217
fix(native-chat): a Stop Codex took settles the message whose turn never opened (follow-up to #25217) by @brennanb2025 in #26105
fix(native-chat): queued messages carry on in order after any turn, and nothing sends by itself after a restart by @brennanb2025 in #24586
fix(native-chat): keep a message accepted before a quit or crash as a held card by @brennanb2025 in #24660
fix(native-chat): the agent's exit ends its record, and an unconfirmed stop is joined instead of held by @brennanb2025 in #24862
Show a tool call you stopped as interrupted, not failed by @brennanb2025 in #25181
fix(native-chat): a long reply keeps its Working bar and Stop after a reload, from the host's turn by @brennanb2025 in #25751
fix(native-chat): a prompt card owns the chat input until its answer lands (terminal-backed chat, desktop and phone) by @brennanb2025 in #25761
fix(native-chat): sending brings the latest into view and follows the reply by @AmoabaKelvin in #24514
fix(native-chat): a chat you return to drops background tasks that finished while it was hidden by @brennanb2025 in #24305
fix(native-chat): stop flashing a reconnecting line on a stream drop by @brennanb2025 in #24898
fix(native-chat): mark a chat whose start failed on its tab and workspace row by @brennanb2025 in #24904
fix(native-chat): say each chat outcome once and drop internal-only surfaces by @brennanb2025 in #24595
fix(native-chat): chat copy that promised a retry, an update, or a coming change by @brennanb2025 in #25157
feat(native-chat): one notice card above the message box for the chat's own errors by @brennanb2025 in #25835
fix(native-chat): say which retry a Claude retry is on and what it last failed with by @brennanb2025 in #25818
fix(native-chat): a sent image no longer flickers to its "Pasted image" placeholder while the agent works by @brennanb2025 in #25664
feat(native-chat): attach several files from one picker selection by @AmoabaKelvin in #23956
feat(native-chat): copy chat images from the right-click menu by @AmoabaKelvin in #24161
feat(native-chat): answer /context in chat view for OpenClaude and OMP by @brennanb2025 in #22294
feat(floating-workspace): render the floating panel through the shared workspace surface by @brennanb2025 in #22302
fix(native-chat): start a Codex chat without waiting on the background model probe by @brennanb2025 in #23831
Fix Codex chat creation after its own model listing fails by @brennanb2025 in #25754
fix(claude): start a Claude chat with its saved options and send the first message at once by @brennanb2025 in #25152
fix(claude): API-key Claude users are told they're not signed in by @brennanb2025 in #25163
fix(native-chat): start Windows chats without reading process creation times by @brennanb2025 in #25718
fix(native-chat): ignore the terminal launch command when starting a native chat by @brennanb2025 in #25720
fix(native-chat): honor saved agent Command and Arguments by @brennanb2025 in #25721
fix(native-chat): refuse a Command that can't run instead of silently running the stock CLI by @brennanb2025 in #25667
Fix transcript replacements racing chat publication by @nwparker in #25965
fix(mobile-chat): a failed message's text is added to the draft, and an expired resend no longer blocks that text by @brennanb2025 in #25149Orchestration & agent launch
Agents started from the phone get their tab at once and leave the desktop where it is, an existing chat can be an orchestration worker, and finished workers stop being recovered over and over.
feat(agent-launch): show an agent's tab at once, where the caller asked by @brennanb2025 in #25430
fix(agent-launch): a phone's launch leaves the desktop window where it is by @brennanb2025 in #26025
feat(agent-launch): host-assigned caller identity and a launch record written when the tab exists (unification 1 of 3) by @brennanb2025 in #24934
feat(orchestration): a native chat can be a dispatch worker, like a terminal agent by @brennanb2025 in #22972
feat(orchestration): a native chat gets the orchestration pointer a CLI agent gets, through the same send as your messages by @brennanb2025 in #25078
feat(native-chat): show which agent a chat message is from, and open it by @brennanb2025 in #25888
fix(orchestration): serve a /clear'd native-chat worker through the session running it by @brennanb2025 in #25875
fix(orchestration): word the worker brief for a chat worker by @brennanb2025 in #26036
Stop repeated recovery of finished workers by @nwparker in #25679Agents, accounts & integrations
Switching Claude accounts keeps MCP sign-ins, Codex hook approval no longer rewrites ~/.codex on every launch, Escape no longer leaves Claude or Codex status wrong, helper processes stop when Orca quits, Pi and OMP show their background helpers, Rovo Dev is detected, and Grok 4.7 is listed.
fix(claude-accounts): preserve shared MCP OAuth credentials across an account switch by @tomarai85 in #21931
fix(codex): write Orca's hook into ~/.codex only when something changed by @Jinwoo-H in #25743
fix(codex): approve Orca's hook in managed Codex homes with Codex's own hash by @Jinwoo-H in #25742
fix(codex): never write a Codex config.toml that Codex can't load, and approve both symlink spellings by @Jinwoo-H in #25741
Fix Claude's stuck spinner after Escape cancellation by @nwparker in #25846
fix(codex): keep working status when Escape closes search or permissions by @nwparker in #25769
Wait for Codex's live composer before pasting linked issue drafts by @nwparker in #25779
Fix premature Claude automation completion and inherited CI failures by @AmoabaKelvin in #24878
feat(pi): show Pi and OMP background children as rows by @AmoabaKelvin in #23201
fix(omp): stop the tab spinner sticking after subagents finish by @AmoabaKelvin in #23662
fix(agent-status): retire a removed worktree's hook-status rows by @AmoabaKelvin in #23881
fix: stop Claude and agent helper processes when Orca quits or crashes (STA-9254, 1 of 2) by @brennanb2025 in #25715
fix: stop Codex and OpenCode helper servers when Orca quits or crashes (STA-9254, 2 of 2) by @brennanb2025 in #25753
fix(rovo): detect and launch Rovo Dev through acli by @Jinwoo-H in #25981
fix(grok): add Grok 4.7 to the fallback model catalog by @Jinwoo-H in #25976Terminal
Long agent launch commands arrive whole, startup commands use a real Enter, and closed or dragged-out panes no longer come back or appear twice.
Stage long agent launch lines where they are typed, so they arrive whole (step 2 of 7) by @brennanb2025 in #23962
fix(terminal): submit startup commands with Enter on every platform by @AmoabaKelvin in #23672
fix(terminal): keep a pane closed just before quit from coming back on relaunch by @Jinwoo-H in #25711
refactor(terminal): move a dragged-out pane in main before the window opens its tab by @Jinwoo-H in #25380
Fix ownership for terminal and chat file drops (STA-6940, PR 1/6) by @brennanb2025 in #25749SSH, remote servers & phone
SSH workspaces keep their tabs, open files and resume offers across reconnects and restarts, and paired terminals, remote browser tabs and phone terminal lists recover after a host restarts or the network drops.
fix(session): at startup, a local copy never overrides an SSH-owned workspace's own copy by @Jinwoo-H in #26098
fix(ssh): bind reattached SSH panes into the target's own session partition by @Jinwoo-H in #26088
fix(ssh): open a terminal in an emptied worktree when the host holds a tab this client can't place by @AmoabaKelvin in #23213
fix(ai-vault): resume sessions whose worktree was deleted by @AmoabaKelvin in #24236
fix(remote-runtime): a paired terminal accepts input again after its host app relaunches by @Jinwoo-H in #25736
fix(remote-browser): host client browser pages again when a paired host comes back after an outage by @Jinwoo-H in #25827
fix(serve): keep every terminal on the phone after orca serve restarts by @Jinwoo-H in #26022
fix(runtime): build the host terminal model when a phone opens an idle terminal by @Jinwoo-H in #25780
Keep remote worktree creation from navigating paired clients by @nwparker in #25793
fix: recover deleted Active Server defaults and preserve editor hosts by @nwparker in #25938Workspaces, sidebar & tabs
The sidebar remembers if it was open, the activity view gets filters and multi-select, nested worktrees can be deleted, host sections collapse independently, and tab tooltips and scrolling are calmer.
fix(sidebar): remember whether the left sidebar is open across restarts by @INatsukiI in #22682
feat(activity): filters, matching header, row right-click menu, and stay in the activity view by @Jinwoo-H in #25376
feat(activity): multi-select agent rows with a bulk right-click menu by @Jinwoo-H in #25486
Add confirmed deletion of nested worktrees by @nwparker in #25668
Run nested workspace deletion in the background by @nwparker in #25975
Keep local pins collapsed when revealing a remote workspace by @nwparker in #25836
Keep sidebar section collapse independent across execution hosts by @nwparker in #25944
Fix send picker reveal under collapsed hosts and parents by @nwparker in #25950
fix(dock): clear stale workspace unread counts by @AmoabaKelvin in #24877
fix(worktrees): decide setup before git worktree add on the host's create by @brennanb2025 in #26006
fix(worktrees): when the host can't fetch a remote base, create from the local branch and say so by @brennanb2025 in #26009
fix(repos): stop reporting clones that never ran as successful by @AmoabaKelvin in #23770
fix(tabs): stop tab and close tooltips firing while grazing the strip by @AmethystLiang in #25808
perf(tab-bar): scrolling the tab strip no longer re-renders every tab by @AmoabaKelvin in #24240Editor, files & search
Audio and video files play in Orca, Quarto and R Markdown are highlighted, files can be revealed in your file manager, and Quick Open finds and opens files more precisely.
feat: stream desktop audio and video previews with native controls by @nwparker in #26120
feat(editor): highlight Quarto and R Markdown files instead of plain text by @ykunisato in #17772
feat(files): reveal Source Control files and terminal file links in the file manager by @AmoabaKelvin in #24502
Improve Quick Open matching, file locations and recent history by @nwparker in #25371
Cancel abandoned file searches and prevent stale results by @nwparker in #25370
Bound file-search inventories and release abandoned Markdown data by @nwparker in #25369
fix(markdown): strengthen dark table grid lines by @nwparker in #25653Source control, tasks & issues
GitHub Projects Board views work as a kanban, review cards poll GitHub less, private Linear images load, and GitLab writes in SSH workspaces reach the right server.
feat(github-projects): render Board project views as a kanban with drag-and-drop by @NaoyaTatetsu in #19074
Refresh visible reviews automatically and stop settled merged polling by @nwparker in #25788
Fix private Linear images in task descriptions by @nwparker in #25849
fix(jira): tolerate malformed nested Jira status fields by @brennanb2025 in #25656
fix(git): fall back to branch-safe author names for prefixes by @nwparker in #25984
fix(gitlab): route SSH workspace writes through GITLAB_HOST by @nwparker in #25985Browser, feedback & notifications
Screenshot markup gets an eraser, Comet is found on Windows, every completion sound plays, and oversized feedback screenshots are re-encoded to fit without losing detail.
feat(browser): add an eraser to screenshot markup by @AmoabaKelvin in #24801
fix(browser): detect Comet in its Windows vendor directory by @nwparker in #25983
fix(notifications): replay completion sounds reliably by @DEOWL-kan in #15940
fix(feedback): optimize oversized screenshots without losing detail by @AmoabaKelvin in #23664Profiles, settings & languages
Profiles save with less work at quit and update and keep saving after the app stalls, and Japanese and Chinese wording is fixed and translated.
Retire automatic profile JSON snapshots with safe recovery and downgrade by @OrcaWin in #23262
Keep profile saving alive after a stalled main loop by @AmethystLiang in #25318
fix(i18n): polish Japanese onboarding checklist copy by @tb-soshiro in #19035
fix(i18n): fix garbled Japanese name suggestion and reversed ja/zh quotes by @pinelibg in #25255
chore(i18n): translate 76 new keys to es/fr/ja/ko/zh by @AmethystLiang in #25719
chore(i18n): use 智能体 for Chinese Agent copy by @AmethystLiang in #25767Relay service
Server-side capacity, deploy and monitoring work for Orca's relay service.
feat(relay): drain pace window as a reviewed same-cap input, with drain-aware 503 gates by @Jinwoo-H in #25639
feat(relay): report lane service times, 503 causes, per-site hold p99 and a director-vs-cell lock-wait split by @Jinwoo-H in #25645
fix(relay): commit the cell counter in one round trip; cells boot without the database by @Jinwoo-H in #25765
fix(relay): read reconcile's counter units after the cell lock by @Jinwoo-H in #25638
feat(relay): one-command director deploy driver by @Jinwoo-H in #25642
fix(relay): deploy driver builds the checked commit, prompts on their own line, summarises progress by @Jinwoo-H in #25755
feat(relay): give Asia cell c34 a promotion wave so it can become a general cell by @Jinwoo-H in #25757
chore(relay): move Asia cell c34 to the general same-cap lists after promotion by @Jinwoo-H in #25758Tests, CI & maintenance
Groundwork that is not switched on yet (Claude account profiles, terminal layout changes), the shared building blocks behind Grok's structured chat, faster and cheaper test runs, fixes that kept main building, and a limit on how far shared YAML defaults can expand.
feat(claude): prepare account profiles and shared history (Step 1 of 4) by @brennanb2025 in #24300
Claude account profiles: dormant routing and consumers (Step 2 of 4) by @brennanb2025 in #24351
Claude account profiles: dormant WSL guest setup (Step 3 of 4) by @brennanb2025 in #24384
fix(claude): share account history on Windows with junctions and a same-drive hardlink by @Jinwoo-H in #26067
Extract provider process supervision and stream reading from Codex by @brennanb2025 in #24989
Add standalone Agent Client Protocol client layer by @brennanb2025 in #24990
refactor(native-chat): keep the provider resume handle opaque to shared code by @brennanb2025 in #24991
refactor(native-chat): structured agents declare their capabilities instead of shared code naming Claude and Codex by @brennanb2025 in #25076
feat(native-chat): open structured chat's wire and stored records to registered agents, behind a negotiated capability by @brennanb2025 in #25159
Share the managed process lifecycle for structured providers by @brennanb2025 in #25204
Admit one provider event's journal writes as one queued operation, decided when it runs by @brennanb2025 in #25141
Add a shared timeline assembler for structured agent chats (not wired yet) by @brennanb2025 in #25064
Translate ACP traffic into shared timeline events by @brennanb2025 in #25090
Let ACP connections own their agent processes by @brennanb2025 in #25810
refactor(native-chat): remove the records-file and per-chat journal imports by @brennanb2025 in #26038
feat(agent-launch): the desktop AI buttons start their agent through agent.launch by @brennanb2025 in #25624
refactor(composer): delete the full-create path no caller reaches by @brennanb2025 in #26052
[STA-6940] Prepare file drops for element owners (PR 2 of 6) by @brennanb2025 in #25748
refactor(codex): remove code the ~/.codex hook rework left unused by @Jinwoo-H in #25744
refactor(terminal): add in-place pane layout geometry apply (unused) by @Jinwoo-H in #25671
refactor(terminal): report breaches of the two layout invariants; add an unrun load repair by @Jinwoo-H in #25673
refactor(terminal): carry pane placement on terminal start, report-only by @Jinwoo-H in #25677
refactor(terminal): mark layout updates from user gestures by @Jinwoo-H in #25680
refactor(terminal): project main's terminal layout after each save (no reader yet) by @Jinwoo-H in #25682
test(e2e): terminal layout parity check against main by @Jinwoo-H in #25681
Bound YAML merge conversion and close SQLite routing review gaps by @nwparker in #25998
fix(windows): keep generated skills and snapshots LF by @nwparker in #25972
test: check structured-chat code for Electron imports even before the runtime loads it by @brennanb2025 in #24988
test(native-chat): cover paired runtime launch compatibility by @brennanb2025 in #25072
Reduce localization audit and relay setup work in CI by @nwparker in #25665
fix(ci): unblock main's static analysis after the nested-worktree delete dialog by @brennanb2025 in #25683
fix: restore main's lint and localization checks after the nested-worktree delete dialog by @brennanb2025 in #25684
fix(test): use the current provider handle shape in the stop-note test (unbreaks main typecheck) by @Jinwoo-H in #25706
fix(test): use the current provider handle shape in the submission-positions test (unbreaks main typecheck) by @brennanb2025 in #25709
test(ratchet): require src/main/provider-process now that it has landed by @brennanb2025 in #25710
fix(test): drop the duplicate codexProviderHandle import that breaks main's typecheck by @brennanb2025 in #25713
test: drop the duplicate codexProviderHandle import two main fixes both added by @brennanb2025 in #25717
fix(test): restore the codexProviderHandle import in the submission-positions test by @Jinwoo-H in #25722
fix(test): restore the codexProviderHandle import the #25078 merge removed by @brennanb2025 in #25728
test(cross-version): load releases that import a package main dropped by @brennanb2025 in #25731
test(agent-launch): keep the carry control on a prompt that still cannot ride the line after #23672 by @brennanb2025 in #25734
Pause Pullfrog while the CI runner queue recovers by @nwparker in #25760
Reduce CI work by removing low-value tests and duplicate fuzz comparisons by @nwparker in #25791
Reduce redundant tests and unnecessary CI waits by @nwparker in #25806
Build SSH host compatibility slots in parallel by @nwparker in #25821
perf(ci): compile release JavaScript once for all packaging hosts by @nwparker in #25828
Stop expensive checks when an unmerged PR closes by @nwparker in #25829
Fix main CI line-limit failure in protocol capability registry by @nwparker in #25839
Run Vitest on Bun with Node runtime contracts by @nwparker in #25840
test(mobile): split the turn-disclosure test under the 800-line test limit by @brennanb2025 in #25933
fix(ci): restore main's typecheck and lint after #25751 and #24369 by @Jinwoo-H in #25949
Speed up unit tests with cross-runtime duration scheduling by @nwparker in #25967
fix(test): restore main typecheck — pass resolveLaunchArgs in the record store slot test by @Jinwoo-H in #25970
fix(test): restore main typecheck — pass resolveLaunchArgs in the Codex stopped-send-order test by @Jinwoo-H in #25977
Simplify reveal and test fixture cleanup by @nwparker in #25978
fix(test): drop the duplicate resolveLaunchArgs that breaks main's lint by @brennanb2025 in #25997
Run localization catalog checks on Bun (26% less time) by @nwparker in #25999
Speed up expensive test fixtures (23–82% less time) by @nwparker in #26000
test(codex): turning status hooks off always wins over a turn-on still in flight by @Jinwoo-H in #26001
test(e2e): keep the Source Control reveal golden off older release tags by @Jinwoo-H in #26005
fix(ci): run three new SQLite-backed tests in the Node runtime project by @Jinwoo-H in #26010
Run the SQLite responsiveness test after other suites by @nwparker in #26015
test(vitest): run agent-launch-instant-tab in the SQLite runtime project by @Jinwoo-H in #26028
Keep native contracts on Node and wait for Git upgrade completion by @nwparker in #26034
test: bound memory used by the runtime Electron audit by @nwparker in #26049
fix(lint): bring structured-agent-session-host back under max-lines by @Jinwoo-H in #26050
Fix unsafe test fixtures and the Bun version pin by @nwparker in #26051
fix(native-chat): split the attachment failure words out so Lint passes on main by @brennanb2025 in #26079
fix(ci): actually exclude Electron probes from the headless node-server lanes by @Jinwoo-H in #26093
fix(acp): repair main's typecheck after the legacy journal-path removal by @Jinwoo-H in #26094
perf(tests): reuse Vitest transforms between test runs by @nwparker in #26095
fix(native-chat): repair main's web typecheck after the @-mention prop rename by @Jinwoo-H in #26097
perf(tests): avoid repeated persistence imports in automation fixtures by @nwparker in #26111
perf(tests): release stale pane migration listeners between cases by @nwparker in #26131
Advance mocked test clocks instead of waiting in real time by @nwparker in #26135
Reduce repeated UI imports in draft storage tests by @nwparker in #26145
test: reduce replay oracle time by 20.93% with scratch cell reuse by @nwparker in #26162
test: reduce terminal topology suite time by 40.98% by @nwparker in #26166New Contributors
@DEOWL-kan made their first contribution in #15940
@ykunisato made their first contribution in #17772
@tomarai85 made their first contribution in #21931
@INatsukiI made their first contribution in #22682
@pinelibg made their first contribution in #25255Full Changelog: v1.4.222...v1.4.223
Original source
Curated by the Releasebot team
Releasebot is an aggregator of official release notes from hundreds of software vendors and thousands of sources.
Our editorial process involves the manual review and audit of release notes procured with the help of automated systems.