stablyai Release Notes

Follow

45 release notes curated from 1 source by the Releasebot Team. Last updated: Oct 21, 2026

Get this feed:

stablyai Products

  • Oct 20, 2026
    • Date parsed from source:
      Oct 20, 2026
    • First seen by Releasebot:
      Oct 21, 2026
    stablyai logo

    orca by stablyai

    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
    stablyai logo

    orca by stablyai

    v1.4.234

    orca releases version 1.4.234.

  • All of your release notes in one feed

    Join Releasebot and get updates from stablyai and hundreds of other software products.

    Create account
  • Oct 20, 2026
    • Date parsed from source:
      Oct 20, 2026
    • First seen by Releasebot:
      Oct 21, 2026
    stablyai logo

    orca by stablyai

    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
    stablyai logo

    orca by stablyai

    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! ❤️
    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

    Original source
  • Oct 20, 2026
    • Date parsed from source:
      Oct 20, 2026
    • First seen by Releasebot:
      Oct 21, 2026
    stablyai logo

    orca by stablyai

    v1.4.231

    orca releases version 1.4.231.

  • Similar to stablyai with recent updates:

  • Oct 20, 2026
    • Date parsed from source:
      Oct 20, 2026
    • First seen by Releasebot:
      Oct 21, 2026
    stablyai logo

    orca by stablyai

    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
    stablyai logo

    orca by stablyai

    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
    stablyai logo

    orca by stablyai

    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! ❤️
    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

    Original source
  • Oct 17, 2026
    • Date parsed from source:
      Oct 17, 2026
    • First seen by Releasebot:
      Oct 18, 2026
    stablyai logo

    orca by stablyai

    v1.4.228

    orca lists version 1.4.228, but provides no details about what changed.

  • Oct 17, 2026
    • Date parsed from source:
      Oct 17, 2026
    • First seen by Releasebot:
      Oct 18, 2026
    stablyai logo

    orca by stablyai

    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
    stablyai logo

    orca by stablyai

    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
    stablyai logo

    orca by stablyai

    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! ❤️
    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

    Original source
  • Oct 13, 2026
    • Date parsed from source:
      Oct 13, 2026
    • First seen by Releasebot:
      Oct 13, 2026
    stablyai logo

    orca by stablyai

    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
    stablyai logo

    orca by stablyai

    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
    stablyai logo

    orca by stablyai

    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 #25149

    Orchestration & 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 #25679

    Agents, 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 #25976

    Terminal

    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 #25749

    SSH, 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 #25938

    Workspaces, 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 #24240

    Editor, 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 #25653

    Source 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 #25985

    Browser, 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 #23664

    Profiles, 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 #25767

    Relay 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 #25758

    Tests, 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 #26166

    New 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 #25255

    Full Changelog: v1.4.222...v1.4.223

    Original source
Releasebot

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.