## stablyai/orca — v1.4.220…v1.4.221

_278+ commits._

### Features
- **feat(codex): tell Windows users once that Codex in Orca now shares ~/.codex (#24916)** (8d87d2c)
- **feat(csv-viewer): detect semicolon-separated CSVs (#19894)** (f62bd7d)
- **Add keyboard shortcut for child workspaces** — Users can now assign an optional keyboard shortcut to toggle the visibility of nested child workspaces, providing keyboard-based access to the same action as clicking the "N children" chip on a worktree card. The shortcut targets the hovered worktree or the active one if nothing is hovered. (9207aef)
- **Skip new legacy file inventories after mobile search cleanup (#24792)** (e1b046a)
- **Skip new mobile toast work after feedback owner cleanup (#24759)** (1de8396)
- **feat(native-chat): a Claude subagent waiting on a permission prompt reads as waiting (#22634)** (2bd656c)
- **Add host-owned OpenCode and Devin managed account profiles (#24636)** (c2dba12)
- **feat(cli): configure external worktree visibility per repo** (bde1c09)
- **feat(cli): add --unread/--read to orca worktree set** (2fc517c)
- **feat(native-chat): open structured chats on the paired Orca server that owns the workspace (#24205)** (8dc16a7)
- **feat(jcode): evidence-backed status pipeline (turn_start, live pre_tool, questions)** (2ca85d2)
- **feat(jcode): add Jcode as a supported TUI agent with managed hooks** (4049e63)
- **Support real OpenCode sessions in native Chat (#24647)** (a2896f5)
- **feat(sidebar): include folder workspaces in keyboard navigation** (7b8498b)
- **feat(cli): link GitHub and GitLab items on worktree create and set** (c1d403a)
- **feat(documents): open CSV and TSV files from the OS** (130b2ef)

### Fixes
- **Fix legacy worker recovery snapshot timing for rollback safety (#25413)** (27d1ffe)
- **fix(codex): stop prompting a Codex restart when only its home changed (#25421)** (154497f)
- **fix(orchestration): accept max and ultra effort for Codex models Orca does not list yet (#25375)** (f96deb9)
- **fix(local-builds): record daemon protocol v40 in the local build compatibility contract** (10b8cc8)
- **fix(daemon): bump the terminal daemon protocol to v40** (d4ac58c)
- **fix(jcode): report missing and outdated managed hooks (#25135)** (95753a1)
- **fix(codex): keep Orca-only MCP servers when refreshing the retained shared home (#24983)** (0f9bc5a)
- **fix(opencode): keep overlay manifest cleanup inside owned directories (#24763)** (8c61730)
- **fix(opencode): submit admitted native startup briefs without overwriting input (#24762)** (e8310d5)
- **Fix ripgrep result completeness, filename handling, and search errors (#25156)** (58bd15f)
- **Secure Copilot config file permissions** — Fixed a security issue where the Copilot config file (~/.copilot/config.json) could become readable by other local users when marking a folder as trusted. The file now always stays owner-only (readable only by the user), preventing accidental exposure of Copilot tokens on shared systems like SSH hosts. (2576783)
- **Fix Markdown Find editor focus** — Fixed an issue where using Find in the Markdown editor would incorrectly move the text cursor or scroll position. The editor now preserves your selection and view position when searching, and properly restores them when you interact with the editor or search box. (8267b57)
- **fix(search): negotiate supported agents across mixed host versions (#25009)** (136b990)
- **fix(packaging): ship serve-sim only in macOS builds (#25128)** (94f5669)
- **fix(opencode): finish status installation with invalid TUI settings (#25031)** (4ea021f)
- **fix: remove managed profiles through canonical UUID paths (#25126)** (2b1acd0)
- **Fix admission of later Claude question rows and real CLI verification (#25119)** (3575895)
- **fix(updater): keep macOS Orca open when background instances block updates (#24952)** (8cd9751)
- **fix(cli): orca file open opens PDFs and other binaries like the File Explorer (#24445)** (c5d298a)
- **fix(source-control): generate PR details before Create PR on a ready branch (#24215)** (bbafca4)
- **fix(jira): search plain text when task search input isn't JQL (#22900)** (ee84608)
- **fix(source-control): default Codex to GPT-5.6 Terra low (#24495)** (1d010ce)
- **fix(ci): wait for the fragment navigation policy report (#25017)** (b601b98)
- **fix(opencode): keep shared-session TUI activity with its owning pane (#24962)** (5e65871)
- **fix(git): preserve SSH review context and worktree ownership (#24945)** (6245192)
- **fix(jcode): harden Windows hooks and negotiate remote history (#24998)** (aca2d51)
- **perf(git): reuse queries and stop canceled catalog scans (#24923)** (a40e501)
- **fix(jcode): decompose the four files jcode pushed over max-lines** (af4c3e2)
- **fix(jcode): register in main's remote-installer guard, drop our duplicate** (84d246b)
- **fix(text-generation): refuse an oversized argv prompt on Linux too** (154b2fd)
- **fix(jcode): quote the managed hook path, drop tools from patch prompts** (4c2cb3c)
- **fix(jcode): read the journal once per turn, key prompts by byte offset** (fe76440)
- **fix(jcode): address CodeRabbit review on #22539** (a7b9358)
- **fix(jcode): narrow dynamic reads with predicates, pin the Windows hook shape** (4f2007a)
- **fix(jcode): stop the OSC color skip from crashing every pane connect** (7fb201f)
- **fix(jcode): pre-warm the per-pane daemon so a cold runtime dir cannot time out** (33cab24)
- **fix(jcode): show the prompt in agent rows instead of jcode's repainting title** (5ab36cc)
- **fix(jcode): keep finished-turn detail so completion notifications fire** (5b43e20)
- **fix(jcode): register vault fixture, dynamic model discovery, script refresher** (6164d3f)
- **fix(editor): keep chat visible after closing Markdown tabs** (8ccc336)
- **fix(repos): keep active clone dialog open on outside clicks** (752dbc9)
- **fix(monaco): highlight Svelte block closers inside markup** (df9acd8)
- **Fix word wrap for both panes in side-by-side diffs** (a5f28f2)
- **fix(cursor): run local hooks through sh for non-POSIX login shells** (8919f3d)
- **fix(startup): read a nushell login PATH from $env.PATH** (98a6d20)
- **Fix Ctrl+M in Linux and Windows terminals** (f113d35)
- **fix(build): turn off MSBuild file tracking for Windows native rebuilds** (126f709)
- **Fix Project Settings targeting for multiple local checkouts** (5f5c266)
- **fix(editor): don't throw closing a stale active file** (9f5c520)
- **fix(keybindings): record and match Option+digit shortcuts on macOS** (0f1bbce)
- **fix(cli): preserve primitive success results in JSON output** (c39f5f2)
- **fix(orchestration): allow model selection for OMP workers** (4f46f5b)
- **fix(terminal): show actionable copy for missing folder workspace paths** (8c4d63e)
- **fix(runtime): reclaim temp files orphaned by interrupted mobile store writes** (6565a3f)
- **fix(persistence): preserve projectGroupOrder on restart for flat folder-scan groups** (81e69f3)
- **fix(source-control): generate clean OpenCode messages locally and over SSH (#24613)** (fa2d50f)
- **fix(editor): recognize Ruby task and configuration files** (97fd7ed)

### UI
- **Downloads badge updated to 91m** — The README downloads badge has been refreshed to reflect the latest download count, increasing from 90 million to 91 million downloads. (b1b78b4)
- **Fix issue edits staying in correct fork** — Fixed a bug where issue details and edits were not properly tied to the repository a user opened, causing cross-contamination between forks and upstream repos with the same issue number. Also resolved a separate issue where assignee selection would leak across issues and failed edits would incorrectly repaint other issues. (ce07786)

### Backend
- **release: v1.4.221** (9dd8812)
- **Delete docs/reference/jcode-hook-events.md (#25288)** (a5b8b7e)
- **Pass wrapped OpenCode run prompts as positional messages (#25001)** (ea6a6d6)
- **Verify shared preflight selection and record full unit timings (#25239)** (d77c570)
- **Preserve Windows SSH upload failures unless pwsh is missing (#25185)** (5389925)
- **Clean up retired OpenCode configuration copies safely (#25222)** (70cf912)
- **Reduce test deadline waits and exact byte comparison costs (#25187)** (87bc51d)
- **Keep Orca CLI first after shell startup (#25130)** (d9173ff)
- **Share PR preflight setup to reduce runner demand (#25150)** (c4e8735)
- **Reuse buffer cells during terminal cursor context scans (#25161)** (b407d06)
- **Speed up terminal test execution** — Optimized test performance for terminal serialization and parity checks by reducing overhead in cell descriptor comparisons, chunk processing, and frame equivalence testing—achieving 25–77% faster test runs while maintaining all validation coverage and output correctness. (2b3b692)
- **Optimize test runtime and fixtures** — Refactored test suites to avoid redundant runtime imports and streamlined recovery fixture seeding, reducing test execution time by 38-91% across different test cohorts. Tests now import terminal modules directly instead of initializing the full runtime service, and recovery tests seed database fixtures once and reuse them efficiently. (ffd23fe)
- **Improved Markdown file filtering** — Updated the file listing logic to more precisely filter for Markdown files by their extensions rather than matching all files, reducing unnecessary processing and improving performance when scanning for Markdown documents. (f8081c5)
- **Speed up CI test suite** — Optimized internal test fixtures to run faster by replacing diagnostic pauses with gated contention checks and scoped transcript timers. The store retention tests now use a more efficient oracle, and Git admission tests use real budget saturation instead of long sleep delays, reducing overall CI runtime by 50-96% on affected test suites. (d5bb69d)
- **Detect OpenCode plugin capabilities** — Added detection logic to probe the execution host's OpenCode CLI version and launch capabilities, ensuring the correct plugin exports are selected based on what the host binary supports. This includes new environment variable handling for plugin API versions and improved WSL environment matching. (5a2aa87)
- **Speed up file inventory scanning** — Optimized file scanning performance by eliminating duplicate ripgrep searches when building complete file inventories. This reduces unnecessary system calls and improves the speed of operations that need to catalog all files in a repository. (3cc5e1d)
- **Preserve OpenCode reasoning and recorded patches in native history (#24790)** (f199a20)
- **Retain browser feedback notes across navigation and reload** (3284b4c)
- **Recover working local forge CLIs behind broken PATH launchers** (e5ba597)
- **Recognize Build terminals and preserve Windows confirmation key routing** (af13da5)
- **Preserve saved account credentials after enrollment errors (#25059)** (5df67ef)
- **Cancel review animations and timers when the Markdown preview closes (#24644)** (92965f3)
- **Check daemon idle state without building discarded terminal inventories (#24749)** (60b1664)
- **Release completed updater setup timers and callbacks (#24920)** (73904fc)
- **Discard completed AI Vault cancellation IDs in the relay worker (#24820)** (759c48c)
- **Delete unreturned clipboard cache files after a failed write (#24599)** (0619462)
- **Avoid restarting error timers after mobile relay pairing closes (#24568)** (831710c)
- **Avoid restarting error timers on closed mobile relay links (#24567)** (4498e09)
- **Release relay handshake timers when a host connection leaves (#24554)** (24580c7)
- **Release terminal side effects after they have been delivered (#24548)** (86b2dd6)
- **Cancel terminal preview fit frames when the preview closes (#24712)** (eee19ac)
- **Cancel pending cursor updates when a terminal closes (#24566)** (cf43dd1)
- **Avoid Resource Manager renders when terminal removal leaves its inventory unchanged (#24806)** (a436aab)
- **Select the latest stable release tag in one pass (#24786)** (b5db0ad)
- **Avoid rescanning shared chunks in the plain Node build guard (#24717)** (b5814d0)
- **Prepare the Activity search query once per filtered list (#24701)** (f1e6aea)
- **Reuse prepared statements for internal worker checks (#24573)** (caf8078)
- **Avoid cloning terminal agent owners twice in relay listings (#24713)** (558c10f)
- **Release waiting terminal output when a mobile subscription fails to start (#24547)** (8b1dc63)
- **Reuse the ancestor path while building mobile agent rows (#24539)** (4fdf6df)
- **Replace agentArgsOverride with unified removeAgentArgs approach (#25091)** (9eb73a6)
- **Turn desktop notifications on or off per machine (#24518)** (752871b)
- **Update README downloads badge** (fd030c4)
- **Wait for OpenCode worker input before the first dispatch (#24601)** (88e9517)
- **Read OpenCode Go usage from the selected account (#24770)** (786a040)
- **Allow cold node-pty setup on Windows ARM CI (#24997)** (0e36159)
- **Reuse measured Electron preparation for current Terminal Perf refs (#24968)** (668d6d4)
- **Drain removal fixture jobs before resetting and deleting their records (#24977)** (ec47f0c)
- **Normalize base source once while checking changed-code diagnostics (#24557)** (4a5f00f)
- **Honor typed starting numbers in chat ordered lists** (44c584e)
- **Show loaded file changes before deleting a workspace** (f255574)
- **Speed up large Markdown Find and render oversized tables (#24948)** (b332742)
- **Stop building unused import candidates in the test planner (#24611)** (cca14bd)
- **Reuse event byte sizes when relay watchers notify several clients (#24558)** (0afc7b1)
- **Stop copying every retained browser page before attachment (#24553)** (1c8d281)
- **Avoid irrelevant scroll-action searches in Mac snapshots (#24731)** (832caea)
- **Decode single-piece saved-session tails without copying them (#24632)** (9e11375)
- **Skip renderer callbacks after their request has ended (#24631)** (d2c9636)
- **Check each project repository once while filtering mobile cards (#24540)** (ebe7702)
- **Collect test-selection evidence when full unit tests fail (#24955)** (f93808d)
- **Let retired-cache GC observations settle across the existing six-turn budget (#24967)** (30e0cca)
- **Update README downloads badge** (36d0086)
- **Reuse the parsed notification when leasing a push delivery (#24645)** (3b13282)

### Tests
- **test(windows): record native PTY stress lifecycle milestones (#25042)** (995715b)
- **test(e2e): require exact Linux package tokens (#24995)** (1001118)
- **test(jcode): pin the tool-profile flag in the generation plan too** (07d8aff)
- **test(jcode): drop the wall-clock gate assertion** (888e3c4)
- **test(jcode): measure the gate against the synchronous path, not the clock** (2c04f79)

### Docs
- **docs: update Android APK links to 0.0.52 (#25107)** (44b955b)
- **docs: reference local orca.yaml and .worktreeinclude** (6486624)
- **docs(terminal): explain local macOS/Linux shell startup files** (c792386)

### Chore
- **ci: sync release workflows with main for the v1.4.221 cut** (db30aba)
- **ci: run the cross-version tests when the chat send builders or the RPC request path change (#25061)** (1dc6157)
- **refactor(orchestration): one function for six agent-to-agent sends (#24901)** (0c4e26e)
- **refactor(jcode): fold three reverse-scan copies into one, reuse the shared hook POST** (0a45ad5)

_Recap by [Repo Wrapped](https://repowrapped.com/gh/stablyai/orca?utm_source=github-action)._