github stablyai/orca v1.4.245

8 hours ago

A faster Orca, plugins & background computer use ⚡

  • ⚡ A faster Orca: Launch smoothly with hundreds of chats, with less lag as you type and switch tabs.
  • 🧩 Customize Orca with icon themes, syntax highlighting and custom editors.
  • 🖱️ Keep working while agents use Chrome, Blender and other Mac apps in the background.
  • 🎙️ Dictate on your phone and see your words as you speak.
  • 💬 Try the new Chat UI: Search for “Chat UI” in Settings to turn it on, then right-click a tab to switch live between Chat UI and TUI.

Highlights

  • A faster Orca: Fast app with hundreds of chats. Typing stays more responsive, and hidden chats do less work while you use other tabs.
  • Plugins: Add icon themes, syntax highlighting and custom editors from Settings → Plugins. Community publishing is coming soon, so you’ll be able to share your own plugins.
  • Background computer use on Mac: Let agents work in Chrome, Blender and other apps while you keep using your mouse and keyboard. Orca’s in-app browser already works in the background; now computer use does too. Some actions still need the app brought forward.
  • Chats: Enjoy a very polished Chat UI, send again after Stop, and preview links in chat. Search for “Chat UI” in Settings to turn it on, and right-click a tab to switch live between Chat UI and TUI.
  • Terminals: Set a running terminal limit for each computer in Settings → Terminal → Advanced.
  • WSL: Stopped distros stay stopped until you choose Start. Terminals remember their folder.
  • Browser: Press Cmd+Opt+B on Mac for a browser split. Send shorter annotation feedback, now with pasted images.
  • Workspaces: Your workspace name becomes its branch name again. Source Control actions get Model and Effort controls.
  • Phone: See dictation as you speak, and read clearer code, tables and diagrams.

Compatibility & upgrade notes

  • New terminal host: This release starts a fresh terminal host for new terminals. Terminals already open before the update keep running on the previous host and stay attached. The new running terminal limit setting needs the new host, and so do fixes such as the ble.sh startup fix and lighter process checks on macOS. Those apply to terminals you open after updating.
  • Plugins are on by default: Installing a plugin, including from an orca://plugins link, only opens a review screen first. Plugins that run code ask for your consent before they install, and once approved they run with full access to your computer.
  • Running terminal limit: The default now follows each computer: half of its system terminal limit, up to 4096, or 256 as before when Orca can’t read that limit. A value you set in Settings or with an environment variable takes priority. Raising or lowering it never closes running terminals. A remote server running an older Orca keeps working, but the limit can’t be changed there until it updates.
  • Chat naming: Chats are now named by their own agent and account by default. A naming agent, custom command or arguments you saved before keep working, and the naming agent choice moved under Advanced in Settings → Chat → Chat naming.
  • Codex history across accounts: A new switch, Settings → Agents → Share Codex history across accounts, is on by default and keeps today’s behavior. With it on, history from Orca’s managed accounts now also shows up in your own ~/.codex when you switch back to system default. Turning it off stops new sharing and removes nothing. On an SSH or WSL host running an older Orca, the switch stays disabled until that host updates.
  • Codex on macOS and Linux: Orca now starts Codex with its paste guess turned off, so prompts typed from a phone or another client send instead of staying in the composer. Real pastes still arrive as pastes.
  • Computer use on a Mac: Agents now act in the background by default. Agents can still ask for the old foreground mode with --restore-window, which drags into Chromium and Electron apps still need.
  • Browser annotations: Send and Copy now give agents a short summary per note. Check Include page details in the Send menu to get the old full output; the choice lasts for that browser pane.
  • Workspace branch names: A name you type for a new workspace is used as its branch again, even when Auto-rename branch from work is on. Auto-rename only replaces names Orca made up.
  • Automations: Agents started by an automation skip their CLI’s startup update prompt, so the prompt can’t swallow the task. Agents you start yourself are unchanged.
  • Source Control actions: Model and effort flags saved in an action’s Arguments move into the new Model and Effort controls when Orca loads; other Arguments stay as they are. A phone or remote server on an older Orca may launch these actions with a different model or effort until it updates.
  • New shortcuts: Cmd/Ctrl+Shift+X opens Plugins (outside text fields), and Cmd+Opt+B on macOS opens a browser tab in a split to the right. Cmd+Opt+B can be changed in Settings → Keyboard.
  • Known limitation, downgrading: If you go back to v1.4.244, custom model and effort choices on Source Control AI actions reset to the agent’s defaults, and updating again won’t bring them back.

Product experience

Native chat

