github stablyai/orca v1.4.205

12 hours ago

Thank you so much for using Orca and for your continued support! ❤️

Please note: It usually takes 48–72 hours for a landed PR to be released (except P0+ fixes). We have many more exciting PRs and features coming in later versions!

The short version

Agents & chat: Native chat adds a message rail for jumping between your prompts, keeps a resumed transcript pinned to its end, holds a detached reader in place as messages grow, and cancels pending prompts precisely. OMP conversations resume from session history under their saved names, agent-status ingress moves behind a single admission point, and a timed-out hook now actually terminates its process tree.

Workspaces, editor & source control: A failed archive hook blocks worktree removal instead of deleting anyway, and worktree registrations survive prunable git-file states. Stage, unstage and discard failures surface with retry, automations repair cron step expansion and stop tick latency counting against the missed-run grace, code blocks gain a copy button, and Tiptap moves up behind Markdown compatibility guards.

Terminal & remote: Terminal renames survive pane hydration, handles persist across PTY incarnation rotation, and PTY child-process checks preserve an unverifiable verdict instead of guessing. Relay failures become diagnosable by acquisition versus execution phase, and streamed remote records are bounded.

Performance: Codex usage scans do far less work — attribution resolved once per scan, and grown rollouts resumed at the last parsed byte — which takes a large cold scan from minutes to under a minute. They still run on the main process; the worker-thread move lands in a later release.


Product experience

Workspaces, tabs & editor

Safer worktree removal, clearer failure reporting, and a Tiptap upgrade with Markdown compatibility guards.

Source control

Staging failures are recoverable and Git spawn errors say what actually went wrong.

  • Surface stage, unstage and discard failures with retry capability by @AmethystLiang in #20423
  • fix(source-control): prevent text wrapping in section headers and action buttons by @AmethystLiang in #20046
  • fix(git): distinguish binary absence from missing cwd on spawn ENOENT by @AmethystLiang in #20798

Agents & workflow

Agent reliability & native chat

Chat navigation and transcript positioning improve, and agent state is reported through one ingress point.

  • fix(native-chat): bound a dispatch reason before it reaches the journal row by @brennanb2025 in #20654
  • fix(native-chat): keep a resumed transcript pinned to its end by @brennanb2025 in #20651
  • fix(codex): settle a structured send on admission, and stop minting a colliding identity by @brennanb2025 in #20138
  • fix(omp): preserve status after terminal title owner rewrite by @nwparker in #20610
  • fix(agents): find OMP by its full project name by @nwparker in #20647
  • fix(omp): preserve saved conversation names in session history by @nwparker in #20636
  • fix(agent-session): honour the backup-recovery fence floor on surface release by @brennanb2025 in #20708
  • fix(hooks): actually terminate a timed-out hook's process tree by @nwparker in #20576
  • fix(native-chat): cancel pending prompts precisely by @brennanb2025 in #20601
  • fix: resume OMP child conversations from session history by @nwparker in #20629
  • fix(ai-vault): expand nested OMP session history by @nwparker in #20663
  • fix(native-chat): let a reader park just above the latest message by @brennanb2025 in #20709
  • fix(native-chat): preserve detached transcript position during growth by @brennanb2025 in #20710
  • feat(native-chat): add a message rail for jumping between your prompts by @brennanb2025 in #20719
  • refactor(agent-status): isolate legacy status ingress behind one admission point by @brennanb2025 in #20716
  • fix(runtime): apply the tui-idle evidence ranking to mailbox delivery by @nwparker in #20578
  • fix(orchestration): require the registered pane key to prove structured worker identity by @brennanb2025 in #20664

Terminal

Renames, handles and PTY verdicts survive rotation, hydration and uncertainty.

  • fix(omp): preserve zsh startup with global aliases by @nwparker in #20621
  • fix(terminal): retain renames before renderer pane hydration by @nwparker in #20619
  • fix: keep OMP terminals when folder workspaces become Git repos by @nwparker in #20653
  • Fix PTY child process verdict to preserve unverifiable state by @AmethystLiang in #20729
  • fix(runtime): preserve terminal handles across PTY incarnation rotation by @nwparker in #20779
  • fix(pty): preserve child-process inspection uncertainty by @AmethystLiang in #20756

Mobile

Mobile continues its typed-RPC migration.

Relay & cloud

Relay failures are diagnosable by phase, and streamed remote records are bounded.

  • fix(ai-vault): bound streamed remote JSONL records by @nwparker in #20700
  • feat(runtime): stream file uploads instead of buffering whole files by @mmarabel in #16106
  • Expose preloaded PostgreSQL statement statistics for relay diagnostics by @Jinwoo-H in #20712
  • Diagnose relay PostgreSQL failures by acquisition versus execution phase by @Jinwoo-H in #20749
  • fix(relay): open the real null device when detaching Windows stdio by @nwparker in #20808

Quality & delivery

Nothing here changes what you see — it changes how smoothly Orca behaves under real workloads. Expanded below if you want the detail.

Performance improvements

Targeted optimizations remove repeated work from the Codex, OpenCode and Claude usage scanners and from no-op store updates. These reduce the cost of a scan; they do not yet move it off the main process.

Highlights include resolving each cwd's worktree once per scan rather than per event, resuming grown Codex rollouts at the last parsed byte behind a boundary digest and inode check, and preserving state identity across no-op updater paths so selectors stop re-running.

  • fix(store): stop two no-op writes from re-running every selector in the app by @OrcaWin in #20641
  • fix(store): preserve state identity across no-op updater paths by @nwparker in #20703
  • perf(usage): resolve each cwd's worktree once per scan by @Jinwoo-H in #21130
  • perf(codex-usage): resume rollout scans at the last parsed byte by @Jinwoo-H in #21102
Reliability, tests & delivery
  • fix(ci): stop hourly versions dropping below a tagged or already-shipped build by @nwparker in #20699
  • test: add a verified OMP native-chat mock scenario by @nwparker in #20655
  • test(mobile): pin each RPC golden to the recorder inputs that can reach it, not the whole directory by @Jinwoo-H in #20662
  • ci: keep the baseline Git build off the compatibility matrix lanes by @nwparker in #20733
  • fix(ci): stop defining pilot mutant tests inside a conditional by @nwparker in #20755
  • test(native-chat): split the windowing test harness out of the suite by @nwparker in #20773
  • chore(lint): add anti-slop oxlint plugin (pinned, all rules off) by @nwparker in #20726
  • chore(lint): enable anti-slop no-reduce-accumulator-copy and no-widen-then-assert by @nwparker in #20780
  • fix(lint): keep root postinstall as the sole Electron binary install owner by @nwparker in #20788
  • test(package): let the postinstall contract allow unrelated chained steps by @nwparker in #20787
  • fix(lint): enable anti-slop/no-unknown-type-aliases by @nwparker in #20784
  • refactor(lint): enable anti-slop/no-reflect-apply by @nwparker in #20782
  • fix(lint): enable anti-slop/no-module-mocking by @nwparker in #20783
  • test(package): reject an Electron install takeover by exact command by @nwparker in #20799
  • fix(lint): enable anti-slop/no-reflect-get by @nwparker in #20786
  • fix(lint): enable anti-slop/no-object-parameters by @nwparker in #20781
  • fix(lint): enable anti-slop/no-shape-in-symbol-names by @nwparker in #20785
  • fix(git): avoid Windows tree kills after the command has exited by @nwparker in #20606
  • build(release): compile the Windows relay process-table addon by @nwparker in #20809

Full Changelog: v1.4.204...v1.4.205

Don't miss a new orca release

NewReleases is sending notifications on new releases.