github stablyai/orca v1.4.204

13 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 file drag-and-drop and provider-aware Fast mode, resumes structured chats cleanly after restart, hides idle activity, and fixes tail-read cursor and Claude-turn reopening; Grok completion/hook attribution and Claude SessionEnd handling are more correct, and agent status keys rows by agent instead of pane.

Workspaces & mobile: Workspaces re-seed after agent selection, recover from activation failures, and retire orphaned chat tabs; mobile continues the typed-RPC migration across settings, source-control, and workspace creation while preserving delivery and fixing streaming jumps.

Performance: Orca batches terminal file-link checks, dispatches browser input in-process, avoids repeated remote capability probes, skips redundant persistence flushes, and bounds WSL skill discovery.


Product experience

Workspaces, tabs & browser

Safer workspace recovery, more responsive browser input, and clearer project views.

  • fix(worktrees): retire the chat tab of a chat with no child when its workspace goes by @brennanb2025 in #19970
  • fix(browser): press keys through a US-layout CDP key table instead of a subprocess per keystroke by @atreidesend in #15310
  • fix(workspaces): re-seed a gate-reported empty workspace after an agent selection by @brennanb2025 in #20182
  • fix(workspaces): recover a real terminal when activation throws for a planless agent create by @brennanb2025 in #20190
  • fix(github): name an unfiltered empty project view instead of blaming a filter by @nwparker in #20588

Agents & workflow

Agent reliability & native chat

Chat adds drag-and-drop and Fast mode, recovers more gracefully, and reports agent state more accurately.

  • fix(native-chat): wait for the runtime capability probe before resolving the creation launch route by @brennanb2025 in #19819
  • feat(ai-vault-search): public session search contract and transports by @Jinwoo-H in #20277
  • fix(tasks): preserve repository results under GitHub search quota by @OrcaWin in #20460
  • fix(ai-vault): stream oversized remote session transcripts by @OrcaWin in #20455
  • fix(grok): stop replayed Claude/Cursor hooks reporting Grok panes as Claude by @brennanb2025 in #20507
  • feat(native-chat): support file drag and drop by @brennanb2025 in #20494
  • refactor(attention): move the agent attention boundary off terminal panes by @brennanb2025 in #20525
  • fix(grok): defer managed hook pane guard expansion to shell by @brennanb2025 in #20534
  • refactor(orchestration): derive delivery eligibility from messages by @Jinwoo-H in #19837
  • fix(grok): announce a completion once, when Grok is actually finished by @brennanb2025 in #20523
  • feat(native-chat): add provider-aware Fast mode by @brennanb2025 in #20506
  • fix(claude): subscribe to SessionEnd on capable versions, and correct a false comment by @brennanb2025 in #20530
  • feat(agent-status): run-identity types for keying rows by agent instead of pane by @brennanb2025 in #20531
  • fix(hooks): report a timed-out hook as unverifiable and terminate its process tree by @nwparker in #20559
  • fix(session-search): read oversized numeric file IDs on Windows by @OrcaWin in #20551
  • feat(native-chat): show a drop target on the whole chat pane by @brennanb2025 in #20561
  • fix(native-chat): let the provider reopen a Claude turn it resumed itself by @brennanb2025 in #20518
  • fix(native-chat): resume structured chats cleanly after restart by @brennanb2025 in #20509
  • fix(ai-vault): ignore non-absolute env overrides for agent scan roots by @manuaudio in #13118
  • fix(grok): stop SessionStart orca-status hook hanging for 10s by @bjornrun in #20090
  • fix(native-chat): stop a bounded tail read from moving the chat cursor past unapplied rows by @brennanb2025 in #20581
  • feat(ai-vault-search): construct the session search indexer in the scanner service behind a setting by @Jinwoo-H in #20516
  • fix(native-chat): hide activity while awaiting input by @brennanb2025 in #20496

Mobile

Mobile continues its typed-RPC migration while keeping delivery and streaming stable.

  • refactor(mobile): migrate settings reads to RpcOperation by @Jinwoo-H in #20499
  • fix(mobile): give native chat one tail-follow owner so streaming stops jumping by @brennanb2025 in #20493
  • fix(mobile): preserve delivery ambiguity across transport cutover by @Jinwoo-H in #20280
  • test(mobile): consolidate the RPC migration's verification infrastructure by @Jinwoo-H in #20521
  • refactor(mobile): send the source-control domain through typed RpcOperations by @Jinwoo-H in #20544
  • fix(mobile): two known main bugs the RPC migration preserved by @Jinwoo-H in #20563
  • test(mobile): pin each RPC golden to its own scenario input, not the whole manifest by @Jinwoo-H in #20562
  • refactor(mobile): send the task workspace-creation domain through typed RpcOperations by @Jinwoo-H in #20568

Relay & cloud

Probes and identity validation have tighter bounds and failure handling.

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 reduce unnecessary work across terminal, browser, remote, persistence, and skill-discovery paths.

Highlights include batched terminal file-link checks on their owning host, in-process browser pointer dispatch, fewer remote capability probes during file imports, skipped redundant whole-state flushes on terminal reattach, and bounded WSL skill discovery.

  • perf(terminal): batch file-link checks on their owning host by @OrcaWin in #20463
  • perf(skills): bound WSL installed skill discovery by @PPP-JH in #12314
  • perf(remote): avoid repeated capability probes during file imports by @dngur6344 in #14555
  • perf(persistence): skip redundant whole-state flushes on terminal reattach by @AmethystLiang in #20137
  • perf(browser): dispatch coordinate pointer input in process instead of one subprocess per event by @nwparker in #20593
Reliability, tests & delivery
  • fix(runtime): reject malformed file Base64 padding by @Jinwoo-H in #20283
  • fix: show unexpected signout notice only once across versions by @Jinwoo-H in #20526
  • fix(auth): report callback failures instead of cancellation by @Jinwoo-H in #20535
  • fix(git): skip upstream remote probes when the remote is absent by @innocarpe in #18455
  • fix(terminal): drop the agent gutter from copied selections (#19770) by @nwparker in #20545
  • fix(pty): pace the EAGAIN write retry so a stalled reader can't saturate the daemon thread by @nireak in #15319

New contributors

Full Changelog: v1.4.203...v1.4.204

Don't miss a new orca release

NewReleases is sending notifications on new releases.