No more startup freeze with many chats, link previews, naming with the chat’s own agent, and a working Send after Stop.

  • Show chats as Interrupted or Done at startup without reading their history, so Orca no longer freezes after launch with hundreds of chats by @brennanb2025 in #32146
  • Show hover cards for GitHub PR and issue links in chats by @AmoabaKelvin in #35199
  • Show preview cards for web links in chats, never fetching private network addresses by @AmoabaKelvin in #35221
  • Name each chat with its own agent and account by default, with other naming agents under Advanced by @brennanb2025 in #32106
  • Let the next message go through after Stop force-kills a chat’s agent by @brennanb2025 in #34653
  • Keep a huge unbroken paste from freezing a chat by @nwparker in #36031
  • Run launcher Commands like op run -- codex for every agent in chats by @brennanb2025 in #35592
  • Leave Claude plan mode when you approve a plan by @brennanb2025 in #34549
  • Resume a chat with a saved effort on Claude Code versions that predate --effort by @nwparker in #35878
  • Keep the model options a chat accepted in what it shows and sends by @brennanb2025 in #31208
  • Keep a chat’s option controls working while its model list refreshes by @brennanb2025 in #31927
  • Handle large pastes in chat goal mode by @brennanb2025 in #34654
  • Order queued chat turns without rescanning the transcript by @OrcaWin in #34945
  • Stop resting chats from delaying native command menus by @brennanb2025 in #35069
  • Recover from OpenCode failures in chats by @AmethystLiang in #35247
  • Keep models missing from a provider’s list available in chats by @brennanb2025 in #35266
  • Process image-heavy transcript runs once by @OrcaWin in #35572
  • Reopen an old tool run without jumping to a stale scroll position by @brennanb2025 in #35866
  • Stop re-rendering chat composer controls on every keystroke by @nwparker in #35913
  • Do less work for hidden chats and tab updates by @AmethystLiang in #36047
  • Keep the chat session record file within the file name length limit by @brennanb2025 in #36056
  • Make Settings permission menus match the chat permission picker by @brennanb2025 in #36104
  • Stop the saved chat status writer from remembering every closed chat by @brennanb2025 in #36105
  • Keep transcripts from re-rendering on status-only updates by @nwparker in #36141
  • Keep chats ended with Stop readable after downgrading to v1.4.244 by @brennanb2025 in #36142
  • Skip the WSL distro walk for chat transcripts on this computer by @nwparker in #36152

Plugins

Icon themes, syntax packs and custom editors, one Plugins list with one-step install, and quick access from the status bar.

  • Plugin Alpha: icon themes, syntax packs and custom editors, one Plugins list with one-step install, and orca://plugins links by @nwparker in #35470
  • Open Plugins from a status bar button or Cmd/Ctrl+Shift+X by @AmethystLiang in #36153
  • Show one Plugins list with Installed badges, inline switches, install-state filters, category chips and plain wording about trusted code by @nwparker in #36100
  • Show the Plugins catalog in four columns with clear Show all and See all links by @nwparker in #35849
  • Make Try it apply the plugin instead of opening its page by @nwparker in #35846
  • Treat self-hosted plugin repository paths that differ in case as different repositories by @nwparker in #35640
  • Stop an update already in progress when you turn off plugin auto-update by @nwparker in #35642
  • Keep the Try it and Switch back toasts up long enough to click by @nwparker in #35650
  • Apply a one-mode theme visibly when you install it by @nwparker in #35674
  • Use one loader for plugin panels and editors, and keep suspended panels marked failed by @nwparker in #35680
  • Keep unsaved edits in plugin binary editors across renames, reloads and duplicate tabs by @nwparker in #35698
  • Load installed plugins whose minimum Orca version predates their fields by @nwparker in #35756
  • Keep plugin panels within the sidebar’s height by @AmethystLiang in #36085
  • Cap the plugin preview cache to the current version by @nwparker in #36089
  • Count plugin installs from Orca’s public catalogs by @nwparker in #36132
  • Reload the active icon theme after a plugin update by @nwparker in #36151

Browser

A browser split shortcut, shorter annotation feedback with pasted images, and SSH proxies that work in the browser.

  • Open a browser tab in a split to the right with a shortcut (Cmd+Opt+B on macOS) by @AmoabaKelvin in #35994
  • Send compact annotation feedback by default, with an Include page details checkbox for the full detail by @AmoabaKelvin in #35990
  • Paste images into annotation comments and send them to the agent by @AmoabaKelvin in #36004
  • Reach sites through the SSH host’s proxy in an SSH workspace’s browser by @nwparker in #36022
  • Keep your chosen default browser profile after a restart or update by @AmoabaKelvin in #35991
  • Open Orca’s own buttons and links according to the open-links-in-Orca setting by @AmoabaKelvin in #35992
  • Show the page’s viewport size while you resize a browser pane by @chucoding in #31145
  • Make Next.js Server Actions work through a worktree’s *.orca.localhost address by @promptprobe in #14562
  • Check Chrome Web Store redirects before following them by @OrcaWin in #35286
  • Contain malformed browser automation messages by @OrcaWin in #35291
  • Skip unused frame scans when checking site permissions by @OrcaWin in #35326
  • Reuse tab snapshots when listing tabs for extensions by @OrcaWin in #35327
  • Release startup data from abandoned extension native helpers by @OrcaWin in #35344
  • Avoid repeated cleanup scans of extension native helper ports by @OrcaWin in #35346
  • Cap copied header data from extension native helpers by @OrcaWin in #35359
  • Close extension popups that close themselves when they lose focus by @OrcaWin in #35360
  • Cap pending writes to extension native helpers by @OrcaWin in #35362
  • Release used buffers from extension native helpers by @OrcaWin in #35368
  • Skip converting outdated page snapshots by @OrcaWin in #35377
  • Load pages through a server set to “Server (streamed)” even when it can’t stream by @nwparker in #35381
  • Keep popups opened by a page in the same browser session by @OrcaWin in #35397
  • Close Find on a full page navigation in client-hosted browsers by @OrcaWin in #35692
  • Refuse a 21st page annotation with a visible limit instead of dropping the oldest by @AmoabaKelvin in #35979
  • Print orca console and orca network entries in text mode and respect --limit by @AmoabaKelvin in #35981
  • Give agent device and viewport --mobile settings touch input and a coarse pointer by @AmoabaKelvin in #35982
  • Import a cookie file into a client-hosted browser under a remote server by @AmoabaKelvin in #35989
  • Keep agent clicks on target when a page changes, with agent-browser 0.39.4 by @AmoabaKelvin in #36007
  • Return orca tab list at once when a worktree has no saved browser tab by @AmoabaKelvin in #36017
  • Preview HTML files over 512 KiB from paired hosts by @AmoabaKelvin in #36021

