What's Changed
- fix: show unexpected signout notice only once across versions by @Jinwoo-H in #20526
- test(mobile): consolidate the RPC migration's verification infrastructure by @Jinwoo-H in #20521
- 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
- fix(auth): report callback failures instead of cancellation by @Jinwoo-H in #20535
- perf(skills): bound WSL installed skill discovery by @PPP-JH in #12314
- fix(git): skip upstream remote probes when the remote is absent by @innocarpe in #18455
- refactor(orchestration): derive delivery eligibility from messages by @Jinwoo-H in #19837
- fix(ssh): bound relay incumbent lsof probe by @kaluli123123 in #18304
- perf(remote): avoid repeated capability probes during file imports by @dngur6344 in #14555
- 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
- refactor(mobile): send the source-control domain through typed RpcOperations by @Jinwoo-H in #20544
- perf(persistence): skip redundant whole-state flushes on terminal reattach by @AmethystLiang in #20137
- 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(terminal): drop the agent gutter from copied selections (#19770) by @nwparker in #20545
- fix(session-search): read oversized numeric file IDs on Windows by @OrcaWin in #20551
- 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
- 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(github): name an unfiltered empty project view instead of blaming a filter by @nwparker in #20588
- 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
- perf(browser): dispatch coordinate pointer input in process instead of one subprocess per event by @nwparker in #20593
- fix(pty): pace the EAGAIN write retry so a stalled reader can't saturate the daemon thread by @nireak in #15319
- 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
- fix(native-chat): stop a bounded tail read from moving the chat cursor past unapplied rows by @brennanb2025 in #20581
- refactor(mobile): send the task workspace-creation domain through typed RpcOperations by @Jinwoo-H in #20568
- 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
- Bump mobile app.json to 0.0.50 by @brennanb2025 in #20661
- 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
- Surface stage, unstage and discard failures with retry capability by @AmethystLiang in #20423
- Add copy button to code blocks by @AmethystLiang in #20357
- fix(source-control): prevent text wrapping in section headers and action buttons by @AmethystLiang in #20046
- fix(store): stop two no-op writes from re-running every selector in the app by @OrcaWin in #20641
- fix(ai-vault): bound streamed remote JSONL records by @nwparker in #20700
- fix(ci): stop hourly versions dropping below a tagged or already-shipped build by @nwparker in #20699
- fix(store): preserve state identity across no-op updater paths by @nwparker in #20703
- fix(codex): settle a structured send on admission, and stop minting a colliding identity by @brennanb2025 in #20138
- test: add a verified OMP native-chat mock scenario by @nwparker in #20655
- fix(omp): preserve status after terminal title owner rewrite by @nwparker in #20610
- fix(omp): preserve zsh startup with global aliases by @nwparker in #20621
- fix(git): avoid Windows tree kills after the command has exited by @nwparker in #20606
- fix(terminal): retain renames before renderer pane hydration by @nwparker in #20619
- fix(agents): find OMP by its full project name by @nwparker in #20647
- feat(runtime): stream file uploads instead of buffering whole files by @mmarabel in #16106
- fix(omp): preserve saved conversation names in session history by @nwparker in #20636
- fix(ui): contain idle caret paint so agent panes stop burning CPU by @innocarpe in #10554
- Expose preloaded PostgreSQL statement statistics for relay diagnostics by @Jinwoo-H in #20712
- fix(runtime): apply the tui-idle evidence ranking to mailbox delivery by @nwparker in #20578
- 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(worktrees): safely remove prunable git-file registrations by @nwparker in #20617
- fix: keep OMP terminals when folder workspaces become Git repos by @nwparker in #20653
- 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(composer): clarify failed attachment drops by @AmethystLiang in #20704
- fix(deps): migrate Tiptap security updates with Markdown compatibility guards by @OrcaWin in #19376
- Distinguish pane load failures from empty states by @AmethystLiang in #20735
- Diagnose relay PostgreSQL failures by acquisition versus execution phase by @Jinwoo-H in #20749
- test(mobile): pin each RPC golden to the recorder inputs that can reach it, not the whole directory by @Jinwoo-H in #20662
- Fix PTY child process verdict to preserve unverifiable state by @AmethystLiang in #20729
- 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
- fix(native-chat): let a reader park just above the latest message by @brennanb2025 in #20709
- feat(design-system): gate renderer UI with @shadcn/lint by @nwparker in #20731
- 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
- fix(worktrees): preserve unverifiable disk witness by @AmethystLiang in #20713
- 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(runtime): preserve terminal handles across PTY incarnation rotation by @nwparker in #20779
- fix(orchestration): require the registered pane key to prove structured worker identity by @brennanb2025 in #20664
- 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(pty): preserve child-process inspection uncertainty by @AmethystLiang in #20756
- 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(git): distinguish binary absence from missing cwd on spawn ENOENT by @AmethystLiang in #20798
- fix(lint): enable anti-slop/no-module-mocking by @nwparker in #20783
- Improve microphone permission errors and drop failure reporting by @AmethystLiang in #20801
- Report clipboard and composer drop failures by @AmethystLiang in #20795
- test(package): reject an Electron install takeover by exact command by @nwparker in #20799
- fix(worktree): block removal when the archive hook fails by @nwparker in #20153
- fix(lint): enable anti-slop/no-reflect-get by @nwparker in #20786
- fix(relay): open the real null device when detaching Windows stdio by @nwparker in #20808
- build(release): compile the Windows relay process-table addon by @nwparker in #20809
- fix(automations): repair cron step expansion and day restriction [HELD — semantic half] by @nwparker in #20202
- 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(automations): stop tick latency counting against the missed-run grace by @nwparker in #20819
- refactor(mobile): migrate the small domains onto RpcOperation (step 4) by @Jinwoo-H in #20705
- refactor(agent-status): isolate legacy status ingress behind one admission point by @brennanb2025 in #20716
- refactor(mobile): send the github.* PR surface and the diff-review loaders through typed RpcOperations by @Jinwoo-H in #20668
- refactor(mobile): send the transport pairing and status domain through typed RpcOperations by @Jinwoo-H in #20667
- refactor(mobile): send the task provider, detail and board domains through typed RpcOperations by @Jinwoo-H in #20685
- refactor(mobile): send the dictation, terminal, notification and browser domains through typed RpcOperations by @Jinwoo-H in #20702
- fix(lint): avoid reflective status entry reads by @Jinwoo-H in #20872
- refactor(agent-launch): make the launch-mode decision surface-neutral by @brennanb2025 in #19848
- fix(crash-reporting): stop periodic emitters from evicting the crash trail by @OrcaWin in #20639
- fix(native-chat): replace the raw question tool row with an awaiting-input row by @brennanb2025 in #20724
- fix(lint): replace Reflect.get with typed property access in mounting substitutes by @brennanb2025 in #20874
- test(native-chat): widen real-timer waitFor budget in agent-session-wire handoff tests by @brennanb2025 in #20880
- fix(mobile): retire a structured operation id the host has refused by @brennanb2025 in #20868
- fix(lint): merge duplicate type imports in the mobile RPC recorder adapters by @Jinwoo-H in #20895
- fix(native-chat): release sessions after provider root exit by @brennanb2025 in #20502
- test(mobile): record the real worktree catalog snapshot result in the RPC recorder by @Jinwoo-H in #20873
- test(mobile): mount screens, declared device stores and declared OS state in the RPC recorder by @Jinwoo-H in #20884
- fix(cli,relay): stop reading an unsignalable pid as a dead one (+ unverifiable-collapse sweep result) by @nwparker in #20098
- fix(ssh): corroborate an empty lsof answer before calling an endpoint free by @nwparker in #20585
- fix(worktrees): route unstamped local worktrees local in the two states #16841 still fails closed by @LesleyMurfin in #16829
- fix(worktree): keep a WSL checkout case so delete cannot take the twin branch by @nwparker in #20273
- fix(worktree-create): prioritize creation Git and defer background preparation by @Jinwoo-H in #20722
- feat(agent-status): add the canonical store and child-work contract by @brennanb2025 in #20717
- refactor(mobile): send the rest of the session domain through typed RpcOperations (step 4) by @Jinwoo-H in #20891
- fix(e2e): fabricate runtime-host health through the snapshot that owns it by @brennanb2025 in #20762
- fix(terminal): let a runtime-created Windows terminal BE the requested shell by @nwparker in #20825
- feat(agent-launch): one executor for agent launches, exposed as agent.launch by @brennanb2025 in #19849
- fix(claude): single-own turn identity so Stop reaches a provider-opened turn by @brennanb2025 in #20794
- fix: highlight bash fences in Markdown source mode by @100space in #20592
- fix(lint): merge the duplicate agent-status contract type imports by @brennanb2025 in #20907
- refactor(mobile): send the device-state holdouts through typed RpcOperations (step 4, wave 3) by @Jinwoo-H in #20915
- refactor(mobile): own the request/cache lifecycle in GenerationScopedRequestOwner, piloted on the legacy file inventory (step 5) by @Jinwoo-H in #20914
- refactor(mobile): send six screen-mounted call sites through typed RpcOperations (step 4, wave 3) by @Jinwoo-H in #20919
- test(mobile): let the RPC recorder open a subscription and script its frames (step 6 capability) by @Jinwoo-H in #20920
- feat(mobile): clarify the notification opt-in screen by @Jinwoo-H in #20930
- fix(computer-use): reap detached macOS helper processes on teardown by @nwparker in #20926
- refactor(daemon): consolidate snapshot-safe listener delivery by @nwparker in #20945
- fix: name the id-kind mismatch when --ack is given a message id by @kaluli123123 in #15743
- refactor(agent-launch): retire the duplicate worker-start mode decision by @brennanb2025 in #20911
- perf: always show project names and remove notification scans by @Jinwoo-H in #20931
- Remove agent map from dashboard popout by @AmethystLiang in #20929
- fix(claude): judge Stop against the turn the journal published by @brennanb2025 in #20921
- fix(settings): keep integration connect dialog drafts on backdrop click by @AmethystLiang in #20932
- fix(settings): preserve multiline proxy bypass rules by @AmethystLiang in #20957
- Virtualize automations run history table for large histories by @AmethystLiang in #20916
- fix(linear): show 'Cannot verify' when skill scan is inconclusive by @AmethystLiang in #20964
- refactor(mobile): send the subscription-gated holdouts through typed RpcOperations (step 6, migration 1) by @Jinwoo-H in #20954
- Stop reading the terminal arguments field on the structured chat route by @brennanb2025 in #20944
- docs: remove unavailable diff shortcuts by @OrcaWin in #20974
- fix(editor): preserve Markdown scroll after image layout by @nwparker in #20956
- Fix browser viewport presets incorrectly scaled by UI zoom by @AmethystLiang in #20962
- fix(codex): remove redundant Windows hook launcher for Unicode profiles by @nwparker in #20952
- fix(sidebar): keep the Projects filter when a project is added by @OrcaWin in #20987
- Native chat keeps scrolling to bottom by @AmethystLiang in #20898
- fix(ci): run static analysis for every tree the repo-wide audits scan by @brennanb2025 in #20918
- feat(agent-status): route structured sessions through canonical ownership by @brennanb2025 in #20718
- feat(session-history): add local search settings and index controls by @Jinwoo-H in #20582
- feat(cli): orca search over the agent session index by @Jinwoo-H in #20514
- fix(ai-vault): say OpenCode-in-WSL is not searchable from Windows yet by @Jinwoo-H in #20971
- feat(session-search): add panel search and opt-in consent (PR7) by @Jinwoo-H in #20580
- fix(session-search): keep the index status honest while a sweep has a backlog by @Jinwoo-H in #20753
- fix(session-search): try phrase and AND routes for prose queries before OR by @Jinwoo-H in #20754
- fix(session-search): index OpenCode SQLite sessions by @Jinwoo-H in #20870
- fix(ai-vault): index Codex agent replies whose content blocks are typed Text by @Jinwoo-H in #20763
- feat(session-search): merge all-computers search across hosts by @Jinwoo-H in #20670
- feat(cli): show orca search now the settings toggle ships by @Jinwoo-H in #20677
- feat(session-search): search every computer from the history panel by @Jinwoo-H in #20885
- feat(session-search): enable indexing on paired servers from a client by @Jinwoo-H in #20886
- fix: name the notification project by the worktree's own host by @Jinwoo-H in #20958
- test: add accumulated-workspace terminal typing reproduction by @Jinwoo-H in #20934
- fix(browser): make the browser identity one process-wide choice (#13822) by @brennanb2025 in #20767
- feat(settings): connected computers rows for session history indexing by @Jinwoo-H in #20887
- refactor(mobile): checked reply readers for the source-control domain (step 7 pilot) by @Jinwoo-H in #20950
- test(mobile): repin the recording baseline to main after #20950 by @Jinwoo-H in #21065
- test(agent-status): pin each legacy-bypass detector to its own case by @brennanb2025 in #21004
- fix(native-chat): deliver queued messages while the chat pane is hidden by @brennanb2025 in #20659
- feat(relay): count failed cell-inventory lock acquisitions by @Jinwoo-H in #21067
- fix(skills): keep computer-use off filesystem and shell tasks by @Jinwoo-H in #21069
- docs(contributing): state what a PR description must cover by @brennanb2025 in #21080
- fix(mobile): open native chat when a new worktree launches a default agent by @brennanb2025 in #19850
- docs(native-chat): record why the question answer row has no slash grammar by @brennanb2025 in #21084
- test(mobile): repin the recording baseline to main after #19850 by @Jinwoo-H in #21092
- Make CLI reveal labels translatable by @OrcaWin in #21079
- fix(github): accept Enterprise Managed User logins in owner slug validation by @gon2gon2 in #20450
- fix(e2e): stabilize flaky E2E tests against timing races by @AmethystLiang in #20900
- test(mobile): recorder follow-ups — write ordinal, teardown streams, context anchor, salvage observation, provider pass-through, React draw by @Jinwoo-H in #21088
- feat(settings): choose the default terminal shell by @nwparker in #21085
- test(mobile): repin the recording baseline to main after #21088 by @Jinwoo-H in #21105
- fix(native-chat): count a turn from the send that opened it by @brennanb2025 in #21086
- fix(cloud-auth): keep Sign in clickable during a pending browser wait by @Jinwoo-H in #21078
- docs(native-chat): correct why a slash command is inert in the answer row by @brennanb2025 in #21111
- refactor(agent-launch): redefine the agent.launch contract by @brennanb2025 in #20999
- refactor(mobile): send the last session-route raw-port calls as operations (step 6, migration 2) by @Jinwoo-H in #21083
- fix: exclude a directory subtree in the git-grep search fallback by @kaluli123123 in #15721
- fix(native-chat): render approvals from the harness presentation, not serialized tool input by @brennanb2025 in #21087
- test(shared): drop the duplicated separator-only git grep test by @Jinwoo-H in #21116
- fix(agent-launch): make a lost launch safe to retry by @brennanb2025 in #21106
- Make the Agent Permissions toggle apply to Codex chat by @brennanb2025 in #20977
- refactor(mobile): checked reply readers for the session domain (step 7) by @Jinwoo-H in #21089
- test(mobile): repin the RPC recording corpus to main after #21089 by @Jinwoo-H in #21123
- fix(relay): keep pool pressure a per-cell rehome exclusion, not a fleet stop by @Jinwoo-H in #21126
- 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
- perf(usage): run the Claude/Codex/OpenCode usage scans on a worker thread by @Jinwoo-H in #21114
- fix(deps): update vulnerable dependencies without new overrides by @nwparker in #21134
- feat(desktop): let the renderer reach agent.launch on its own main process by @brennanb2025 in #21132
- fix(quality-gate): let the changed-code gate see the focused import plugins by @brennanb2025 in #20912
- fix(native-chat): open the message rail panel on the current message by @brennanb2025 in #21143
- fix(relay): skip boot-time DDL when the catalog already has the object by @Jinwoo-H in #21147
- fix(mobile): a scope refusal is not a missing method on the Relay pairing probes by @nwparker in #19952
- fix(runtime): bound the connect phase against an unreachable host, at the transport by @nwparker in #20053
- fix(windows): reject a node-pty addon that predates the MSYS breakaway denial by @nwparker in #20047
- fix(runtime): park a mirrored pane's resume until its PTY handle lands by @nwparker in #19882
- fix(worktree): ask the execution host whose home a remote delete would take by @nwparker in #19865
- fix(session): give an SSH workspace one owning partition so its tabs stop round-tripping as deletions by @nwparker in #19572
- fix(mobile): stop a created tab from jumping when the host snapshot lands by @brennanb2025 in #20069
- fix(relay): serve readiness from last-known-good during auth or SQL blips by @Jinwoo-H in #21161
- fix(native-chat): stop a collapsed run claiming success when a tool call failed by @brennanb2025 in #21151
- infra(relay): raise asia-east2 cell pools to 16 and record the measured connection ceiling by @Jinwoo-H in #21163
- feat(native-chat): render a proposed plan as a plan, not a generic approval by @brennanb2025 in #21090
- refactor(mobile): checked reply readers for the tasks item and list domain (step 7) by @Jinwoo-H in #21169
- Show the Source Control AI CLI arguments box only where it actually works by @brennanb2025 in #21149
- test(mobile): repin the RPC recording corpus to main after #21169 by @Jinwoo-H in #21173
- ci(mobile): fail CI when the RPC recording pin leaves main's history or the corpus does not reproduce by @Jinwoo-H in #21156
- fix(cloud): pin the asia cell database pool in the same-cap plan validator by @Jinwoo-H in #21171
- refactor(runtime): declare the host-status entry once instead of per consumer by @nwparker in #20262
- Test: target question card title by testid instead of text by @AmethystLiang in #21153
- fix(runtime): hold the session mirror through an unverifiable probe by @nwparker in #20085
- fix(runtime): hold four more host reads through an unverifiable probe by @nwparker in #20095
- fix(runtime): hold parking and transport reads through an unverifiable probe by @nwparker in #20096
- fix(runtime): split the host-contact epoch out of the connection generation by @nwparker in #20359
- feat(terminal): search match count + Cmd+F focus parity by @shaharmor in #9035
- fix(relay-ops): recalibrate the pre-roll monitor gate to chronic production baselines by @Jinwoo-H in #21241
- fix(relay): treat database pool connect failures as transient, not director faults by @Jinwoo-H in #21243
- refactor(mobile): checked reply readers for notifications, components, terminal, transport, home, worktree and browser (step 7) by @Jinwoo-H in #21176
- test(mobile): repin the RPC recording corpus to main after #21176 by @Jinwoo-H in #21254
- fix(mobile): name a create's launch so a lost reply cannot build two workspaces by @brennanb2025 in #21137
- fix(native-chat): give a failed Claude background task a typed row instead of an opcode by @brennanb2025 in #20519
- fix(cloud): give same-cap waves ten minutes to consume gate evidence by @Jinwoo-H in #21259
- fix(relay): stop admin routes reporting a stalled database as 404 or 409 by @Jinwoo-H in #21264
- fix(cloud): retry transient director admin failures in the relay monitor and preflight by @Jinwoo-H in #21263
- refactor(mobile): checked reply readers for the tasks domain's board, runtime, search and create (step 7) by @Jinwoo-H in #21246
- chore(mobile): repin the RPC recording baseline to main after #21246 by @Jinwoo-H in #21266
- fix(editor): keep preview Add-note controls out of PDF export by @AmethystLiang in #21268
- fix(relay-ops): tolerate a single unreadable monitor sample by @Jinwoo-H in #21272
- feat(relay): add a break-glass override for the same-cap monitor gate by @Jinwoo-H in #21270
- Offer to reconnect native chats that were working when Orca restarted by @brennanb2025 in #21096
- fix(agent-launch): resolve a launch scope, not a git worktree record by @brennanb2025 in #21193
- test(terminal): bump the pane hook-order parity pin past #9035 by @Jinwoo-H in #21276
- refactor(mobile): checked reply readers for files, dictation, host-screen and agent-history (step 7) by @Jinwoo-H in #21269
- feat(relay): pace the drain send during a same-cap cell roll by @Jinwoo-H in #21284
- chore(mobile): repin the RPC recording baseline to main after #21269 by @Jinwoo-H in #21287
- perf(relay): stop indexing the column every control renewal writes by @Jinwoo-H in #21286
- test(bench): runtime-graph publication probe and optional CDP CPU throttle by @Jinwoo-H in #21107
- refactor(mobile): drop the unreachable dispose-before-ready notifications arm by @Jinwoo-H in #21293
- perf(renderer): stop one pane title update from scanning the global sleeping-record inventory by @Jinwoo-H in #21292
- refactor(mobile): put the branch-compare leg on the lifecycle owner, with a currency probe (step 5) by @Jinwoo-H in #21299
- perf(relay): index and gate the credential cleanup sweeps that seq-scan relay_invites by @Jinwoo-H in #21301
- test(mobile): typecheck the test files on a ratchet, and pin the reply enums where tsc looks by @Jinwoo-H in #21298
- chore(relay): drop the live-basis partial index that the planner never picks by @Jinwoo-H in #21305
- perf(relay): batch control lease renewals per cell instead of one write transaction per host by @Jinwoo-H in #21303
- feat(agent-launch): deliver a launch prompt from the host by @brennanb2025 in #21155
- feat(relay-ops): allow the migration-only cells c17 and c18 in same-cap waves by @Jinwoo-H in #21307
- fix(relay-ops): bind the canary cell's admission class into same-cap batch authority by @Jinwoo-H in #21313
- perf(mobile): build the two projected git enums once, not per parse by @Jinwoo-H in #21311
- fix(relay-ops): pin the capacity identity so a stale same-cap template can roll by @Jinwoo-H in #21314
- fix(relay-ops): accept a drained predecessor on a cell that holds no hosts by @Jinwoo-H in #21315
- fix(relay-ops): roll a cell a wave stranded after its drain by @Jinwoo-H in #21321
- fix(native-chat): hide legacy resume command for structured history by @brennanb2025 in #21282
- feat(mobile-web-bundle): manifest and RPC contract for the desktop-served mobile web bundle (OTA phase A, 1/5) by @Jinwoo-H in #21325
- feat(build): build, verify and package the mobile web bundle with every desktop release (OTA phase A, 2/5) by @Jinwoo-H in #21326
- fix: make worktree scan failures actionable by @Jinwoo-H in #21291
- fix(relay): probe a half-open control socket instead of waiting out the silence bound (STA-7672) by @Jinwoo-H in #21076
- fix(renderer): cancel signout auth retry on unmount by @OrcaWin in #20905
- fix(renderer): cancel copied prompt reset on unmount by @OrcaWin in #20906
- fix(renderer): release parked terminal scroll intents by @OrcaWin in #20924
- fix(relay): bound cyclic process-table traversal by @OrcaWin in #20946
- Release completed scanner cancellation IDs by @OrcaWin in #20980
- fix(browser): release page callbacks when a guest is destroyed by @OrcaWin in #21010
- fix: release completed runtime RPC queue payloads by @OrcaWin in #21131
- fix: release aborted auth filesystem waiters by @OrcaWin in #21135
- fix: retire stale GitLab host cache generations by @OrcaWin in #21136
- fix: release Codex prompt claims after turn completion by @OrcaWin in #21138
- fix: release completed terminal spawn inputs by @OrcaWin in #21139
- fix: release native PTY spawn environment after setup by @OrcaWin in #21140
- Skip empty chunks in streamed agent text by @OrcaWin in #21142
- fix: release canceled working-directory waiter references by @OrcaWin in #21144
- fix: release completed SSH writer queue entries by @OrcaWin in #21150
- fix: fence viewport state after browser guest retirement by @OrcaWin in #21160
- fix: release retired daemon owner incarnation metadata by @OrcaWin in #21162
- fix: release completed browser results after host close by @OrcaWin in #21164
- fix(runtime): fence terminal snapshot completion by owner by @OrcaWin in #20996
- fix(main): release hang watchdog quit listener on shutdown by @OrcaWin in #20910
- fix(ai-vault): release retired search write fences by @OrcaWin in #20986
- fix(browser): fence late registration replies to their guest owner by @OrcaWin in #21012
- fix(filesystem): match allowed roots across Unicode forms by @Lucasfarg in #21194
- fix(pty): reconcile daemon exits after synthetic notifications by @OrcaWin in #21000
- fix(sessions): stop transcript catch-up after TUI owner close by @OrcaWin in #21002
- fix(runtime): terminate nonblank tail scan at the first row by @OrcaWin in #21018
- fix(runtime): preserve exited PTY authority across queued graphs by @OrcaWin in #21011
- fix(projects): release processed repository scan records by @OrcaWin in #21022
- Release provider children after structured session holds disappear by @OrcaWin in #20978
- fix(runtime): preserve observed exit during explicit terminal close by @OrcaWin in #21019
- fix(runtime): keep absent session tab close intents durable (#21189) by @LesleyMurfin in #21277
- Detach retained CI and terminal tails from oversized strings by @OrcaWin in #20960
- fix(stats): bound retained events during stalled writes by @OrcaWin in #20941
- fix(pty): stop detached OMP tools on immediate terminal close by @nwparker in #20642
- fix(relay): stop detached tools on immediate terminal close by @nwparker in #20645
- fix: apply managed Claude auth to Agent Teams by @Jinwoo-H in #21356
- fix(mobile): mint one pairing offer per Continue on the sidebar page by @Jinwoo-H in #21261
- fix(terminal): keep a split's real direction when the leaf set moves by @nwparker in #21294
- test(e2e): name the paired-client quit that preserves the profile by @nwparker in #21300
- fix(relay): one malformed pre-auth handshake frame closes its connection, not the daemon by @nwparker in #19879
- fix(ssh): record the superseded-relay pass the Windows arm abandons by @nwparker in #20045
- fix(settings): read host reachability from the shared verdict by @nwparker in #21206
- fix(terminal): keep the host's platform through an unverifiable probe by @nwparker in #21188
- refactor(runtime): name the four answers a host probe can give by @nwparker in #21207
- fix(lint): exempt the descendant-sweep test shim from the module-mocking gate by @Jinwoo-H in #21362
- fix(editor): evict stale mirrored file tabs by @nwparker in #21363
- perf(relay): index client request aborts instead of scanning every controller by @nwparker in #20052
- feat(mobile-web-bundle): serve the packaged mobile web bundle over RPC (OTA phase A, 3/5) by @Jinwoo-H in #21348
- Reveal active workspaces with minimal filter changes by @nwparker in #21364
- Revert "fix(editor): evict stale mirrored file tabs (#21363)" by @nwparker in #21368
- fix(session): scope agent resume to the host that captured the session by @nwparker in #21288
- feat(composer): choose a base ref in the New Workspace composer by @VincentMenard76 in #17250
- Keep workspace reveals minimal for folders by @nwparker in #21373
- feat(mobile-web-bundle): advertise the bundle capability where a bundle ships (OTA phase A, 4/5) by @Jinwoo-H in #21376
- chore(mobile): bump Android versionCode to 17 for the 0.0.50 release by @brennanb2025 in #21335
- fix(accounts): free the account queue when a sign-in is abandoned, and show the Codex sign-in link by @nwparker in #21372
- chore(mobile): bump to 0.0.51 and Android versionCode 18 by @brennanb2025 in #21382
- fix(daemon): answer the per-pty snapshot predicate for the pty it was asked about by @nwparker in #21381
- fix(editor): keep an unresolvable mirrored file tab open with a truthful terminal state by @nwparker in #21375
- fix(renderer): dispose global listeners during HMR by @OrcaWin in #20908
- feat(native-chat): record an explicit provider outcome on every structured turn by @brennanb2025 in #21278
- feat(mobile): client operations and dev probe for the desktop-served mobile web bundle (OTA phase A, 5/5) by @Jinwoo-H in #21374
- fix(terminal): retire explicitly closed pending split connections by @OrcaWin in #21001
- fix(terminal): keep an unverifiable park-reveal snapshot apart from an empty pane by @nwparker in #21396
- fix(runtime): keep a client-dirty mirrored file dirty across a host republish by @nwparker in #21393
- fix: avoid retaining foreign SSH file frames before metadata by @OrcaWin in #21167
- fix(log-tail): retire watches with their renderer lifetime by @OrcaWin in #21009
- fix(skills): keep the disposal verdict when staging cleanup fails, and retry release-cut installs by @Jinwoo-H in #21366
- fix(main,preload): tear down renderer relay and preload listeners by @OrcaWin in #20909
- chore(mobile): repin the RPC recording baseline to main after #21374 by @Jinwoo-H in #21402
- fix(git): respect existing .orca ignore rules by @KAPUIST in #21361
- fix(sessions): cancel transcript acquisition during host teardown by @OrcaWin in #21006
- fix(session): repoint the rows a worktree re-key strands (latent; producer is flag-disabled) by @nwparker in #20057
- feat(mobile): update wall for the desktop-served mobile web bundle (OTA phase B, 1/4) by @Jinwoo-H in #21411
- feat(mobile): per-host generation store for the mobile web bundle (OTA phase B, 2/4) by @Jinwoo-H in #21409
- fix(runtime): name a terminal whose pane a graph republish dropped by @nwparker in #19860
- fix(mobile): default injected timers to receiver-free wrappers by @Jinwoo-H in #21416
- feat(mobile): native shell view serving a mobile web generation from a private origin (OTA phase B, 3/4) by @Jinwoo-H in #21417
- fix(runtime): ask the receipt ledger the same "is it retired" question as the gate by @nwparker in #20725
- fix(terminal): retire captured remote handles when pending panes close by @OrcaWin in #21005
- ci: install mobile dependencies in every desktop packaging job, pin mobile page source to LF (OTA phase C, C0.6) by @Jinwoo-H in #21425
- fix(editor): restore editability after View Log by @nwparker in #21424
- fix(ci): keep mobile patches LF so Windows can parse them by @nwparker in #21439
- fix(explorer): make filename search find all workspace files by @nwparker in #21423
- feat(mobile): envelope contract for the web shell bridge (OTA phase C, C0.1) by @Jinwoo-H in #21432
- feat(mobile): native page-shell bridge in orca-mobile-web-shell (OTA phase C, C0.2) by @Jinwoo-H in #21434
- feat(mobile): hybrid shell route, dark behind a dev-only flag (OTA phase B, 4/4) by @Jinwoo-H in #21435
- feat(build): Route A, the phone's host routes bundled for the web, dark (OTA phase C, C0.7) by @Jinwoo-H in #21449
- feat(mobile): RN bridge host for the web shell page (OTA phase C, C0.3) by @Jinwoo-H in #21459
- feat(mobile): page-side RpcClient over the web shell bridge (OTA phase C, C0.4) by @Jinwoo-H in #21467
- fix(agent-status): stop an auto-reviewed Codex approval reading as "Needs You" by @brennanb2025 in #21389
- fix(orchestration): stop the sender-terminal refusal recommending another pane's handle by @brennanb2025 in #21097
- build(mobile): split the Route A page into per-route chunks (OTA phase C, C1.5) by @Jinwoo-H in #21475
- fix(attention): count both terminal and chat siblings when clearing workspace unread by @brennanb2025 in #21274
- test(mobile): certify the golden corpus through the page bridge (OTA phase C, C0.5) by @Jinwoo-H in #21485
- chore(mobile): repin the recording corpus to main's tip after C0.5's squash by @Jinwoo-H in #21510
- feat(session-search): resolve Workspace and Project scope on the host by @Jinwoo-H in #21509
- fix(mobile): the page bridge accepts every reply native accepts and settles what it refuses (OTA phase C, C0.8) by @Jinwoo-H in #21511
- fix(opencode-usage): count cache-read tokens by @Jinwoo-H in #21522
- fix(orchestration): list worker Dispatches newest first and warn when the page truncates by @Jinwoo-H in #21523
- fix(relay): wait out a cold proxy at boot instead of exiting the cell by @Jinwoo-H in #21516
- fix(relay): check the rehome dispatch budget before planning the candidate join by @Jinwoo-H in #21517
- fix(relay): stop reporting an unavailable home cell as exhausted capacity by @Jinwoo-H in #21518
- Revert "feat(composer): choose a base ref in the New Workspace composer" by @nwparker in #21536
- Reapply composer base-ref picker with final UX by @nwparker in #21543
- feat(terminal): inline images via @xterm/addon-image (perf-first) by @OrcaWin in #19512
- test(mobile): make the bridged recording-corpus replay a CI gate and pin the C1 page closure (OTA phase C, C1.6) by @Jinwoo-H in #21533
- feat(terminal): configure URL click and middle-click behavior by @nwparker in #21438
- feat(mobile): the page mounts on the shell's init, with the client injected and a fault boundary (OTA phase C, C1.1) by @Jinwoo-H in #21500
- fix(relay): bound the idle-rehome candidate poll to a window of decisions by @Jinwoo-H in #21557
- feat(mobile): the shell names the screen, and the page routes to it (OTA phase C, C1.2) by @Jinwoo-H in #21501
- fix(session-search): keep the title filter while full-text search is off by @Jinwoo-H in #21550
- feat(mobile): the desktop lists a page route, the shell honours it or stays native (OTA phase C, C1.3) by @Jinwoo-H in #21502
- refactor(usage): share attribution and scope filtering by @nwparker in #21524
- fix(editor): render CJK-adjacent emphasis in Markdown preview by @nwparker in #21553
- feat(mobile): the page reads this host and keeps the app's pins (OTA phase C, C1.4) by @Jinwoo-H in #21503
- fix(terminal): a park must not discard the only copy of a remote pane's scrollback by @nwparker in #21285
- refactor(editor): land shared Markdown scanners on main by @nwparker in #21565
- fix(relay): stop holding a cell row across the whole control accept by @Jinwoo-H in #21563
- fix(mobile): follow-ups from the C1 stack review, one commit per finding (OTA phase C, C1.8) by @Jinwoo-H in #21570
- feat(github): bind projects to a specific gh account by @llevintza in #13664
- fix(terminal): preserve escape tails in renderer snapshots by @nwparker in #21578
- fix(terminal): preserve idle Linux IME direct commits by @nwparker in #21567
- feat(settings): confirm before stopping running terminals by @nwparker in #21569
- fix(relay): carry the signed-out reason when the broker's own renewal notices the session loss by @Jinwoo-H in #21562
- feat(mobile): say why a host is unreachable instead of "Connecting via Relay…" by @Jinwoo-H in #21566
- chore(mobile): repin the recording corpus to main's tip after #21566 by @Jinwoo-H in #21588
- feat(mobile): hand the page's dead Back button to the shell (OTA phase C, C2.2) by @Jinwoo-H in #21582
- test(e2e): stop a spec's parking-delay override from leaking into the rest of its worker by @nwparker in #21571
- ci: route pane close and retirement changes to the specs that judge them by @nwparker in #21572
- fix(mobile): give the page its height and its long press; C1.7 device proof (OTA phase C, C1.9) by @Jinwoo-H in #21589
- fix(runtime): detect a same-size terminal artifact swap the granted stat cannot see by @nwparker in #21436
- fix(remote): reassert terminal geometry after reveal by @nwparker in #21568
- fix(omp): submit large prompts in one PTY frame by @nwparker in #21573
- fix(mobile): let the shell's page paint a file preview (OTA phase C, C3.0) by @Jinwoo-H in #21591
- fix(claude): stream transcript ancestry proofs by @OrcaWin in #21024
- fix: read crash diagnostics without loading whole dumps into memory by @OrcaWin in #21128
- ci: cache cloud workspace packages in unit tests by @OrcaWin in #21599
- fix(editor): share code-fence boundaries for Markdown links by @nwparker in #21574
- ci: isolate cloud relay tests from unit shards by @OrcaWin in #21601
- fix(omp): acknowledge completion delivery and retire stale retries by @nwparker in #20603
- fix(omp): load task drafts through the status extension by @nwparker in #20604
- fix(omp): resolve transcripts from active XDG and profile roots by @nwparker in #20633
- fix: check host ownership before recovering OMP sessions by @nwparker in #20628
- fix(native-chat): suggest verified OMP terminal commands by @nwparker in #20672
- docs: update Android APK link to 0.0.50 by @AmethystLiang in #21605
- fix(session): an emptied workspace still survives the reconnect merge by @nwparker in #19944
- fix(omp): keep child sessions from reporting into the parent pane by @nwparker in #20611
- fix(pi): scope status completion to the run that ended by @mmarabel in #20840
- feat(mobile): let the page hand a link to the device through the shell (OTA phase C, C2.3) by @Jinwoo-H in #21597
- fix(editor): match parser fence whitespace by @nwparker in #21609
- test(e2e): use bounding box for quick-open hover positioning by @AmethystLiang in #21505
- fix(omp): publish parent transcript paths for native chat by @nwparker in #20615
- fix(mobile): give reanimated mapper hooks the inputs esbuild never writes (OTA phase C, C1.10) by @Jinwoo-H in #21592
- fix(sidebar): distinguish sleeping workspaces in the new card style by @mmarabel in #21540
- fix(browser): enable screenshot markup on client-hosted pages by @yteruel31 in #19577
- style: apply oxfmt to files that landed unformatted by @fbartho in #20415
- feat(diff-comments): add multi-line range selection with drag and keyboard by @AmethystLiang in #20959
- fix(sidebar): keep group headers visible when measured rows grow by @kiendle in #20883
- fix(omp): keep task storage aligned with the login shell by @nwparker in #20605
- fix(pdf): render CJK text with pdf.js resources by @OrcaWin in #21625
- fix(omp): answer startup Kitty queries before renderer handoff by @nwparker in #20620
- fix(codex): prevent marketplace startup in rate-limit probes by @nwparker in #21617
- fix(omp): start new tasks without auto-resuming old sessions by @nwparker in #20622
- fix(sidebar): retain remote OMP rows before tab hydration by @nwparker in #20616
- feat(source-control-ai): support OMP generation by @nwparker in #20624
- fix(lint): exempt the browser-pane markup tests from the shape-name rule by @Jinwoo-H in #21637
- fix(omp): preserve recorded transcript paths when resuming by @nwparker in #20634
- feat(mobile): render agent session history from the desktop's bundle (OTA phase C, C5.1) by @Jinwoo-H in #21596
- test(mobile): pin the agent-history page closure golden by golden (OTA phase C, C5.2) by @Jinwoo-H in #21649
- fix(deps): update vulnerable transitive packages by @nwparker in #21652
- fix(ai-vault): discover and parse Devin sessions on Windows by @lattenee in #21337
- feat(mobile): answer native verbs on the shell, clipboard first (OTA phase C, C2.4) by @Jinwoo-H in #21623
- test(omp): keep transcript smoke proof current by @nwparker in #21661
- feat(omp): discover and switch native-chat models on desktop and mobile by @nwparker in #20612
- fix(agents): refresh remote detection on new launch surfaces by @nwparker in #21659
- fix(omp): ignore nested task session ownership by @nwparker in #21663
- fix(omp): sweep local agent PTYs during app quit by @nwparker in #21668
- test(omp): prevent duplicate tab on worktree reselect by @nwparker in #21670
- fix(sidebar): keep OMP split-pane status tied to its PTY by @nwparker in #21671
- fix(omp): redact credential references before status transport by @nwparker in #21673
- test(agent-status): pin that omp's approval_mode cannot hide a real prompt by @brennanb2025 in #21499
- feat(diagnostics): trace terminal startup delivery phases by @nwparker in #21677
- fix(omp): attach desktop and mobile images through file mentions by @nwparker in #21674
- fix(omp): recover retired pane status with validated restart authority by @nwparker in #21675
- chore(mobile): repin the recording corpus to main's tip after #21674 by @Jinwoo-H in #21690
- fix(pi): use Pi configured provider for Source Control AI defaults by @nwparker in #21693
- feat(mobile): serve the tasks screen from the page, with its seams (OTA phase C, C2.1 + C2.5) by @Jinwoo-H in #21694
- fix(pi): ignore idle utility dialogs in completion status by @nwparker in #21707
- fix(pi): do not install extensions for disabled agents by @nwparker in #21711
- fix(terminal): clear stale agent identity after shell exit by @nwparker in #21714
- Make selected dialog higher contrast by @AmethystLiang in #21718
- test(mobile): certify the tasks page closure, 70 families and 266 goldens (OTA phase C, C2.6) by @Jinwoo-H in #21712
- feat(mobile): serve the files explorer and preview from the page (OTA phase C, C3.1) by @Jinwoo-H in #21710
- test(e2e): prove Pi EOF removes sidebar agent row by @nwparker in #21722
- fix(mobile): name the Back control in every page-served screen (OTA phase C, C2.8) by @Jinwoo-H in #21715
- test(mobile): certify the files page closure, 28 families and 125 goldens (OTA phase C, C3.2) by @Jinwoo-H in #21724
- fix(session): remember closed and initialized runtime tabs by @nwparker in #21630
- fix(plugins): release diagnostic logs after successful uninstall by @OrcaWin in #21185
- Enforce the legacy transcript import budget while reading by @OrcaWin in #20976
- Sort dev builds by timestamp instead of semver by @AmethystLiang in #21720
- fix(mobile): name the narrow host header's controls and gate the drawer's hardware back on web (OTA phase C, C2.10) by @Jinwoo-H in #21729
- fix(editor): keep long file paths distinguishable by @nwparker in #21631
- feat(editor): add opt-in collapsed unchanged regions for file diffs by @dcieslak19973 in #11955
- perf(terminal): skip background SGR scans without ESC by @nwparker in #21646
- perf(terminal): skip kitty scans for plain PTY output by @nwparker in #21643
- fix(terminal): align CJK IME preedit spacing by @nwparker in #19367
- Close workspace board when selecting a sidebar worktree by @OrcaWin in #21737
- fix(editor): extract diff first-change auto-scroll to a hook to unblock main by @nwparker in #21738
- fix(runtime): reject stale inventory after PTY lifecycle changes by @OrcaWin in #21014
- fix(browser): bound CDP output for stalled clients by @OrcaWin in https://github.com/stablyai/orca/pull/20949
- fix(claude): enforce history window quota while reading by @OrcaWin in https://github.com/stablyai/orca/pull/21021
- fix(runtime): persist acknowledged terminal tab retirement by @OrcaWin in https://github.com/stablyai/orca/pull/21020
- Bound AI Vault transcript record assembly before allocation by @OrcaWin in https://github.com/stablyai/orca/pull/20963
- feat(agents): add OpenCode 2 beta support by @nwparker in https://github.com/stablyai/orca/pull/21418
- fix(mobile): name the source-control Back controls and split the dock's Close from Back (OTA phase C, C4.3) by @Jinwoo-H in https://github.com/stablyai/orca/pull/21739
- fix: retire closed editor models from the app shell by @OrcaWin in https://github.com/stablyai/orca/pull/21178
- fix(daemon): pause producers when stream backlogs grow by @OrcaWin in https://github.com/stablyai/orca/pull/20947
- refactor(mobile): seam moves and the shared shell route guard for the source-control domain (OTA phase C, C4.1) by @Jinwoo-H in https://github.com/stablyai/orca/pull/21732
- feat(composer): restore compact branch picker UX by @nwparker in https://github.com/stablyai/orca/pull/21741
- Fix stale Codex usage after reset by @OrcaWin in https://github.com/stablyai/orca/pull/21748
- fix(mobile): measure the keyboard from visualViewport inside the page (OTA phase C, C4.2) by @Jinwoo-H in https://github.com/stablyai/orca/pull/21735
- fix(terminal): keep Pi input visible in open synchronized frames by @nwparker in https://github.com/stablyai/orca/pull/21708
- fix(terminal): preserve Polish and Option-composed text in kitty panes by @nwparker in https://github.com/stablyai/orca/pull/21082
- feat(mobile): carry browser screencast frames over the bridge as base64 (OTA phase C, C6.1) by @Jinwoo-H in https://github.com/stablyai/orca/pull/21758
- feat(mobile): paint browser screencast frames through web siblings (OTA phase C, C6.2) by @Jinwoo-H in https://github.com/stablyai/orca/pull/21754
- test(mobile): pin the decoded screencast frame with the base64 it now carries (OTA phase C, C6) by @Jinwoo-H in https://github.com/stablyai/orca/pull/21769
- feat(mobile): budget the browser pane's frames and put its inputs on the web seam (OTA phase C, C6.3+C6.4) by @Jinwoo-H in https://github.com/stablyai/orca/pull/21760
- test(mobile): certify the browser pane's golden families and render it in a page (OTA phase C, C6.5) by @Jinwoo-H in https://github.com/stablyai/orca/pull/21777
- feat(mobile): add the media verbs the page's pickers and paste will use (OTA phase C, C7.4) by @Jinwoo-H in https://github.com/stablyai/orca/pull/21779
- feat(mobile): take the session screen's inputs, links, clipboard and routers through the platform seams (OTA phase C, C7.2) by @Jinwoo-H in https://github.com/stablyai/orca/pull/21790
- feat(mobile): budget the terminal snapshot on serialized bytes and hold live output instead of ending the stream (OTA phase C, C7.3) by @Jinwoo-H in https://github.com/stablyai/orca/pull/21785
- feat(mobile): put the page's pickers, paste and editor fallbacks on the media verbs (OTA phase C, C7.6) by @Jinwoo-H in https://github.com/stablyai/orca/pull/21795
- fix(mobile): settle browser dialogs on the stream that reports them, map taps through the page scale, and sweep the frame budget on the real encoder (OTA phase C, C6.7) by @Jinwoo-H in https://github.com/stablyai/orca/pull/21799
- refactor(mobile): generate the terminal WebView document from typed modules (OTA phase C, C7.1) by @Jinwoo-H in https://github.com/stablyai/orca/pull/21804
- fix(relay): abort rehomes whose host never arrived, without disabling the switch by @Jinwoo-H in https://github.com/stablyai/orca/pull/21813
- fix(relay): let the rehome evidence parser read a line the director grew by @Jinwoo-H in https://github.com/stablyai/orca/pull/21823
- fix(release): keep GitHub releases draft until all assets exist by @nwparker in https://github.com/stablyai/orca/pull/21835
- fix(terminal): arm native-paste suppression on middle-click in mouse-tracking TUIs by @buf0-bot[bot] in https://github.com/stablyai/orca/pull/21834
- fix(e2e): wait for terminal remount after golden worktree switch by @nwparker in https://github.com/stablyai/orca/pull/21837
- fix(memory): release stale session registries by @OrcaWin in https://github.com/stablyai/orca/pull/21734
- fix(relay): stop a terminated checked-out PostgreSQL client from killing the cell by @Jinwoo-H in https://github.com/stablyai/orca/pull/21840
- fix(release): force draft publishes on tag checkouts by @nwparker in https://github.com/stablyai/orca/pull/21842
- feat(mobile): mount the terminal document in the page over its own modules (OTA phase C, C7.5) by @Jinwoo-H in https://github.com/stablyai/orca/pull/21809
- fix(release): pass the draft-verify tag on Windows pwsh by @nwparker in https://github.com/stablyai/orca/pull/21851
- perf(relay): cut the cell LB drain to 60s and widen the same-cap batch to ten cells by @Jinwoo-H in https://github.com/stablyai/orca/pull/21848
- feat(relay): report a post-wave health verdict on each same-cap cell, without gating on it by @Jinwoo-H in https://github.com/stablyai/orca/pull/21849
- fix(wsl): await Pi and OMP guest relay materialization by @nwparker in https://github.com/stablyai/orca/pull/21721
- fix(terminal): keep drag selection stable during redraws by @nwparker in https://github.com/stablyai/orca/pull/21850
- test(antigravity): cover Kitty mode reattach metadata by @nwparker in https://github.com/stablyai/orca/pull/21810
- fix(terminal): let Shift+middle-click paste in mouse-tracking panes by @buf0-bot[bot] in https://github.com/stablyai/orca/pull/21858
- fix(relay): land the cell backend drain and request logging inside the same-cap wave by @Jinwoo-H in https://github.com/stablyai/orca/pull/21860
- fix(opencode): preserve global config discovery by @nwparker in https://github.com/stablyai/orca/pull/21854
- fix(mobile): make OMP terminal momentum refresh-rate independent by @nwparker in https://github.com/stablyai/orca/pull/21687
- fix(orchestration): line-settle delay for antigravity multiline paste by @seonghobae in https://github.com/stablyai/orca/pull/21665
- fix(antigravity): recognize non-Gemini tui-idle prompts by @innocarpe in https://github.com/stablyai/orca/pull/21231
- fix(relay): bound the same-cap shadow gate in time and apply a resumed backend update by @Jinwoo-H in https://github.com/stablyai/orca/pull/21865
- fix(opencode): attribute shared-server sessions to their panes by @werlang in https://github.com/stablyai/orca/pull/21577
- fix: read OpenCode Go usage from the console API by @innocarpe in https://github.com/stablyai/orca/pull/21462
- test(runtime): expect the agent's own submit delay in the PTY timing policy case by @Jinwoo-H in https://github.com/stablyai/orca/pull/21874
- fix(mobile): restore query-string's named exports under the 9.5.1 override by @Jinwoo-H in https://github.com/stablyai/orca/pull/21727
- fix(opencode): include cache read and write usage totals by @nwparker in https://github.com/stablyai/orca/pull/21886
- fix(i18n): regenerate the runtime catalog and localize the cookie example from #21462 by @Jinwoo-H in https://github.com/stablyai/orca/pull/21889
- fix(opencode): isolate v1/v2 plugins and preserve WSL config by @nwparker in https://github.com/stablyai/orca/pull/21900
- fix(editor): persist PDF zoom across tabs and restarts by @Jinwoo-H in https://github.com/stablyai/orca/pull/21879
- feat(mobile): fire the page's haptics over the bridge notify (OTA phase C, C7.10 E) by @Jinwoo-H in https://github.com/stablyai/orca/pull/21864
- feat(mobile): render Mermaid diagrams on the page from one deferred engine artifact (OTA phase C, C7.10 B) by @Jinwoo-H in https://github.com/stablyai/orca/pull/21871
- fix(pi): keep panes working while async subagents run by @nwparker in https://github.com/stablyai/orca/pull/21882
- test(relay): fix stale OMP launch environment expectation by @nwparker in https://github.com/stablyai/orca/pull/21907
- test(config): count the haptics notify module in the session route's page closure by @Jinwoo-H in https://github.com/stablyai/orca/pull/21908
- fix(editor): open plain details blocks in rich markdown mode by @SahilZ0810 in https://github.com/stablyai/orca/pull/19784
- test: add comprehensive nested lineage coverage for worktrees panel by @AmethystLiang in https://github.com/stablyai/orca/pull/21903
- Fix Antigravity source-control model discovery and retired defaults by @nwparker in https://github.com/stablyai/orca/pull/21606
- fix(claude): stream the provider history window by @nwparker in https://github.com/stablyai/orca/pull/21742
- fix(mobile): keep an in-page hop local only when the session's grants cover it (OTA phase C, C2.9) by @Jinwoo-H in https://github.com/stablyai/orca/pull/21723
- fix(claude): prefill continuation context for manual submission by @nwparker in https://github.com/stablyai/orca/pull/21912
- fix(editor): preserve Markdown preview when following wiki links by @SahilZ0810 in https://github.com/stablyai/orca/pull/19790
- Keep new worktree dialog actions visible while scrolling by @nwparker in https://github.com/stablyai/orca/pull/21915
- fix(runtime): an outage is not a handle-gap verdict by @nwparker in https://github.com/stablyai/orca/pull/20059
- fix(terminal): persist a parked remote pane's scrollback across a hard restart (#21295) by @nwparker in https://github.com/stablyai/orca/pull/21367
- fix(opencode2): auto-submit quick command prompts by @nwparker in https://github.com/stablyai/orca/pull/21913
- docs: update WeChat group 9 QR code by @AmethystLiang in https://github.com/stablyai/orca/pull/21926
- docs: remove obsolete WeChat group 8 QR code by @AmethystLiang in https://github.com/stablyai/orca/pull/21927
- docs(opencode2): clarify quick command delivery by @nwparker in https://github.com/stablyai/orca/pull/21929
- fix(native-chat): scope a tool row's hover reveal to that row by @brennanb2025 in https://github.com/stablyai/orca/pull/21918
- fix(worktree): recognise the Windows profile through WSL's drvfs view by @nwparker in https://github.com/stablyai/orca/pull/20051
- refactor(mobile): the terminal document is a function of its host (OTA phase C, C7.5b) by @Jinwoo-H in https://github.com/stablyai/orca/pull/21859
- refactor(agent-status): drop two superseded Codex attention workarounds by @brennanb2025 in https://github.com/stablyai/orca/pull/21844
- docs: drop the removed WeChat group 8 QR from the translated READMEs by @nwparker in https://github.com/stablyai/orca/pull/21936
- fix(windows): prune the unpatched conpty prebuild by header, not host arch by @nwparker in https://github.com/stablyai/orca/pull/20048
- test(config): assert the target route's chunk was never fetched, not that no chunk arrived after the tap by @Jinwoo-H in https://github.com/stablyai/orca/pull/21922
- Consolidate source control tooltips to eliminate redundant hover text by @AmethystLiang in https://github.com/stablyai/orca/pull/21733
- feat(mobile): render the HTML preview on the page in a sealed srcdoc frame (OTA phase C, C7.10 A) by @Jinwoo-H in https://github.com/stablyai/orca/pull/21862
- fix(devin): skip workspace trust for Orca launches by @nwparker in https://github.com/stablyai/orca/pull/21925
- fix(i18n): regenerate the runtime-required catalog for the source-control tooltip key by @Jinwoo-H in https://github.com/stablyai/orca/pull/21942
- fix(relay): re-place hosts off a cell isolated for a roll by @Jinwoo-H in https://github.com/stablyai/orca/pull/21911
- test(config): wait for the frame's script-src refusal before reading it (preview rig flake) by @Jinwoo-H in https://github.com/stablyai/orca/pull/21948
- feat(terminal): configure interactive Unix shell arguments by @nwparker in https://github.com/stablyai/orca/pull/21904
- refactor(mobile): thread the scope through the terminal document and bundle the native script (OTA phase C, C7.5c) by @Jinwoo-H in https://github.com/stablyai/orca/pull/21878
- chore(mobile): stop ignoring the retired document-factory artifact by @Jinwoo-H in https://github.com/stablyai/orca/pull/21962
- feat(mobile): register the source-control and review page routes (OTA phase C, C4.4) by @Jinwoo-H in https://github.com/stablyai/orca/pull/21957
- fix(rebuild): refuse to compile node-pty source that lacks the MSYS breakaway denial by @nwparker in https://github.com/stablyai/orca/pull/21968
- test(config): preview rig readiness polls the main world, never the utility world (Chrome 152 hang) by @Jinwoo-H in https://github.com/stablyai/orca/pull/21963
- fix(remote-runtime): stop an unhydrated host graph from reading as a closed terminal by @nwparker in https://github.com/stablyai/orca/pull/21967
- test(mobile): put the frame-budget noise floor between the two encoders by @Jinwoo-H in https://github.com/stablyai/orca/pull/21972
- feat(mobile): dictation on the OTA page over native audio verbs (Phase C, C7.10 PR D) by @Jinwoo-H in https://github.com/stablyai/orca/pull/21905
- refactor(mobile): the rich editor's document becomes scope-threaded modules and a bundled factory (OTA phase C, C7.10 C1) by @Jinwoo-H in https://github.com/stablyai/orca/pull/21969
- feat(mobile): serve any manifest route through a [...page] catch-all (OTA phase C, C8) by @Jinwoo-H in https://github.com/stablyai/orca/pull/21950
- test(mobile): scan for the params contract before parsing, so the boundary census fits its budget under load by @Jinwoo-H in https://github.com/stablyai/orca/pull/21970
- test(config): wait for the benchmark fixture before timing out its group by @Jinwoo-H in https://github.com/stablyai/orca/pull/21982
- fix(mobile): admit https: images on the web shell's CSP (OTA phase C, ruling 27) by @Jinwoo-H in https://github.com/stablyai/orca/pull/21964
- feat(agent-launch): deliver a launch prompt to a terminal agent by @brennanb2025 in https://github.com/stablyai/orca/pull/21891
- feat(session-search): sort search results by newest, and break relevance ties by recency by @Jinwoo-H in https://github.com/stablyai/orca/pull/21863
- refactor(agent-status): delete two launch-config accessors left with no callers by @brennanb2025 in https://github.com/stablyai/orca/pull/22032
- test(frame-budget): raster the noise before the sweep measures a frame by @Jinwoo-H in https://github.com/stablyai/orca/pull/22048
- fix(mobile): four pre-existing rich Markdown editor defects (OTA phase C, C1 follow-up) by @Jinwoo-H in https://github.com/stablyai/orca/pull/22054
- fix(native-chat): stop a subagent's output speaking for the agent that spawned it by @brennanb2025 in https://github.com/stablyai/orca/pull/21398
- fix(updater): send the gh token and cache the release picker's build list by @AmethystLiang in https://github.com/stablyai/orca/pull/21902
- revert: defer subagent attribution until linkage refactor by @brennanb2025 in https://github.com/stablyai/orca/pull/22058
- fix(native-chat): collapse a finished turn to its answer by @brennanb2025 in https://github.com/stablyai/orca/pull/22029
- Virtualize large conflict file trees by @AmethystLiang in https://github.com/stablyai/orca/pull/21920
- fix(native-chat): end a structured turn when the agent reports it failed by @brennanb2025 in https://github.com/stablyai/orca/pull/22047
- feat(native-chat): light the unread indicators when a structured chat finishes by @brennanb2025 in https://github.com/stablyai/orca/pull/21924
- feat(mobile): register the session page route (OTA phase C, C7.7) by @Jinwoo-H in https://github.com/stablyai/orca/pull/21977
- test(mobile): repin the session page closure at 4,333 after #21924 reached it by @Jinwoo-H in https://github.com/stablyai/orca/pull/22067
- feat(agent-launch): carry the launch inputs the host cannot derive by @brennanb2025 in https://github.com/stablyai/orca/pull/22037
- fix(settings): make terminal theme selection override Ghostty colors by @nwparker in https://github.com/stablyai/orca/pull/22069
- fix(perf): calibrate report budgets without masking latency stalls by @nwparker in https://github.com/stablyai/orca/pull/22075
- fix(rate-limits): keep polling Claude usage for Fable accounts during live sessions by @Jinwoo-H in https://github.com/stablyai/orca/pull/22071
- fix(opencode): support v2 plugins under the plain executable name by @nwparker in https://github.com/stablyai/orca/pull/22078
- refactor(mobile): the bridge host mount reads one args ref, and the handshake fact lives in the session (OTA phase C, audit item 3) by @Jinwoo-H in https://github.com/stablyai/orca/pull/22080
- fix(usage): price GPT-6 Astra, and declare when the Codex cost total omits a model by @Jinwoo-H in https://github.com/stablyai/orca/pull/22073
- fix(build): admit typecheck projects by memory, not core count by @brennanb2025 in https://github.com/stablyai/orca/pull/22074
- Virtualize artifacts list with reusable component by @AmethystLiang in https://github.com/stablyai/orca/pull/22061
- fix(wsl): preserve OpenCode agent variant in guest by @nwparker in https://github.com/stablyai/orca/pull/22089
- fix(mobile): hold every hybrid shell switch on a neutral state while the flag is unresolved (OTA phase C, ruling 33.7) by @Jinwoo-H in https://github.com/stablyai/orca/pull/22077
- refactor: use generic VirtualizedList in conflict review by @AmethystLiang in https://github.com/stablyai/orca/pull/22092
- fix(native-chat): navigate to open history sessions by @brennanb2025 in https://github.com/stablyai/orca/pull/21283
- feat(mobile): the microphone owns the wake lock, and the stop reply carries the tail (OTA phase C, ruling 36) by @Jinwoo-H in https://github.com/stablyai/orca/pull/22072
- fix(perf): measure terminal latency with presented CI frames by @nwparker in https://github.com/stablyai/orca/pull/22096
- chore(mobile): repin the recording corpus to main's tip after #22072 by @Jinwoo-H in https://github.com/stablyai/orca/pull/22101
- refactor(floating-workspace): launch the default agent through the shared launcher by @brennanb2025 in https://github.com/stablyai/orca/pull/21390
- refactor(agent-launch): assemble host startup-plan inputs in one resolver by @brennanb2025 in https://github.com/stablyai/orca/pull/22082
- Clear website annotations after successful delivery by @AmethystLiang in https://github.com/stablyai/orca/pull/22060
- Fix ai-vault-panel-search test for updated consent UI by @AmethystLiang in https://github.com/stablyai/orca/pull/22093
- feat(native-chat): keep restart recovery available in status bar by @brennanb2025 in https://github.com/stablyai/orca/pull/21397
- fix(sidebar): stop a workspace with a structured chat reading as asleep by @brennanb2025 in https://github.com/stablyai/orca/pull/22098
- fix(mobile): declare externalLink on the two page routes that reach the protocol wall (OTA phase C follow-up) by @Jinwoo-H in https://github.com/stablyai/orca/pull/22113
- fix(daemon): escape the terminal daemon into its own systemd scope so a service restart no longer kills every live PTY by @LesleyMurfin in https://github.com/stablyai/orca/pull/19430
- fix(orchestration): reap leaked worker terminals via process-incarnation fallback — stops an unbounded PTY/process leak on Remote Server (OOM / cgroup PID exhaustion) by @LesleyMurfin in https://github.com/stablyai/orca/pull/18790
- fix(mobile): two more table parsers hold a pipe in a cell (OTA phase C follow-up) by @Jinwoo-H in https://github.com/stablyai/orca/pull/22114
- fix(mobile): catch the diff-comments loader rejection at the effect (OTA phase C follow-up) by @Jinwoo-H in https://github.com/stablyai/orca/pull/22111
- chore(mobile): repin the recording corpus to main's tip after #22111 by @Jinwoo-H in https://github.com/stablyai/orca/pull/22118
- test(mobile): repin the session page closure at 4,333 after #18790 reached it by @Jinwoo-H in https://github.com/stablyai/orca/pull/22119
- feat(mobile): the rich Markdown editor mounts on the page (OTA phase C, C7.10 C2) by @Jinwoo-H in https://github.com/stablyai/orca/pull/22099
- feat: support Antigravity as supervised worker by @beattlekid in https://github.com/stablyai/orca/pull/21705
- test(mobile): repin the session page closure at 4,360 after #21705 reached it by @Jinwoo-H in https://github.com/stablyai/orca/pull/22135
- fix(mobile): the Android audio engine forgets a stop issued while paused by @Jinwoo-H in https://github.com/stablyai/orca/pull/22132
- fix(macos): tell the user when Orca's terminal service can't read their folder, and walk them through the fix by @Jinwoo-H in https://github.com/stablyai/orca/pull/21923
- fix(mobile): serialize a list the engine nested inside a paragraph (rich editor follow-up) by @Jinwoo-H in https://github.com/stablyai/orca/pull/22145
- fix(mobile): a same-build cache hit persists the fresh manifest (OTA phase D1) by @Jinwoo-H in https://github.com/stablyai/orca/pull/22139
- fix(ssh): keep the generation floor when a target is removed and recreated by @nwparker in https://github.com/stablyai/orca/pull/22146
- fix(browser): notify state on offscreen page navigation commit by @AmethystLiang in https://github.com/stablyai/orca/pull/21703
- fix(mobile): a granted microphone tap launches no permission activity, and an aborted start says so by @Jinwoo-H in https://github.com/stablyai/orca/pull/22150
- Lower filter chip contrast to indicate read-only status by @AmethystLiang in https://github.com/stablyai/orca/pull/21751
- Refactor editor header file rename to breadcrumb morph UI by @AmethystLiang in https://github.com/stablyai/orca/pull/21265
- feat(mobile): the shell tells a page which optional capabilities it has (OTA phase D, C8.1) by @Jinwoo-H in https://github.com/stablyai/orca/pull/22141
- test(mobile): the web app's script fence is re-derived from a measured sweep (OTA phase C, C7.8) by @Jinwoo-H in https://github.com/stablyai/orca/pull/22152
- fix(relay): keep the backend service out of the same-cap wave; the capacity role cannot update it by @Jinwoo-H in https://github.com/stablyai/orca/pull/22140
- fix(renderer): contain Monaco initialization failures by @OrcaWin in https://github.com/stablyai/orca/pull/21555
- fix(relay): let a same-cap cell plan delete the deposed template a failed wave left behind by @Jinwoo-H in https://github.com/stablyai/orca/pull/22170
- refactor(mobile): the host-scoping rewrite moves out of the terminal's HTML by @Jinwoo-H in https://github.com/stablyai/orca/pull/22172
- test(mobile): an offline cold start reads the grants of the last manifest accepted (OTA phase D, finding 7) by @Jinwoo-H in https://github.com/stablyai/orca/pull/22175
- Fix stale listings when search query changes by @AmethystLiang in https://github.com/stablyai/orca/pull/22173
- test(config): the render rig's navigation wait is bounded, and the frame-budget sweep reads the frames its capture painted by @Jinwoo-H in https://github.com/stablyai/orca/pull/22177
- fix(mobile): contain the older-history page's rejection at its own boundary, and re-record its family by @Jinwoo-H in https://github.com/stablyai/orca/pull/22179
- test(mobile): repin the recording corpus to main's tip after #22179 by @Jinwoo-H in https://github.com/stablyai/orca/pull/22185
- fix(mobile): the catch-all carries a deep link's query, and reads a trailing rest-segment pattern (OTA phase D, C8 carry-forwards) by @Jinwoo-H in https://github.com/stablyai/orca/pull/22180
- fix(mobile): the page runs one Zod (OTA phase C, C6.5 follow-up) by @Jinwoo-H in https://github.com/stablyai/orca/pull/22182
- fix(mobile): write live-input text through a seam the page can honour by @Jinwoo-H in https://github.com/stablyai/orca/pull/22189
- feat(mobile): one build-time switch picks native or OTA, default native (OTA phase E1) by @Jinwoo-H in https://github.com/stablyai/orca/pull/22193
- fix(mobile): the shell swaps the page's client identity so its terminal reaches init by @Jinwoo-H in https://github.com/stablyai/orca/pull/22201
- fix(daemon): reap terminal descendants during shutdown by @OrcaWin in https://github.com/stablyai/orca/pull/22232
- build(mobile): key Metro's transform cache on the shell build kind by @Jinwoo-H in https://github.com/stablyai/orca/pull/22244
- fix(mobile): the page stops writing, importing and requesting what it cannot use by @Jinwoo-H in https://github.com/stablyai/orca/pull/22241
- fix(linux): release orphaned processes when their owner exits by @OrcaWin in https://github.com/stablyai/orca/pull/22247
- fix(mobile): a refused dictation start says why by @Jinwoo-H in https://github.com/stablyai/orca/pull/22256
- fix(mobile): a refused update serves the cached generation while the host is up by @Jinwoo-H in https://github.com/stablyai/orca/pull/22237
- fix(mobile): the page's live input stays above the soft keyboard by @Jinwoo-H in https://github.com/stablyai/orca/pull/22252
- test(config): the session render rig waits for the reads it asserts by @Jinwoo-H in https://github.com/stablyai/orca/pull/22269
- fix(mobile): keep a painted frame under the page until its first paint by @Jinwoo-H in https://github.com/stablyai/orca/pull/22264
- test(agent-launch): pin per-call-site behaviour of the launch funnel by @brennanb2025 in https://github.com/stablyai/orca/pull/22116
- feat(agent-launch): report the pane a terminal launch created by @brennanb2025 in https://github.com/stablyai/orca/pull/22108
- fix(mobile): the page never removes a host, and stops bundling push by @Jinwoo-H in https://github.com/stablyai/orca/pull/22283
- fix(push): bound the delivery claim, delete finished batches, and keep a connection for requests by @Jinwoo-H in https://github.com/stablyai/orca/pull/22307
- fix(mobile): an accessory Enter ends the field's editing session, and the page's Enter survives a composition by @Jinwoo-H in https://github.com/stablyai/orca/pull/22300
- feat(mobile): the device Back key reaches the page by @Jinwoo-H in https://github.com/stablyai/orca/pull/22308
- fix(native-chat): hide delete for structured history by @brennanb2025 in https://github.com/stablyai/orca/pull/22106
- fix(agent-status): a structured session with live child work reads as working by @brennanb2025 in https://github.com/stablyai/orca/pull/22295
- refactor(ai-vault): read Codex's stated subagent parentage instead of a boolean by @brennanb2025 in https://github.com/stablyai/orca/pull/22298
- fix(native-chat): journal rows name the agent that produced them by @brennanb2025 in https://github.com/stablyai/orca/pull/22299
- fix(cli): describe Linear write support by @AtejiMan in https://github.com/stablyai/orca/pull/21830
- feat(mobile): a failed hybrid-shell update is recorded on the device and shown in Troubleshoot by @Jinwoo-H in https://github.com/stablyai/orca/pull/22321
- fix(sidebar): hang the subagent chevron in the card gutter by @brennanb2025 in https://github.com/stablyai/orca/pull/22331
- fix(usage): price GPT-6 Sol/Luna, Opus 5.5 and Fable 5.1, and correct GPT-5.6 rates by @Jinwoo-H in https://github.com/stablyai/orca/pull/22350
- fix(mobile): the page offers no control whose only effect is a re-dial it cannot make by @Jinwoo-H in https://github.com/stablyai/orca/pull/22326
- fix(mobile): removing a host deletes its page cache through the one process store by @Jinwoo-H in https://github.com/stablyai/orca/pull/22352
- fix(mobile): Back with an unsaved markdown draft prompts on the page too by @Jinwoo-H in https://github.com/stablyai/orca/pull/22362
- fix(browser): scope back/forward/reload/zoom/grab shortcuts to the originating split by @Jinwoo-H in https://github.com/stablyai/orca/pull/22340
- fix(mobile): the page's auth-failed banner offers Re-pair again by @Jinwoo-H in https://github.com/stablyai/orca/pull/22363
- fix(usage): price Codex long context per request, not per aggregate by @Jinwoo-H in https://github.com/stablyai/orca/pull/22360
- fix(browser): scope floating browser shortcuts to their own panel by @Jinwoo-H in https://github.com/stablyai/orca/pull/22361
- fix(worktrees): a listing that predates a create can no longer retire the new workspace by @brennanb2025 in https://github.com/stablyai/orca/pull/22311
- feat(native-chat): notify on every settled structured turn by @brennanb2025 in https://github.com/stablyai/orca/pull/22105
- feat(telemetry): report the macOS daemon's code identity on adoption and folder-denial events by @Jinwoo-H in https://github.com/stablyai/orca/pull/22171
- feat(agents): add first-class Muse Code harness by @nwparker in https://github.com/stablyai/orca/pull/22216
- fix(explorer): find files by name in large local workspaces by @nwparker in https://github.com/stablyai/orca/pull/22369
- fix(cli): report a denied runtime connection instead of a dead Orca by @Jinwoo-H in https://github.com/stablyai/orca/pull/22341
- feat(relay): declare Asia cell c30 at the c27 shape by @Jinwoo-H in https://github.com/stablyai/orca/pull/22375
- perf(mobile): keep four bundle chunk reads in flight across the whole manifest (OTA phase C follow-up) by @Jinwoo-H in https://github.com/stablyai/orca/pull/22376
- test(opencode): pin the installed OpenCode plugin to a v2-loadable default export by @nwparker in https://github.com/stablyai/orca/pull/22389
- fix(cloud): compare the Asia topology budget gate against the measured 500-connection default by @Jinwoo-H in https://github.com/stablyai/orca/pull/22386
- test(mobile): repin the recording corpus to main's tip after #22376 by @Jinwoo-H in https://github.com/stablyai/orca/pull/22394
- fix(opencode-usage): read OpenCode 2 session_v2 token totals by @nwparker in https://github.com/stablyai/orca/pull/22391
- fix(opencode2): only treat the question tool's form as a pane blocker by @nwparker in https://github.com/stablyai/orca/pull/22399
- feat(orchestration): accept Muse model and effort for supervised workers by @nwparker in https://github.com/stablyai/orca/pull/22383
- feat(editor): add a setting to turn off preview tabs by @nwparker in https://github.com/stablyai/orca/pull/22398
- docs(wechat): point community QR code at group 10 by @AmethystLiang in https://github.com/stablyai/orca/pull/22403
- feat(mobile-web-bundle): gzipped 384 KiB ranges over a capability-negotiated mobileWeb.bundle.range (OTA phase C follow-up) by @Jinwoo-H in https://github.com/stablyai/orca/pull/22381
- fix(native-chat): keep a structured agent's tool line between tool calls by @brennanb2025 in https://github.com/stablyai/orca/pull/22349
- fix(cloud): gate the Asia canary on its own cell's SQL failures, not the directors' by @Jinwoo-H in https://github.com/stablyai/orca/pull/22405
- feat(usage): add Muse Code local usage provider by @nwparker in https://github.com/stablyai/orca/pull/22379
- fix(runtime): budget explicit terminal close for the daemon's immediate-kill verdict by @nwparker in https://github.com/stablyai/orca/pull/22385
- test(mobile): repin the recording corpus to main's tip after #22381 by @Jinwoo-H in https://github.com/stablyai/orca/pull/22407
- fix(runtime): answer startup terminal queries for background-created terminals by @nwparker in https://github.com/stablyai/orca/pull/22384
- test(mobile): move the session closure pin past the structured tool-line module by @Jinwoo-H in https://github.com/stablyai/orca/pull/22430
- chore(relay): treat Asia cell c30 as a general cell now that it is promoted by @Jinwoo-H in https://github.com/stablyai/orca/pull/22439
- fix(relay): stop rehoming hosts off Asia cells until the lock fix lands by @Jinwoo-H in https://github.com/stablyai/orca/pull/22443
- feat(relay): alert on relay cell table lock convoys by @Jinwoo-H in https://github.com/stablyai/orca/pull/22446
- fix(relay): lock only the target cell row, last and NOWAIT, in the rehome commit by @Jinwoo-H in https://github.com/stablyai/orca/pull/22449
- fix(editor): map Salesforce Apex extensions to the apex language id by @bdJohnson72 in https://github.com/stablyai/orca/pull/14287
- Optimize cloud-verify workflow to scan HEAD instead of all history by @AmethystLiang in https://github.com/stablyai/orca/pull/22457
- feat(agent-launch): let a caller reserve the pane its terminal launch creates by @brennanb2025 in https://github.com/stablyai/orca/pull/22291
- feat(native-chat): show a Codex chat's goal above the composer, and set it from goal mode by @brennanb2025 in https://github.com/stablyai/orca/pull/22377
- fix(native-chat): keep one live tool-run header from a call's start to the turn's end by @brennanb2025 in https://github.com/stablyai/orca/pull/22432
- feat(sidebar): copy workspace name from context menu by @AmethystLiang in https://github.com/stablyai/orca/pull/22338
- fix(relay): accept production cells past c29 in the regional rehome operator by @Jinwoo-H in https://github.com/stablyai/orca/pull/22518
- feat(ipynb): render notebooks like a notebook, with seamless click-to-edit cells by @Jinwoo-H in https://github.com/stablyai/orca/pull/22519
- fix(ai-vault-search): prevent parent-string retention during indexing by @OrcaWin in https://github.com/stablyai/orca/pull/22545
- fix(native-chat): underline only file links a click can act on by @brennanb2025 in https://github.com/stablyai/orca/pull/22370
- test(file-search): pin request-key listings against the real runtime shape by @AmethystLiang in https://github.com/stablyai/orca/pull/22312
- fix: explain Xcode-blocked Git once in the sidebar and rescan on return by @Jinwoo-H in https://github.com/stablyai/orca/pull/22552
- fix(opencode2): block on any session-owned form, not just the question tool's by @nwparker in https://github.com/stablyai/orca/pull/22548
- fix(mobile): keep the shell's window insets out of the page WebView (OTA phase C follow-up) by @Jinwoo-H in https://github.com/stablyai/orca/pull/22549
- feat(native-chat): one shell-environment setting for every structured chat by @brennanb2025 in https://github.com/stablyai/orca/pull/22387
- fix(browser): only pixel-capturing commands wait for the page to be drawn by @Jinwoo-H in https://github.com/stablyai/orca/pull/22528
- fix(ai-vault-search): own buffered transcript rows before they pin the parent by @nwparker in https://github.com/stablyai/orca/pull/22563
- test(runtime): stop worker-recovery retries from scanning inside later tests by @nwparker in https://github.com/stablyai/orca/pull/22567
- feat(agent-launch): let a caller reserve the chat session, and start terminal launches with the session picks by @brennanb2025 in https://github.com/stablyai/orca/pull/22523
- fix(mobile): route the bottom drawer's keyboard through the platform seam (OTA phase C follow-up) by @Jinwoo-H in https://github.com/stablyai/orca/pull/22556
- fix(mobile-web): page inputs lose the browser focus ring and hairlines draw one device pixel (OTA phase C follow-up) by @Jinwoo-H in https://github.com/stablyai/orca/pull/22569
- fix(native-chat): dock the task strip on the goal tab by @brennanb2025 in https://github.com/stablyai/orca/pull/22530
- feat(mobile): the page owns its safe area, like a native screen (OTA phase C follow-up) by @Jinwoo-H in https://github.com/stablyai/orca/pull/22570
- docs: remove duplicate Muse badge from README by @FumingPower3925 in https://github.com/stablyai/orca/pull/22497
- test(mobile): repin the recording corpus to main's tip after the page safe-area and polish PRs by @Jinwoo-H in https://github.com/stablyai/orca/pull/22576
- refactor(tabs): delete the terminal tab's dead adopted-session field by @brennanb2025 in https://github.com/stablyai/orca/pull/22557
- feat: name runtime machines by @brennanb2025 in https://github.com/stablyai/orca/pull/22094
- fix(opencode-usage): merge migrated session usage per column, not per row by @nwparker in https://github.com/stablyai/orca/pull/22550
- test(runtime): isolate per-repo worktree scan expiry from the shared timer queue by @brennanb2025 in https://github.com/stablyai/orca/pull/22575
- feat(agent-status): publish the main agent's own state beside the combined row state by @brennanb2025 in https://github.com/stablyai/orca/pull/22452
- fix(opencode): give the opencode2 status plugin a distinct id by @nwparker in https://github.com/stablyai/orca/pull/22544
- fix(browser): let pixel capture hold its own page drawn, without the desktop window by @Jinwoo-H in https://github.com/stablyai/orca/pull/22534
- refactor(browser): remove the unused screenshot-prep visibility helper by @Jinwoo-H in https://github.com/stablyai/orca/pull/22526
- fix(agents): stop claiming an unconfirmed OpenCode handoff succeeded by @nwparker in https://github.com/stablyai/orca/pull/22546
- fix(claude): resume a native chat from its real latest message by @brennanb2025 in https://github.com/stablyai/orca/pull/22395
- fix(opencode2): resolve subagent session lineage so child work stops taking over the pane by @nwparker in https://github.com/stablyai/orca/pull/22444
- test(opencode): cover the opencode2 host-env branch and stop inheriting ORCA_OPENCODE_AGENT by @nwparker in https://github.com/stablyai/orca/pull/22547
- fix(rate-limits): read OpenCode Go usage with the Go API key by @nwparker in https://github.com/stablyai/orca/pull/22551
- fix(native-chat): show every user message on the message rail, not just loaded ones by @brennanb2025 in https://github.com/stablyai/orca/pull/22558
- docs(tui-agent-config): correct the OpenCode readiness-budget rationale by @nwparker in https://github.com/stablyai/orca/pull/22593
- fix(relay): drain a same-cap cell over 5 minutes, not 2 by @Jinwoo-H in https://github.com/stablyai/orca/pull/22584
- feat(ipynb): run notebook cells in a persistent Jupyter kernel by @Jinwoo-H in https://github.com/stablyai/orca/pull/22581
- fix(native-chat): keep chats that failed to resume in the status bar and say what to do by @brennanb2025 in https://github.com/stablyai/orca/pull/22448
- revert: #18790 (orchestration incarnation reap fallback and bundled Freebuff agent) by @brennanb2025 in https://github.com/stablyai/orca/pull/22601
- feat(agent-status): combine Codex child work through the shared main-agent status fold by @brennanb2025 in https://github.com/stablyai/orca/pull/22475
- fix(orchestration): type a request ahead of pasted dispatch briefs so Claude workers follow them by @Jinwoo-H in https://github.com/stablyai/orca/pull/22582
- test(terminal): pin Option-composed currency on a punctuation key by @nwparker in https://github.com/stablyai/orca/pull/22608
- fix(file-explorer): toggle folder instantly on name click by @LesleyMurfin in https://github.com/stablyai/orca/pull/22325
- fix(opencode): retire a subagent's blocker when the root turn ends by @nwparker in https://github.com/stablyai/orca/pull/22604
- feat(native-chat): show context window usage in the composer by @brennanb2025 in https://github.com/stablyai/orca/pull/22301
- fix(worktrees): version every catalog publication so a stale listing cannot undo a create by @brennanb2025 in https://github.com/stablyai/orca/pull/22507
- fix(terminal): let Linux IMEs keep the candidate key for a preedit they own by @nwparker in https://github.com/stablyai/orca/pull/22607
- fix(agent-status): count only agent work in stats, and read a Grok background subagent as working by @brennanb2025 in https://github.com/stablyai/orca/pull/22474
- fix(mobile): keep the streamed browser pane flipping on slow phones, and stop double taps by @Jinwoo-H in https://github.com/stablyai/orca/pull/22392
- fix(floating-workspace): keep agent launches from moving the main window's tab by @brennanb2025 in https://github.com/stablyai/orca/pull/22603
- Add missing translations for artifacts and browsing by @AmethystLiang in https://github.com/stablyai/orca/pull/22697
- test(mobile): repin the RPC recording corpus and session closure after #22392 by @Jinwoo-H in https://github.com/stablyai/orca/pull/22702
- fix(mobile): restart the streamed browser pane on every return to the app by @Jinwoo-H in https://github.com/stablyai/orca/pull/22694
- fix(i18n): align ko artifacts search keyword with value override by @AmethystLiang in https://github.com/stablyai/orca/pull/22711
- fix(native-chat): load older messages automatically before the reader reaches the top by @brennanb2025 in https://github.com/stablyai/orca/pull/22541
- feat(ipynb): create a .venv when pip is locked out, and show ipykernel setup progress by @Jinwoo-H in https://github.com/stablyai/orca/pull/22710
- fix(native-chat): record which Codex agent produced each journal row by @brennanb2025 in https://github.com/stablyai/orca/pull/22532
- fix(browser): import empty-value Chromium cookies instead of their domain hash by @Jinwoo-H in https://github.com/stablyai/orca/pull/22719
- feat(native-chat): add a hover copy button to sent messages by @brennanb2025 in https://github.com/stablyai/orca/pull/22721
- feat(agent-session): let the host own a chat's tab id and let a create reserve it by @brennanb2025 in https://github.com/stablyai/orca/pull/22616
- fix(claude): open structured chat without a startup deadline, and make Retry start fresh by @brennanb2025 in https://github.com/stablyai/orca/pull/22364
- fix(skills): recognize symlinked provider skill roots by @aaryanporwal in https://github.com/stablyai/orca/pull/22606
- fix(native-chat): date a session by its own lifecycle, not its subagents' work by @brennanb2025 in https://github.com/stablyai/orca/pull/22520
- fix(agent-launch): a cwd at the workspace root no longer forces a terminal by @brennanb2025 in https://github.com/stablyai/orca/pull/22729
- docs: update translated Android APK links to 0.0.50 by @AmethystLiang in https://github.com/stablyai/orca/pull/22740
- feat(search): bundle ripgrep for local, WSL, and SSH search by @nwparker in https://github.com/stablyai/orca/pull/22396
- fix(pi): stop pi-subagents workflows from pinning a pane on working by @mmarabel in https://github.com/stablyai/orca/pull/22533
- fix(agent-history): list older Pi sessions in Workspace and Project views by @mmarabel in https://github.com/stablyai/orca/pull/22482
- fix(agent-status): end a Claude helper's turn when an API error stops it by @brennanb2025 in https://github.com/stablyai/orca/pull/22745
- fix(pi): isolate status ownership in new terminals by @mmarabel in https://github.com/stablyai/orca/pull/22717
- docs: restore translated README assets reverted by stale APK bump by @Jinwoo-H in https://github.com/stablyai/orca/pull/22755
- fix(daemon): rebase durable checkpoints on the live terminal by @Jinwoo-H in https://github.com/stablyai/orca/pull/22732
- fix(terminal): one process-boundary ground for every known or proven boundary by @Jinwoo-H in https://github.com/stablyai/orca/pull/22735
- Fix translated readme links and WeChat group references by @AmethystLiang in https://github.com/stablyai/orca/pull/22763
- test: remove redundant mobile and GitLab checks by @AmethystLiang in https://github.com/stablyai/orca/pull/22748
- fix(agent-status): a cancel never hides live work by @brennanb2025 in https://github.com/stablyai/orca/pull/22476
- fix(codex): a Codex native chat that never sent a message reopens after restart by @brennanb2025 in https://github.com/stablyai/orca/pull/22639
- feat(agent-status): child work records say what the child is doing, how it ended, and when by @brennanb2025 in https://github.com/stablyai/orca/pull/22521
- fix(terminal): ground a program that dies with input modes armed on the normal screen by @Jinwoo-H in https://github.com/stablyai/orca/pull/22739
- fix(terminal): prove an idle Git Bash prompt through its bin launcher by @Jinwoo-H in https://github.com/stablyai/orca/pull/22752
- fix(terminal): serialize only the visible width after a column shrink by @Jinwoo-H in https://github.com/stablyai/orca/pull/22586
- fix(terminal): stop dropping visible alt-screen output tagged as hidden-resize repaint by @Jinwoo-H in https://github.com/stablyai/orca/pull/22587
- feat(mobile): name the machine after pairing by @brennanb2025 in https://github.com/stablyai/orca/pull/22104
- fix(release): run the tag's own skill freshness inventory tests in the release gate by @brennanb2025 in https://github.com/stablyai/orca/pull/22775
- fix(native-chat): show the Codex and Claude model picker the moment a chat opens by @brennanb2025 in https://github.com/stablyai/orca/pull/22756
- fix(native-chat): offer a resume for every chat that was working, and say what it was doing by @brennanb2025 in https://github.com/stablyai/orca/pull/22560
- fix(terminal): make Codex restart replace the pane's process instead of reattaching it by @brennanb2025 in https://github.com/stablyai/orca/pull/22737
- refactor(orchestration): give structured sessions an orchestration actor column by @brennanb2025 in https://github.com/stablyai/orca/pull/22522
- fix(native-chat): keep the running-work strip above a pending question card by @brennanb2025 in https://github.com/stablyai/orca/pull/22779
- feat(agents): add first-class ZCode harness by @nwparker in https://github.com/stablyai/orca/pull/22464
- feat(zcode): explain a ZCode build that has no terminal UI by @nwparker in https://github.com/stablyai/orca/pull/22730
- fix(feedback): send text-only report when screenshots exceed the upload limit by @mmarabel in https://github.com/stablyai/orca/pull/22508
- fix(lint): include .mts and .cts in line-limit checks by @nwparker in https://github.com/stablyai/orca/pull/22413
- fix(mobile): the page's terminal shows its last rows above the command dock (OTA phase C follow-up) by @Jinwoo-H in https://github.com/stablyai/orca/pull/22806
- refactor(native-chat): remove the unused terminal handoff by @brennanb2025 in https://github.com/stablyai/orca/pull/22783
- fix(claude): let a Claude chat start again after its root exited with unverifiable descendants by @brennanb2025 in https://github.com/stablyai/orca/pull/22802
- Show close button for single terminal panes by @AmethystLiang in https://github.com/stablyai/orca/pull/22770
- fix(native-chat): keep an idle chat alive while its subagents or background commands run by @brennanb2025 in https://github.com/stablyai/orca/pull/22794
- chore(i18n): translate 85 new keys to es/fr/ja/ko/zh by @AmethystLiang in https://github.com/stablyai/orca/pull/22746
- fix(desktop): release a native chat when you leave it, so its idle clock can start by @brennanb2025 in https://github.com/stablyai/orca/pull/22801
- fix(mobile): keep terminal input working when reopening worktrees by @shaharmor in https://github.com/stablyai/orca/pull/22505
- Simplify .map().flat() to .flatMap() in onboarding tests by @AmethystLiang in https://github.com/stablyai/orca/pull/22917
- feat(native-chat): Claude sessions write their subagents into the host status store by @brennanb2025 in https://github.com/stablyai/orca/pull/22536
- feat(feature-tips): one-time tip for agent session search by @Jinwoo-H in https://github.com/stablyai/orca/pull/22923
- fix(codex): Codex 0.157+ starts in Orca-managed homes instead of failing with SUN_LEN by @OrcaWin in https://github.com/stablyai/orca/pull/22878
- fix(runtime-environments): don't crash when a server removed via the CLI still responds by @mmarabel in https://github.com/stablyai/orca/pull/22517
- fix(claude): prove a stopped chat's child processes gone when they exit with it by @brennanb2025 in https://github.com/stablyai/orca/pull/22918
- fix(web): keep Remote Web loading over plain HTTP without crypto.randomUUID by @mmarabel in https://github.com/stablyai/orca/pull/22516
- fix(native-chat): send typed question answers as structured answers, not an option id by @brennanb2025 in https://github.com/stablyai/orca/pull/22793
- fix(mobile): the page's Live input on Android echoes each letter as typed (OTA phase C follow-up) by @Jinwoo-H in https://github.com/stablyai/orca/pull/22958
- refactor(agent-session): keep which conversation each chat tab shows in one host table by @brennanb2025 in https://github.com/stablyai/orca/pull/22709
- fix(claude): end a Claude chat on its root's exit even when a descendant survived by @brennanb2025 in https://github.com/stablyai/orca/pull/22946
- refactor(orchestration): resolve every caller and target to one orchestration party, keyed by the Orca session id by @brennanb2025 in https://github.com/stablyai/orca/pull/22555
- fix(mobile): a terminal opens once at the phone's size, on the page and natively (OTA phase C follow-up) by @Jinwoo-H in https://github.com/stablyai/orca/pull/22960
- fix(mobile): update fflate for security advisory by @nwparker in https://github.com/stablyai/orca/pull/22961
- fix(native-chat): every journal append reaches the chats that are open by @brennanb2025 in https://github.com/stablyai/orca/pull/22811
- fix(native-chat): report a chat's owner from its record, not its running agent by @brennanb2025 in https://github.com/stablyai/orca/pull/22808
- fix(worktrees): keep failed orphan cleanup retryable by @nwparker in https://github.com/stablyai/orca/pull/22409
- fix(native-chat): name a chat write by its target, not the owner generation by @brennanb2025 in https://github.com/stablyai/orca/pull/22812
- fix(processes): bound descendant traversal on cyclic snapshots by @nwparker in https://github.com/stablyai/orca/pull/22411
- feat(rate-limits): add Cursor usage tracking by @nwparker in https://github.com/stablyai/orca/pull/22633
- chore(deps): refresh maintained dependencies by @nwparker in https://github.com/stablyai/orca/pull/22964
- fix(native-chat): keep terminal pane chat ownership stable by @OrcaWin in https://github.com/stablyai/orca/pull/22984
- Preserve local SSH terminal splits during reconnect by @OrcaWin in https://github.com/stablyai/orca/pull/22991
- fix(ipynb): run no workspace interpreter until the notebook is trusted by @brennanb2025 in https://github.com/stablyai/orca/pull/22962
- fix(mobile): give each host field one writer so relay routing can't revert edits by @Jinwoo-H in https://github.com/stablyai/orca/pull/22956
- fix(editor): highlight scoped dotenv filenames on desktop and mobile by @nwparker in https://github.com/stablyai/orca/pull/22416
- refactor(mobile): the live input's composing range comes from a platform seam pair by @Jinwoo-H in https://github.com/stablyai/orca/pull/23037
- fix(editor): use the bundled ABAP grammar by @nwparker in https://github.com/stablyai/orca/pull/22417
- fix(native-chat): preserve current pane ownership through toggles and restore by @OrcaWin in https://github.com/stablyai/orca/pull/23049
- fix(hooks): accept repeated leading BOMs in hook JSON by @nwparker in https://github.com/stablyai/orca/pull/22414
- fix(cli): keep the WSL distro when adding managed accounts by @nwparker in https://github.com/stablyai/orca/pull/22418
- fix(jira): bypass collection caches on explicit refresh by @nwparker in https://github.com/stablyai/orca/pull/22419
- fix(pdf): keep the search counter in sync with selected matches by @nwparker in https://github.com/stablyai/orca/pull/22420
- fix(projects): refresh stale automatic GitHub icons during enrichment by @nwparker in https://github.com/stablyai/orca/pull/22421
- fix(kimi): preserve config permissions during hook writes by @nwparker in https://github.com/stablyai/orca/pull/22422
- fix(toast): keep folder errors above standard modal backdrops by @nwparker in https://github.com/stablyai/orca/pull/22423
- fix(usage): preserve full Windows Codex file identities by @nwparker in https://github.com/stablyai/orca/pull/22424
- fix(agents): honor environment prefixes in generation commands by @nwparker in https://github.com/stablyai/orca/pull/22427
- test(mobile): repin RPC goldens to main after #22956's squash by @Jinwoo-H in https://github.com/stablyai/orca/pull/23046
- fix(tasks): read a malformed saved Linear team selection as sticky-all instead of crashing the page by @OrcaWin in https://github.com/stablyai/orca/pull/22279
- fix(native-chat): every lease latch has a way to die by @brennanb2025 in https://github.com/stablyai/orca/pull/22820
- fix(types): keep command environments compatible with mobile compilation by @OrcaWin in https://github.com/stablyai/orca/pull/23073
- Prioritize workspace opening over replacement checkout preparation by @nwparker in https://github.com/stablyai/orca/pull/23013
- chore(i18n): translate 113 new keys to es/fr/ja/ko/zh by @AmethystLiang in https://github.com/stablyai/orca/pull/23067
- fix(codex): retain runtime MCP entries without losing revocation by @nwparker in https://github.com/stablyai/orca/pull/22426
- Provide the Orca CLI automatically in managed WSL terminals by @OrcaWin in https://github.com/stablyai/orca/pull/22761
- fix(mobile): label direct paths with the shared Tailscale check by @Jinwoo-H in https://github.com/stablyai/orca/pull/23039
- test(terminal): re-pin the pane hook-order parity past #23049 by @Jinwoo-H in https://github.com/stablyai/orca/pull/23090
- Persist profile state in SQLite with a durable background writer by @OrcaWin in https://github.com/stablyai/orca/pull/22612
- fix(native-chat): keep chat visible when detaching its pane by @OrcaWin in https://github.com/stablyai/orca/pull/23096
- perf(ci): reduce queue pressure without paid runners by @OrcaWin in https://github.com/stablyai/orca/pull/23053
- Run headless Orca with bundled Bun and preserve SQLite durability by @OrcaWin in https://github.com/stablyai/orca/pull/22635
- fix(terminal): a remounted new SSH tab keeps the shell its old pane was still spawning by @OrcaWin in https://github.com/stablyai/orca/pull/22578
- fix(sidebar): "Hide default branch" hides a folder project's root workspace by @OrcaWin in https://github.com/stablyai/orca/pull/22744
- fix(startup): hold desktop activations until the startup window exists by @OrcaWin in https://github.com/stablyai/orca/pull/22495
- fix(startup): read the install-dir package ACL as SDDL so a repaired folder reads clean on Chinese/Japanese/Korean Windows by @OrcaWin in https://github.com/stablyai/orca/pull/22490
- fix(windows): reuse shared PowerShell literal quoting at every hand-rolled escaper by @OrcaWin in https://github.com/stablyai/orca/pull/23083
- ci: verify mobile disposal and balance unit-test costs by @OrcaWin in https://github.com/stablyai/orca/pull/23114
- Leave Open Settings unbound by default by @nwparker in https://github.com/stablyai/orca/pull/23136
- fix(terminal): damp park-verdict churn that is too slow to burst by @OrcaWin in https://github.com/stablyai/orca/pull/20851
- Reduce redundant CI runs, pnpm uploads, and fixture startups by @OrcaWin in https://github.com/stablyai/orca/pull/23145
- Wait for foreground job readiness in the Bun Ctrl-Z test by @OrcaWin in https://github.com/stablyai/orca/pull/23158
- fix(markdown): return focus to editor from find bar by @nwparker in https://github.com/stablyai/orca/pull/23175
- Make renderer delivery optional for headless terminals by @OrcaWin in https://github.com/stablyai/orca/pull/23117
- fix(persistence): reclaim Windows profile locks after PID reuse by @OrcaWin in https://github.com/stablyai/orca/pull/23122
- perf(chat): share matching concurrent transcript reads by @nwparker in https://github.com/stablyai/orca/pull/23172
- perf(editor): skip unchanged draft publications by @nwparker in https://github.com/stablyai/orca/pull/23173
- Optimize four CI follow-up paths by @OrcaWin in https://github.com/stablyai/orca/pull/23190
- fix(vault): read OpenCode SQLite inside WSL and SSH hosts by @OrcaWin in https://github.com/stablyai/orca/pull/23128
- Better add ai notes ui by @AmethystLiang in https://github.com/stablyai/orca/pull/21719
- fix(i18n): correct duration and turn-status copy across locales by @AmethystLiang in https://github.com/stablyai/orca/pull/23243
- Simplify filter-flatMap patterns to single flatMap operations by @AmethystLiang in https://github.com/stablyai/orca/pull/23242
- fix(renderer): let selector caches release retired app data by @OrcaWin in https://github.com/stablyai/orca/pull/23187
- Cancel
Release notes were truncated because GitHub release bodies are limited to 125,000 characters.