## stablyai/orca — v1.4.218…v1.4.219

_112 commits._

### Features
- **feat(terminal): point an old terminal's Codex shared-server banner at a new terminal (STA-9051) (#24501)** (ae8f421)
- **feat(terminal): warn when a typed Codex joins Codex's shared server (STA-9051) (#24217)** (a4f8fbc)
- **feat(secrets): warn in Settings when a credential is stored unencrypted (#24048)** (5fa290f)
- **feat(native-chat): mid-turn messages wait as editable cards above the composer (#23731)** (6b36a2c)
- **feat(settings): let Codex terminals opt back into Codex's shared server (#23929)** (a0abcb6)
- **feat(mobile): mid-turn messages wait as cards above the phone composer (#23736)** (8a38a7a)
- **feat(native-chat): one structured-chat journal database per host, owned by one process (#23613)** (59b746f)
- **feat(agents): pre-trust the folder wherever Orca starts an agent (#23744)** (21d4ae9)
- **feat(native-chat): hold mid-turn messages in a host-owned queue (#23726)** (29c49ae)
- **feat(native-chat): resuming interrupted chats runs in the status bar (#23778)** (d4530a8)
- **feat(explorer): scope file trees to sparse checkout directories (#18750)** (b18434b)

### Fixes
- **Revert "fix(markdown): return focus to editor from find bar (#23175)" (#24500)** (603b5a4)
- **fix(windows): link the CLI launcher's C runtime statically so orca.exe runs without the VC++ Redistributable** (2187c5e)
- **fix(release): accept the build identity as a later declarator in the minified telemetry check** (e41b269)
- **fix(terminal): give plain fish tabs Orca's codex function without changing fish's startup (#24284)** (9ae8e85)
- **fix(opencode): report OpenCode 2 status from each pane's own TUI (#23722)** (4a1c930)
- **fix(codex): opening a terminal no longer strips Codex hooks from the real ~/.codex (#23552)** (5e5a750)
- **fix(claude): stop Orca making a WSL user's ~/.claude.json world-readable (#23973)** (d6c08d9)
- **fix(orchestration): worker-abandon settles a stuck worker and records who did it (#23983)** (3047353)
- **fix(orchestration): stop minting and printing the dispatch capability (#23994)** (9afd110)
- **fix(orchestration): retry worker_done while the Orca runtime is briefly unreachable (#23984)** (46d6b76)
- **fix(orchestration): accept worker reports without the dispatch capability (#23982)** (e038704)
- **fix(windows): replace the managed CLI launcher with a native one (#24094)** (d2dbe2c)
- **fix(secrets): seal credentials on Linux desktops Chromium cannot detect (#24035)** (23a874a)
- **fix(runtime): treat Hermes session start as idle, not a running turn (#24064)** (f4092c0)
- **fix(claude): run Windows hooks without shell operators (#23944)** (d68a5be)
- **fix(terminal): keep the mouse report format in desktop pane snapshots so phone swipes never type escape text (#23943)** (75719bd)
- **fix(rate-limits): stop driving a hidden Codex TUI to read usage (#23806)** (59c05d3)
- **fix(chat): decode Claude pastes and report terminal delivery uncertainty (#23788)** (707d3dc)
- **Fix Chat UI paste intake and pane routing (#23784)** (5b93c62)
- **fix(mobile): start + menu, quick command and diff-note agents through agent.launch (#22954)** (ca7c14d)
- **fix(sidebar): an agent's row stays while it runs, whatever its tab title (#23948)** (fceca5c)
- **fix(codex): recognise Codex's quoted spellings in config.toml, and repair Orca's duplicates (#22592) (#23958)** (444e0b1)
- **fix(push): size the claim-attempt budget from the drain count (#24040)** (e8e09ee)
- **fix(tab-bar): keep the active tab visible when the tab strip scrolls (#24010)** (9cdbeba)
- **fix(editor): keep saved untitled notes when their tab closes (#23768)** (8b01590)
- **fix(claude): a restarted provider continues the subagent roster earlier runs journaled (#23758)** (f406874)
- **Fix typo in PR template about issue linking** (71ac7cb)
- **fix(push): run twelve delivery drains instead of four (#24038)** (5211098)
- **fix(packaging): stop shipping the relay bundles inside app.asar (#24027)** (d414033)
- **fix(push): give the push gateway six database connections per instance (#24026)** (f7025d8)
- **fix(secrets): stop telling Linux users to install a keyring they already run (#24013)** (b29947d)
- **perf(git): relist only the repo whose worktrees changed, and stop blocking main on sync git (#23998)** (b7209b5)
- **fix(terminal): attach dropped images whose filenames need escaping (#23707)** (91ab51b)
- **fix(onboarding): build the agent step around skills, not CLI registration (#22720)** (80786dd)
- **fix(terminal): release xterm's DEC 2026 render hold instead of waiting out its 1s timeout (#23920)** (fb52c06)
- **fix(runtime): stop a busy Codex 0.150-0.157 pane reading as tui-idle (#23805)** (fb67d5d)
- **fix(terminal): restore the mouse format with mouse tracking, so phone swipes don't type into Codex (#23946)** (ad2e1b5)
- **fix(claude): a Stop naming the running turn acts at once, and a Stop in the gap is no longer lost (#23861)** (9b52661)
- **fix(terminal): the terminal's owner answers colour queries for the terminal's whole life (#23925)** (59ef748)
- **fix(terminal): run Orca's cmd.exe, path-named and setup-gated Codex launches without the shared server (#23933)** (26bb7c2)
- **fix(codex): a Codex Stop is the interrupt alone, so it no longer says "Cancellation was not confirmed" (#23850)** (1aa9437)
- **fix(codex): start short-lived Codex app-servers on Windows without cmd.exe (#23830)** (7f8ca49)
- **fix(codex): trust the worktree Codex starts in, not a guessed repo root (#23937)** (9f43115)
- **fix(codex): say a full Stop wait can overrun quit's eviction budget, and don't let its timer hold the process (#23859)** (69b1e40)
- **fix(mobile): stop a closing phone stream from ending the terminal or chat feed that replaced it (#22939)** (2a001b4)
- **fix(native-chat): the draft queue follows #23524's /clear: an unfinished clear holds nothing (#23940)** (a57863b)
- **fix(mobile): the update-mobile wall opens the exact release (#23789)** (2d31941)
- **fix(mobile): count opening a cached page generation as use; cache six hosts (#23780)** (c634432)
- **fix(native-chat): an unfinished /clear or refused Codex rewind no longer locks the chat (#23524)** (134a220)
- **fix(browser): a crashed page no longer crashes Orca when its viewport is resized (#23852)** (4ebec19)
- **fix(browser): a tab's phone identity follows the viewport actually applied (#23812)** (0fd098e)
- **fix(native-chat): a failed turn ends on its error instead of folding it (#23679)** (5c59a2d)
- **fix(terminal): removing a workspace prunes that workspace's close records (#23683)** (c2517a4)
- **fix(codex): log a late reply to a timed-out request instead of showing it in the chat (#23893)** (ff59e2c)
- **fix(claude): a queued message Claude withdrew is settled from Claude's own cancelled event (#23862)** (18327d9)
- **fix(native-chat): turn facts come from the turn record, and /compact is a message the chat sends (#23059)** (d60f999)
- **fix(editor): follow system light and dark while the editor tab stays open (#23848)** (f442b16)

### Backend
- **release: v1.4.219** (e705cac)
- **Update README downloads badge** (8cc2854)
- **Set iceCandidatePoolSize to 0 in WebRTC egress probe (#23991)** (0978474)
- **Show skip reasons in terminal drop upload reports (#23951)** (3b45836)
- **Update README downloads badge** (a5c7dd9)

### Tests
- **test: retire cases subsumed by an honestly-named neighbour (#24150)** (d74388f)
- **test: retire cases whose fixture decides the outcome it asserts (#24144)** (fa3710d)
- **test: retire cases whose named dimension the production signature cannot express (#24139)** (1f8159c)
- **test: retire long-tail cases whose assertion is decided by the test itself (#24132)** (85f8d6b)
- **test: close the disclosed reading gap in agent-hooks, claude and store slices (#24126)** (0c4b336)
- **test: retire backlog cases that assert a shim, a literal, or an unread branch (#24120)** (db73d28)
- **test: retire duplicate cases that replay an owner across a re-export or provider shim (#24114)** (a781a60)
- **test: retire long-tail cases whose input cannot reach the behavior they name (#24101)** (cef66fb)
- **test: retire mobile, cloud, config and e2e cases their input cannot reach (#24077)** (b99462a)
- **test: retire renderer cases whose input cannot reach the behavior they name (#24065)** (f37a849)
- **test(e2e): read the tab strip's dock samples through a typed window field (#24052)** (7afa4ee)
- **test: retire src/main/runtime cases that re-prove an owned contract (#24043)** (c7218f2)
- **test: unit tests can no longer write a developer's real agent or Orca settings (#23979)** (5b3366f)
- **test: open, seed and read the agent-session record store through one test harness (#23986)** (75040eb)
- **test(e2e): let the completed-worker fake Codex answer the --help probe (#24033)** (c3183a4)
- **test(mobile): record RPC goldens without a pinned commit, and check recorded requests against the desktop's params rules (#23732)** (e594cb0)
- **test: retire src/main cases that replay a contract their owner already proves (#24025)** (2d85fdc)
- **test: retire relay, preload and shared cases that re-prove an owned contract (#24007)** (dcaef9d)
- **test: retire cli cases that re-run a contract the sibling already owns (#24000)** (bb874f6)
- **test: retire codex cases whose setup is inert or whose name outruns its input (#23996)** (9803967)
- **test: retire ai-vault cases whose inputs the scanner never reads (#23992)** (34d6041)
- **test: retire hook and installer cases whose guards or arithmetic cannot fail (#23981)** (33351b0)
- **test: delete the source-grep tests an earlier detector's regex missed (#23976)** (45c63a6)
- **test: delete a suite that tested only itself, and trim browser-pane duplicates (#23971)** (2aad275)
- **test: retire native-chat cases their fixtures or predicates neutralize (#23968)** (9be71d0)
- **test: retire cases whose predicates never read the varied input (#23965)** (cd63c99)
- **test: retire renderer pane and completion-cadence cases siblings already own (#23961)** (aa68003)
- **test(claude): run the real Claude CLI tests only when opted in (#23702)** (f094587)
- **test: retire browser and cookie-import cases their siblings already own (#23957)** (7fb3b90)
- **test: remove mock echoes and duplicate contracts that only reading finds (#23953)** (7980ab9)
- **test: stop restating internal tuning constants, keep the ones that are contracts (#23950)** (fed1eca)
- **test: retire the last private-predicate duplicates in the leaked-internals sweep (#23949)** (bb667a3)
- **test: retire private-predicate duplicates in the renderer (#23945)** (4855cdd)
- **test: drop private-internal and boundary-census tests with behavioral owners (#23941)** (6194a7a)
- **test: stop testing private internals through exports no caller needs (#23829)** (70475e0)

### Docs
- **docs(wechat): point community QR code at group 11 (#24050)** (f33f309)

### Chore
- **ci: sync release workflows with main for the v1.4.219 cut** (fc0bd7c)
- **refactor(native-chat): a subagent's rows live in its own section, not in the parent's conversation (#23752)** (21124db)
- **refactor(shared): bring constants.ts back under the max-lines limit (#23923)** (2807332)

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