Agent launch, status & accounts

Mac apps driven in the background, Codex history you can keep apart per account, and steadier Grok, Antigravity and Mobile Emulator support.

  • Let agents drive macOS apps in the background by default, without moving your pointer or taking your focus by @AmoabaKelvin in #36005
  • Report macOS computer use actions that changed nothing, read back wrong or hung by @AmoabaKelvin in #36020
  • Return what changed after computer use actions, and add get-app-state --query by @AmoabaKelvin in #36023
  • Stop relaunching the macOS permission helper on every status check, which made the mouse unusable when access was denied by @nwparker in #36028
  • Cap every macOS permission helper launch at one per 5 seconds by @nwparker in #36150
  • Add Settings → Agents → Share Codex history across accounts (on by default), and bring managed accounts’ Codex history into ~/.codex on system default by @nwparker in #34981
  • Start Codex on macOS and Linux without its paste guess, so prompts typed from remote clients send by @nwparker in #35975
  • Switch Antigravity accounts on Windows by @brennanb2025 in #34637
  • Stop an agent name mentioned in task text from taking over a pane by @brennanb2025 in #19309
  • Group Antigravity models and refresh their effort choices by @brennanb2025 in #34518
  • Bring back OMP commit messages and chat names by @brennanb2025 in #34644
  • Open conversation files from Session History instead of storage databases by @brennanb2025 in #35051
  • Resume Session History conversations for symlinked workspaces by @brennanb2025 in #35052
  • Finish Mobile Emulator gestures when the connection closes after the last point by @OrcaWin in #35329
  • Keep a Grok pane working when Esc or Ctrl+C doesn’t cancel its turn by @AmoabaKelvin in #35417
  • Keep Grok’s background shells and subagents visible after a cancel by @AmoabaKelvin in #35495
  • Wait for complete scrcpy downloads in the Mobile Emulator by @OrcaWin in #35503
  • Wait for the requested Android virtual device to boot in the Mobile Emulator by @OrcaWin in #35536
  • Clear Orca’s own Codex “ready” title when the next turn starts by @brennanb2025 in #35547
  • Quote text sent to Android devices in the Mobile Emulator by @OrcaWin in #35561
  • Start scrcpy in the background for the Mobile Emulator by @OrcaWin in #35566
  • Reset partial video frames when the Mobile Emulator reconnects by @OrcaWin in #35593
  • Run Android commands through Orca’s process host in the Mobile Emulator by @OrcaWin in #35599
  • Reuse device routing in the Mobile Emulator by @OrcaWin in #35616
  • Report Android app launch failures in the Mobile Emulator by @OrcaWin in #35623
  • Follow the Android video’s real size in the Mobile Emulator by @OrcaWin in #35635
  • Let your Mac sleep again when Orca quits after keeping it awake for agents by @OrcaWin in #35649
  • Use the shared default agent choice when launching from work items by @brennanb2025 in #35748
  • Avoid Claude workflow agent views that aren’t supported by @brennanb2025 in #35749
  • Load the bundled agent status rules without checking them again by @nwparker in #35768
  • Report an agent CLI that couldn’t start as missing, not as a failed start by @nwparker in #35770
  • Add to the session search index after a restart instead of rewriting large transcripts by @nwparker in #35941
  • Find the Codex CLI once per launch check, off the main thread on Windows by @nwparker in #35967
  • Resume AI Vault sessions for the operating system of the host that runs them by @nwparker in #35988
  • Quote resume commands for the host’s own operating system and shell by @nwparker in #35995
  • Skip bringing an app forward for accessibility clicks by @AmoabaKelvin in #36006
  • Ignore a launcher’s own version when choosing Claude hook events by @brennanb2025 in #36119
  • Find retained Claude prompts’ turns in one pass during catch-up by @brennanb2025 in #36127

Orchestration & CLI

Messages between agents as cards, chat workers nested under their coordinator, and quieter automation launches.

  • Show messages between agents as cards with the other agent’s status by @brennanb2025 in #34824
  • Say “coordinator” and “worker” on agent message cards by @brennanb2025 in #36168
  • Nest chat workers under the agent that started them in the workspace agent list by @brennanb2025 in #34601
  • Skip agent CLI update prompts for unattended automation launches by @Jinwoo-H in #36133
  • Include the provider’s error when a worker’s dispatch preamble is rejected by @Venius24 in #35791
  • Never register the bundled orca launcher as a link to itself by @Hotragn in #35371
  • Make orca worktree rm report whether the delete worked, not just that it was accepted by @nwparker in #35459
  • Stop the orca command that orca serve adds on Linux from hiding the GNOME screen reader, and remove it with the CLI by @nwparker in #35578
  • Let a host create workspaces for another owner’s automation run by @nwparker in #35978
  • Label workspaces a host creates with the desktop’s own automation run by @nwparker in #35986

Terminals

A per-computer running terminal limit, ble.sh prompts that no longer stall startup commands, and lighter process checks on macOS.

  • Add Settings → Terminal → Advanced → Maximum running terminals, per computer, including connected remote computers by @brennanb2025 in #31396
  • Keep a sleeping conversation ready to resume when the running terminal limit is reached by @brennanb2025 in #35401
  • Send the shell-ready signal when ble.sh owns the bash prompt, so startup commands no longer wait 15 seconds by @nwparker in #36163
  • Tell you when keys typed before a remote terminal connected weren’t sent by @nwparker in #35581
  • Read the macOS process table inside Orca instead of starting ps on every check by @nwparker in #35987
  • Read folder reports from nushell correctly by @nwparker in #35596
  • Make terminal folder reports agree on spaces, control characters and % by @nwparker in #35606
  • Flash the editor tab a terminal file link opens by @AmethystLiang in #35656
  • Keep Orca’s own input and output handles out of every program it starts on Windows by @nwparker in #35678
  • Log a terminal exit no client heard by @nwparker in #35734
  • Stop link detection scanning back past rows that can’t continue a URL by @nwparker in #35767
  • Stop rereading the terminal size on every write once it matches by @nwparker in #35783
  • Drop a replaced program’s title and input modes when restoring a terminal by @nwparker in #35889
  • Judge how to reattach a live agent by the screen’s own title by @nwparker in #35920
  • Send typed keys to the terminal before updating activity by @AmethystLiang in #36008
  • Keep only timings in typing diagnostics by @AmethystLiang in #36088

SSH, WSL & remote servers

Stopped WSL distros that stay stopped, WSL terminals that reopen where you left them, and faster SSH sign-in and uploads.

  • Show a Start card on restored WSL terminals whose distro is stopped, instead of starting the distro by @nwparker in #35813
  • Keep a stopped WSL distro’s worktrees in the sidebar and refresh them once it runs by @nwparker in #35733
  • Start a stopped WSL distro only when you switch to its workspace or expand a folder by @nwparker in #35867
  • Reopen restored WSL terminals in the folder you were in by @nwparker in #35385
  • Report the folder from fish shells in WSL terminals at every prompt by @nwparker in #35517
  • Report the folder from sh, dash and ash shells in WSL terminals at every prompt by @nwparker in #35597
  • Start fish shells older than 2.7 in WSL terminals instead of failing by @nwparker in #35579
  • Let a second desktop use an SSH host another desktop already set up by @nwparker in #35879
  • Don’t import an SSH config entry for a machine already in Orca by @nwparker in #35792
  • Upload folders to SSH hosts faster by overlapping small files by @OrcaWin in #35348
  • Sign in to SSH hosts faster by sending small packets right away by @OrcaWin in #35318
  • Load SSH support on first use instead of at startup by @nwparker in #35911
  • Keep a remote server’s browser helper listening only on that machine by @teamauresta in #31896
  • Cap queued data for slow relay connections by @OrcaWin in #35302
  • Read session history without starting a stopped WSL distro by @nwparker in #35367
  • Keep account sync and usage previews from starting a stopped WSL distro by @nwparker in #35387
  • Keep background Git, GitHub and GitLab reads from starting a stopped WSL distro by @nwparker in #35410
  • Keep background startup checks and agent detection from starting a stopped WSL distro by @nwparker in #35411
  • Keep Settings checks for CLI status, repair, health and links from starting a stopped WSL distro by @nwparker in #35412
  • Keep background requests from phones, web and the CLI from starting a stopped WSL distro by @nwparker in #35430
  • Wait for an up-to-date list of running WSL distros before background steps, so a distro that is shutting down isn’t restarted by @nwparker in #35433
  • Check again before each Codex repair batch, so a stopped WSL distro stays stopped by @nwparker in #35448
  • Never bring back a device removed from a server’s device list when the list is saved by @nwparker in #35483
  • Skip a repeated startup check on a remote server whose machine hasn’t changed by @nwparker in #35484
  • Start a remote server’s terminal host sooner by @nwparker in #35486
  • Never hand a paired device the token of a child device that a save dropped by @nwparker in #35510
  • Harden a remote server’s startup check by @nwparker in #35513
  • Stop a device removed on disk from signing in at the next check by @nwparker in #35527
  • Issue a fresh token in the same sync for a child device a save dropped by @nwparker in #35533
  • Keep other paired devices signed in when a partly corrupt device list is set aside by @nwparker in #35539
  • Start a remote server slightly sooner by @nwparker in #35568
  • Reject malformed encrypted connection handshakes by @OrcaWin in #35583
  • Share a skill by starting only the stopped WSL distros that hold it by @nwparker in #35659
  • Never scan a WSL Codex history source in the background by @nwparker in #35677
  • Keep remote terminals’ screen state at the server’s live depth and cap waits for chat snapshots by @nwparker in #35679
  • Do a full Codex history scan after launches while history lives in WSL by @nwparker in #35703
  • Never start a stopped default WSL distro because gh or glab is missing on Windows by @nwparker in #35709
  • Start only the WSL distros not yet read when skill sharing retries by @nwparker in #35725
  • Close the gaps where session scanning could start a stopped WSL distro by @nwparker in #35729
  • Don’t start a stopped WSL distro to read a repo’s default base branch by @nwparker in #35778
  • Release a remote server’s wake hold once its dropped launch is running by @nwparker in #35808
  • Use confirmed home folders for WSL transcript lookups, treat WSL deletes as your own action, and translate the carryover notice by @nwparker in #35810
  • Ask a paired host again for a default base branch it refused, and close a timing gap by @nwparker in #35812
  • Keep Codex WSL hook installs and checks from starting a stopped distro by @nwparker in #35827
  • Keep Settings issue command and path checks from starting a stopped WSL distro by @nwparker in #35829
  • Retry a watched WSL folder that fails while its distro is starting by @nwparker in #35845
  • Load Commits history from a stopped WSL distro only when you ask by @nwparker in #35854
  • Never start a stopped WSL distro for a scheduled automation run by @nwparker in #35857
  • Keep restored terminals’ environment setup from starting a stopped WSL distro by @nwparker in #35858
  • Say when Orca couldn’t check a held terminal’s WSL distro, instead of saying it stopped by @nwparker in #35860
  • Keep Orca’s background terminal starts from starting a stopped WSL distro by @nwparker in #35865
  • Fail a first WSL setup fast when the Node download gets no answer by @nwparker in #35869
  • Keep Source Control’s PR push target and Create PR checks from starting a stopped WSL distro by @nwparker in #35885
  • Hold restored WSL terminals before checking their folder, whichever way they start by @nwparker in #35895
  • Wake the explorer and Git status on a workspace switch only while the switch is recent by @nwparker in #35897
  • Never start a stopped WSL distro to check a folder workspace’s path by @nwparker in #35899
  • Fix issue command follow-ups: no-op saves, WSL Git repos and paired hosts by @nwparker in #35900
  • Keep the port scanner from resolving a stopped WSL distro’s workspace path by @nwparker in #35907
  • Explain held WSL terminals in a plain sentence, and start the terminals of a worktree you create yourself by @nwparker in #35935
  • Never start an automation’s startup terminal in a stopped WSL distro as if you started it by @nwparker in #35970
  • Hold Orca’s background WSL starts before the folder check, and let your own starts check a WSL folder by @nwparker in #35971
  • Read the list of running WSL distros once for a held start by @nwparker in #36077
  • Limit AI Vault’s WSL session carryover to the most recent scopes by @nwparker in #36090
  • Read a WSL distro’s drive mount folder once per start, including the default /mnt/ by @nwparker in #36097
  • Diagnose desktop clock drift for relay connections by @AmoabaKelvin in #36139
  • Prepare the environment for background WSL starts without waking the distro by @nwparker in #36149

Source control & integrations

Credentials kept out of Git errors, Model and Effort controls for Source Control actions, and fewer GitHub requests.

  • Remove credentials from Git remote errors before showing them by @AmethystLiang in #36205
  • Give Source Control actions their own Model and Effort controls instead of flags in Arguments by @brennanb2025 in #34275
  • Keep same-repo PRs when origin uses a renamed repository’s old URL by @YiGeon in #35688
  • Skip Tasks requests for projects known to be hosted outside GitHub by @brennanb2025 in #34219
  • Center plain Project table cells and label the linked PR overflow by @brennanb2025 in #34532
  • Load PR conversations without duplicate GitHub requests by @OrcaWin in #34747
  • Combine PR participant and viewed-file requests by @OrcaWin in #34842
  • Reuse repository merge setting reads by @OrcaWin in #34848
  • Stop Linear writes once the action that started them ends by @brennanb2025 in #35020
  • Combine PR field and stack summary requests by @OrcaWin in #35295
  • Merge comments you post into the fetched PR comment history by @OrcaWin in #35306
  • Keep comment changes made meanwhile when resolving a PR thread fails by @OrcaWin in #35315
  • Keep your place while a newly created issue loads by @OrcaWin in #35351
  • Skip empty annotation reads for finished checks by @OrcaWin in #35524
  • Rename PRs without extra lookups by @OrcaWin in #35525
  • Reuse issue details from the open conversation by @OrcaWin in #35546
  • Reuse search counts and cursors across GitHub work item reads by @OrcaWin in #35552
  • Share repository assignee reads across task rows by @OrcaWin in #35564
  • Update PR reviewers without extra lookups by @OrcaWin in #35575
  • Roll back a failed review thread resolve across new commits on the PR by @OrcaWin in #35653
  • Ignore a second resolve on a review thread that is already resolving by @OrcaWin in #35655
  • Keep the details of a stale lease rejection in push errors by @AmethystLiang in #36027
  • Recognize colored stale lease rejections from Git by @AmethystLiang in #36041
  • Set up Jira project sorting once per sort by @Jinwoo-H in #36107
  • Check remote branches with one Git call instead of one per remote by @nwparker in #36156

Workspaces, sidebar & everyday polish

Typed workspace names as branches again, existing remote branches you can reopen, and many Markdown and editor fixes.

  • Use the workspace name you type as its branch again by @nwparker in #35815
  • Open the existing remote branch you pick for a new workspace instead of making a new suffixed branch, on desktop, phone and remote hosts by @AmethystLiang in #34295
  • Stop keeping and rewriting about 2 MB of unused usage stats every few seconds while agents run by @nwparker in #35852
  • Show toasts above notification cards, and make the Codex ~/.codex notice a card by @nwparker in #36167
  • Remove Orca’s agent hooks and PATH entry when uninstalling on Windows by @nwparker in #35588
  • Keep agent hooks on Windows when an Orca install record names no install location by @nwparker in #35668
  • Stop Windows shortcut labels overflowing context menus by @nwparker in #35726
  • Show ⇧ for Shift in Windows and Linux shortcut labels by @nwparker in #35754
  • Highlight CMakeLists.txt as CMake by @nwparker in #35735
  • Highlight Justfile recipes, and HCL assignments on the phone by @OrcaWin in #35573
  • Keep agent rows in the sidebar ordered by when their session started, even after a long state history by @brennanb2025 in #14654
  • Release memory from oversized Markdown checks in the editor by @OrcaWin in #34798
  • Reuse folder connection checks across app state updates by @OrcaWin in #34800
  • Keep folds and horizontal scroll when you switch editor tabs by @OrcaWin in #34810
  • Keep restored reading positions separate for each file by @OrcaWin in #34816
  • Keep literal text when a citation paste falls back to plain text by @OrcaWin in #34827
  • Wait for a pause in typing before running Find in the editor by @OrcaWin in #34829
  • Accept large pastes in the editor before reading the clipboard by @OrcaWin in #34839
  • Stop idle TypeScript and JavaScript language workers separately by @OrcaWin in #34875
  • Skip repeated or abandoned syntax coloring of code excerpts by @OrcaWin in #34876
  • Open the source tab from a diff in Rich mode when Rich mode is on by @OrcaWin in #34898
  • Keep merge conflict navigation in the pane it belongs to by @OrcaWin in #34902
  • Cap how many closed editor contents Orca keeps track of by @OrcaWin in #34903
  • Cancel a paste when the file it targets changes by @OrcaWin in #34904
  • Handle file change events before reading, and share pane snapshots by @OrcaWin in #34920
  • Reuse the file snapshot when an editor opens by @OrcaWin in #34921
  • Copy gutter links from the file they belong to by @OrcaWin in #34922
  • Reuse line counts for unchanged review blocks by @OrcaWin in #34934
  • Keep notebook cell undo across cell and tab switches by @OrcaWin in #34952
  • Keep combining marks when replacing whole words by @OrcaWin in #34957
  • Keep review highlights in place after edits by @OrcaWin in #34963
  • Save delayed review notes only to the draft they belong to by @OrcaWin in #34964
  • Let Escape finish text composition inside Find instead of closing it by @OrcaWin in #34969
  • Keep the selected code when indenting by @OrcaWin in #34970
  • Keep slash and document triggers as plain text inside code by @OrcaWin in #34971
  • Find table of contents headings with extra spaces, images and document links by @OrcaWin in #34972
  • Keep Markdown completions available when another pane changes files by @OrcaWin in #34975
  • Keep Windows line endings across large pastes by @OrcaWin in #34976
  • Improve how editor pickers close, their theme, and their screen reader names by @OrcaWin in #34980
  • Keep Mermaid diagram reading positions separate between panes by @OrcaWin in #34983
  • Collect review note elements once per layout pass by @OrcaWin in #34986
  • Keep completion menus in place and keyboard-selected results visible by @OrcaWin in #34992
  • Keep small images beyond the image cache target by @OrcaWin in #34998
  • Reuse image identity while zooming by @OrcaWin in #35001
  • Keep rendered image details in sync by @OrcaWin in #35028
  • Restore a Mermaid diagram’s reading position after it renders by @OrcaWin in #35031
  • Fix notebook scroll tracking after recovering a file’s source by @OrcaWin in #35034
  • Skip Markdown structure scans when a document has no links by @OrcaWin in #35055
  • Accept source pastes before the code editor’s own handlers by @OrcaWin in #35057
  • Reject recovery files that aren’t regular files before using them by @OrcaWin in #35059
  • Stop Git metadata watchers when a workspace’s folder disappears by @brennanb2025 in #35067
  • Open the link you modifier-clicked by @OrcaWin in #35071
  • Check internal messages with less work by @OrcaWin in #35072
  • Expand collapsed sections before jumping to their content by @OrcaWin in #35075
  • Match headings with non-English characters in rich and preview modes by @OrcaWin in #35077
  • Leave Plain text code blocks unhighlighted by @OrcaWin in #35111
  • Install one code highlighting plugin per editor by @OrcaWin in #35112
  • Drop outdated code highlighting before mapping replacements by @OrcaWin in #35116
  • Keep table column widths when inserting beside selected cells by @OrcaWin in #35162
  • Keep trailing mixed-list items when outdenting by @OrcaWin in #35176
  • Parse task lists correctly under numbered parents, with wrapped markup, continuation lines and bare markers by @OrcaWin in #35187
  • Keep line breaks from modified Enter in Markdown tables by @OrcaWin in #35224
  • Release the last closed rich Markdown editor by @OrcaWin in #35227
  • Keep nested list content when leaving an empty list item by @OrcaWin in #35236
  • Cancel outdated review note position updates by @OrcaWin in #35261
  • Keep copy order across text, images and files by @OrcaWin in #35332
  • Limit how long the preview selection waits during continuous outside edits by @OrcaWin in #35373
  • Reuse Markdown parsing work across paragraph endings by @OrcaWin in #35374
  • Close native edit menus when their page goes away by @OrcaWin in #35383
  • Stop two saves of the same file from a terminal overwriting each other by @AmoabaKelvin in #35418
  • Drop pending PDF export image replies when their frame closes by @OrcaWin in #35419
  • Refuse to delete a submodule checkout before stopping its terminals by @nwparker in #35458
  • Handle late diagnostics request errors until the connection closes by @OrcaWin in #35496
  • Let you dismiss workspace auto-name failures by @nwparker in #35545
  • Skip starting file watchers for cancelled requests by @OrcaWin in #35556
  • Refresh combined diff status only for the changed path by @OrcaWin in #35570
  • Load the combined diff rows you’re looking at first and drop outdated queued loads by @OrcaWin in #35594
  • Keep combined diff contents when only file details change by @OrcaWin in #35611
  • Keep pasted chat images when saving Markdown by @OrcaWin in #35625
  • Copy local Windows paths with backslashes by @OrcaWin in #35647
  • Explain how to raise the limit when creating a worktree times out by @nwparker in #35720
  • Free the speech engine as soon as you cancel dictation by @AmoabaKelvin in #35730
  • Keep relative links working between note folders by @OrcaWin in #35743
  • Keep file links when copying and pasting rich Markdown by @OrcaWin in #35789
  • Load telemetry after the first window opens, for a faster start by @ctolkien in #35798
  • Compare workspace rows directly instead of serializing them on every write by @nwparker in #35824
  • Keep telemetry off while an environment override disables it by @nwparker in #35940
  • Never send held startup telemetry events late by @nwparker in #35949
  • Send telemetry through Orca’s network client so it follows your proxy by @nwparker in #35972
  • Name each agent in “Send notes to” by its sidebar name instead of its type by @AmoabaKelvin in #35977
  • Skip work for closed menus and batch remote sidebar order updates by @AmethystLiang in #36002
  • Stop highlighting ambiguous Unicode characters in Markdown by @AmethystLiang in #36009
  • Show a cross-host project’s header in each host section of the sidebar by @nwparker in #36012
  • Soften the file reveal flash and skip it for new views by @AmethystLiang in #36039
  • Stop restyling the whole window on every sidebar resize frame by @nwparker in #36071
  • Drop focus styles that restyled whole sections of the window by @nwparker in #36098
  • Fix six performance issues found in a scan by @nwparker in #36103
  • Forget tab choice state when a worktree is removed by @nwparker in #36165

Languages & translations

Dates and numbers in your language, plus translated error messages across the app.

  • Show dates and numbers in the UI language by @OrcaWin in #35671
  • Translate remaining copy in the task page, automations and shared components by @OrcaWin in #35413
  • Translate the right sidebar, GitHub and PR page leftovers by @OrcaWin in #35416
  • Translate plurals and remaining copy in the editor, chat, skills and onboarding by @OrcaWin in #35440
  • Translate the sidebar, status bar, tab bar and workspace cleanup copy by @OrcaWin in #35443
  • Skip reloading unchanged plugin language packs by @OrcaWin in #35602
  • Use the right plural forms for background task and subagent counts by @OrcaWin in #35605
  • Use whole-sentence translations for review labels, Open In, the delete dialog, timeline and orca.yaml trust by @OrcaWin in #35608
  • Load built-in translations once at startup by @OrcaWin in #35615
  • Translate Create project failures and shortcut warnings by @OrcaWin in #35626
  • Keep stable IDs separate from translated labels for the cleanup chip, emulator tab and CSV errors by @OrcaWin in #35627
  • Translate WSL host status details and Add refusals by @OrcaWin in #35664
  • Translate automation run skip and failure reasons by @OrcaWin in #35666
  • Translate AI text generation failures for commit, PR and Jira titles by @OrcaWin in #35669
  • Translate GitHub and GitLab operation failures by @OrcaWin in #35689
  • Translate Source Control AI settings and generation plan failures by @OrcaWin in #35697
  • Use native plurals for exact-one cases by @OrcaWin in #35702
  • Translate PR/MR start point and stacked PR creation failures by @OrcaWin in #35705
  • Translate the feature tour and feature tips by @OrcaWin in #35736
  • Translate shared validation errors, speech model, setup source and project group copy by @OrcaWin in #35737
  • Translate Mobile Emulator, PDF export and diagnostics failures by @OrcaWin in #35742
  • Translate temporary VM setup and cleanup failures by @OrcaWin in #35747
  • Translate AI Vault scan issues and chat auto-name failures by @OrcaWin in #35750
  • Translate startup failure and install-folder recovery text by @OrcaWin in #35832
  • Translate updater failure messages by @OrcaWin in #35833
  • Translate remote server pairing, host sign-in and Bitbucket connect failures by @OrcaWin in #35843
  • Translate agent output and Kimi failure messages in AI text generation by @OrcaWin in #35844
  • Translate browser cookie import failures by @OrcaWin in #35855
  • Translate pet import and repo icon upload errors by @OrcaWin in #35861
  • Translate source control remote error toasts by @OrcaWin in #35893
  • Translate remaining leftovers in submodules, agent summaries, filter counts and automations by @OrcaWin in #35914

Phone & web

Live dictation with a voice meter and a sturdier phone connection.

  • Show dictated words as you speak on the phone and insert them at the cursor by @AmoabaKelvin in #35502
  • Show a voice meter and timer while dictating on the phone, with haptics at start and stop by @AmoabaKelvin in #35500
  • Resend dictation audio lost when the phone’s connection drops by @AmoabaKelvin in #35777
  • Notice a silent connection drop within seconds while dictating on the phone by @AmoabaKelvin in #35834
  • Stop tap-mode dictation on the phone after a minute of silence by @AmoabaKelvin in #35716
  • Stop dictation and keep what you said on the first Back press on the phone by @AmoabaKelvin in #35477
  • Show when the dictation mic is starting, hold mode and screen reader state on the phone by @AmoabaKelvin in #35441
  • Give chat code, tables, quotes and diagrams a clearer layout on the phone by @AmoabaKelvin in #34456
  • Show chat images stored on the paired desktop on the phone by @AmoabaKelvin in #34462
  • Forward iOS keyboard keys and Shift+Enter by @AmoabaKelvin in #36120
  • Grow the phone chat composer as you type by @AmoabaKelvin in #36083
  • Keep live input focus and recover failed sends on the phone by @AmoabaKelvin in #36109
  • Keep long terminal and chat pastes intact on the phone by @nwparker in #31473
  • Show a live text caret and keep selection edits in phone inputs by @nwparker in #31477
  • Answer agent questions from one card on the phone, and keep long questions reachable by @nwparker in #31663
  • Keep desktop browser tabs that aren’t loaded visible and closable on the phone by @nwparker in #31665
  • Keep phone voice settings in the order you change them by @nwparker in #31691
  • Stop review notes on the phone disappearing, or coming back after you delete them by @nwparker in #31699
  • Clear terminal output on the phone only after the computer accepts Clear by @nwparker in #31703
  • Keep new browser typing on the phone when an earlier send fails by @nwparker in #31710
  • Release a closed browser pane’s pointer queue on the phone by @OrcaWin in #34825
  • Skip ranking file search results the phone no longer needs by @OrcaWin in #34837
  • Cap the phone’s file search cache after empty searches by @OrcaWin in #34841
  • Keep cached workspace rows for servers that fail to load on the phone by @OrcaWin in #34843
  • Keep the text size you pick while the phone app is still loading by @OrcaWin in #34846
  • Refuse to open PDFs from hidden pages on the phone by @OrcaWin in #34869
  • Drop outdated file preview reads and permission retries on the phone by @OrcaWin in #34872
  • Skip preparing diff replies the phone has abandoned by @OrcaWin in #34873
  • Release skill scans from old phone connections by @OrcaWin in #34949
  • Refresh custom shortcuts when you return to a session on the phone by @OrcaWin in #34951
  • Keep code, quotes and code blocks through rich Markdown edits on the phone by @OrcaWin in #35056
  • Keep table and list line breaks, item paragraphs and list code blocks when saving rich Markdown on the phone by @OrcaWin in #35259
  • Retry an expired web client connection right away by @OrcaWin in #35311
  • Release details of closed terminals on the phone by @OrcaWin in #35535
  • Stop file save follow-ups after you choose Discard on the phone by @OrcaWin in #35537
  • Skip model setup the phone no longer needs by @OrcaWin in #35540
  • Release saved storage for closed screens on the phone by @OrcaWin in #35586
  • Drop composer state for closed tabs on the phone by @OrcaWin in #35589
  • Avoid slow image marker matching on the phone by @OrcaWin in #35609
  • Fix phone terminal overlays when the terminal connects late by @AmethystLiang in #35842
  • Skip line counts when loading Source Control status on the phone by @nwparker in #36061
  • Detect dead direct connections within seconds on the phone by @AmoabaKelvin in #36112
  • Show task pages and review state accurately on the phone by @AmoabaKelvin in #36115
  • Keep shortcut swipes from sending keys on the phone by @AmoabaKelvin in #36116
  • Recover from screen errors on the phone by @AmoabaKelvin in #36121
  • Return typed terminal input to the prompt on the phone by @AmoabaKelvin in #36122
  • Update the phone’s URL decoder for a denial-of-service advisory by @nwparker in #36124
  • Explain scanned download QR codes by @AmoabaKelvin in #36128
  • Use the paired ports in firewall help by @AmoabaKelvin in #36130
  • Stop showing unavailable terminals as ready on the phone by @AmoabaKelvin in #36135
  • Batch iPhone notification dismissal writes by @nwparker in #36145

Tests, builds & maintenance

Groundwork for WSL hosts and for moving WSL projects onto them (internal, off in this build), CI on free hosted runners, more low-value tests removed, and continued native chat and Jira code organization.

All test, build and maintenance changes

New Contributors

Full Changelog: v1.4.244...v1.4.245

Don't miss a new orca release

NewReleases is sending notifications on new releases.