What's Changed
- fix(terminal): clear the SGR pen on hidden-output restore and abandon by @brennanb2025 in #14241
- test(e2e): stabilize release triage coverage by @AmethystLiang in #14328
- test(renderer): cover Agent Dashboard status replay fanout by @Jinwoo-H in #14036
- Deflake native chat watcher rebind test by @brennanb2025 in #14335
- fix(orchestration): retry silent mail pointers by @brennanb2025 in #14332
- fix(docs): replace stale preload typecheck reference by @HoonDongKang in #14298
- Remove icons from Non-Orca worktree sources by @brennanb2025 in #14345
- feat(dashboard): give the agent question state its own color and glyph by @brennanb2025 in #14248
- fix(worker-start): allow max effort on the gpt-5.6 Codex family by @kespineira in #14281
- feat(sidebar): replace the external-worktrees inbox list with one card by @brennanb2025 in #14341
- Fix native chat watcher identity race by @brennanb2025 in #14344
- fix(skills): use exported recipe id in environment guide by @erishforG in #14280
- feat(agent-map): flare fresh questions and finishes by @brennanb2025 in #14349
- fix(ai-vault): make the merged scan stamp independent of leg order by @nwparker in #14270
- fix(browser): fence the cookie-clear fallback to the pre-clear snapshot (STA-4170) by @brennanb2025 in #14343
- fix(daemon): isolate durable-history checkpoints per session (STA-4173) by @brennanb2025 in #14346
- revert(ssh): back out #13326 and #13928 — reconnect loses every tab by @nwparker in #14361
- fix(terminal): resolve legacy wrapper fallbacks from PATH only (STA-4169) by @nwparker in #14365
- fix(orchestration): wait for Claude composer render by @Jinwoo-H in #14342
- fix(orchestration): mark late dependents ready when deps already completed by @bbingz in #14163
- fix(orchestration): resolve explicit worker worktrees directly by @DTSFO in #14275
- fix(terminal): make the bold font weight its own setting by @brennanb2025 in #14368
- fix(serve): exit cleanly after headless Linux signals by @Jinwoo-H in #14334
- Fix paired remote terminal browser link creation by @OrcaWin in #14363
- fix(terminal): reject cwd-resolving PATH entries and harden the legacy wrappers by @nwparker in #14370
- fix(agent-status): preserve Codex escape interruption by @brennanb2025 in #14372
- fix(vm): make hidden SSH cleanup retryable by @Jinwoo-H in #14351
- feat(vm): define the provisioned-root recipe contract by @Jinwoo-H in #14352
- feat(vm): add main-owned provisioned SSH root adoption by @Jinwoo-H in #14353
- feat(vm): create workspaces from provisioned SSH roots by @Jinwoo-H in #14359
- fix(macos): recover severed terminal TCC attribution after updates by @OrcaWin in #13992
- feat(dashboard): give the agent map a real filter panel by @brennanb2025 in #14338
- fix(terminal): bake the wrapper interpreter and emit CRLF for cmd by @nwparker in #14382
- fix(ssh): reapply the reattach-identity work and stop the fallback fence stranding moved panes by @nwparker in #14384
- Fix Codex hook trust before manual shell launches by @brennanb2025 in #14326
- fix(updater): recover renderer shutdown checkpoint by @brennanb2025 in #14373
- fix(terminal): name the POSIX interpreter directly when generating on Windows by @nwparker in #14386
- fix(mobile): self-heal host opens and harden session liveness by @Jinwoo-H in #14333
- fix(terminal): clear CDPATH when resolving the wrapper directory by @nwparker in #14387
- Revert "fix(ssh): reapply the reattach-identity work and stop the fallback fence stranding moved panes" by @nwparker in #14395
- perf(worktrees): bound the duplicate-id scan in reuseEqualCatalogRows by @nwparker in #14271
- test(terminal): pin the wrapper security properties that survived mutation by @nwparker in #14394
- ci(windows): cover the worktree admin fingerprint on the Windows runner by @nwparker in #14378
- Center newly opened tabs at end, keep close controls visible by @AmethystLiang in #14314
- fix(orchestration): release federation ack checkpoints once a dispatch settles by @nwparker in #14380
- fix(worktree-scan): stop a stalled admin probe from poisoning repo refresh by @nwparker in #14379
- fix(workspaces): gate the GitLab palette number match on repo identity by @nwparker in #14381
- test(terminal): fix ordering pins that pass when the needle is absent by @nwparker in #14409
- Forward Unix launcher signals to orca serve supervisor by @Boulea7 in #14071
- fix(terminal): stop leaking raw PTY lifecycle tokens into the error toast by @nwparker in #14415
- fix(repos): re-probe git remote identity so a stale snapshot stops misjudging identity gates by @nwparker in #14414
- fix(workspaces): gate the GitHub palette number match on repo remote identity by @nwparker in #14413
- refactor(shared): split shared/types.ts into per-domain type modules by @nwparker in #14397
- refactor(shared): group worktree, github, and linear modules into folders by @nwparker in #14437
- refactor(preload): split the preload contract into per-domain api modules by @nwparker in #14403
- fix(stats): wrap long usage breakdown model names by @AmethystLiang in #14065
- fix(test): deflake relay exec env, project boundary, and speech resume tests by @nwparker in #14446
- Revert "Center newly opened tabs at end, keep close controls visible" by @AmethystLiang in #14450
- fix(native-chat): keep caller abort ahead of WSL gate refusal by @AmethystLiang in #14445
- refactor(store): unify the duplicated catalog equality and identity-key helpers by @nwparker in #13804
- fix(worktree-scan): keep the admin-fingerprint probe inside the caller's per-repo budget by @nwparker in #14454
- fix(agent-teams): require an absolute Orca CLI for the tmux shim by @nwparker in #14438
- fix(browser): acknowledge paired tab before navigation by @Jinwoo-H in #14402
- refactor(shared): drop the shared/types barrel and import from the real modules by @nwparker in #14447
- perf(renderer): parallelize runtime catalog and worktree refresh by @nwparker in #14138
- fix(browser): restore replaced cookies through CDP identities by @brennanb2025 in #14383
- fix(terminal): deliver Ctrl+C when a non-Latin input source rewrites the key by @nwparker in #14462
- refactor(sidebar): split WorktreeList into a worktree-list module by @nwparker in #14465
- fix(sidebar): satisfy extracted hook quality gates by @nwparker in #14467
- fix(renderer): stop git history hover from showing two tooltips by @AmethystLiang in #14468
- feat(workspaces): rework cleanup discovery and dialog by @brennanb2025 in #13413
- test(e2e): stabilize terminal failure coverage by @AmethystLiang in #14466
- fix(terminal): resolve Ctrl chords positionally on a non-Latin layout by @nwparker in #14469
- fix(agent-status): stop start-less child stops from minting phantom working by @brennanb2025 in #14375
- fix(runtime): cap remote git.diff and file previews at the transport budget by @nwparker in #14160
- revert: restore git history tooltip change for community PR by @AmethystLiang in #14485
- fix(renderer): remove duplicate git history tooltips by @dngur6344 in #14453
- fix(terminal): keep split error when rejected cleanup throws by @AmethystLiang in #14463
- perf(runtime): resolve an explicit worktree id without scanning every repo by @nwparker in #14399
- fix(terminal): strip the captured shim dir across trailing-separator spellings by @nwparker in #14439
- Terminate renderer graph reload generations and contain disposed-frame notifications by @Boulea7 in #14070
- test(e2e): headless preedit-geometry coverage for Korean and CJK terminal input by @nwparker in #14500
- fix(terminal): ground the emulator to the snapshot's baseline after a byte gap by @nwparker in #14374
- fix(linear): label Start workspace and add Open on Linear by @AmethystLiang in #14492
- fix(mobile): match desktop project and run target picker by @brennanb2025 in #14457
- Add global worktree visibility source defaults by @brennanb2025 in #14276
- fix(daemon): persist the pending-output counter across empty incremental takes (STA-4297) by @brennanb2025 in #14496
- fix(daemon): bound the caller's wait on final durable-history checkpoints (STA-4228) by @brennanb2025 in #14497
- fix(daemon): harden checkpoint admission after per-session isolation by @brennanb2025 in #14385
- fix(devin): preserve JSONC comments when writing hook config by @brennanb2025 in #14199
- fix(orchestration): wait for Codex composer render by @Jinwoo-H in #14575
- Keep other-client workspace filter visible for remote hosts by @Jinwoo-H in #14579
- fix(codex): resolve the launch preflight to a verified absolute Orca CLI path (STA-4270) by @brennanb2025 in #14458
- STA-4276: preflight Codex in Command Prompt and Git Bash by @brennanb2025 in #14441
- fix(agent-map): commit slider changes once (STA-4281) by @brennanb2025 in #14442
- fix(agent-launch): wait longer for cold-boot Codex composer before dropping prompt (STA-3367) by @brennanb2025 in #12853
- feat(native-chat): Extra high grok effort per model by @AmethystLiang in #14577
- fix(vm): preserve runtime sidecar rollback compatibility by @Jinwoo-H in #14444
- fix(vm): keep failed cleanup retryable by @Jinwoo-H in #14476
- fix(vm): harden provisioned root ownership and cleanup by @Jinwoo-H in #14477
- Keep other-client workspace filter visible during catalog hydration by @Jinwoo-H in #14595
- fix(source-control-ai): stop duplicating singleton CLI flags in agent argv by @brennanb2025 in #14585
- fix(git): allow bounded override of worktree-add timeout by @innocarpe in #12823
- fix(terminal): bracket agent-pane pastes so a pasted newline can't submit the draft by @brennanb2025 in #14456
- refactor(renderer): decompose App.tsx into an app-shell module by @nwparker in #14607
- fix(workspace-cleanup): make the Filters panel scrollable by @brennanb2025 in #14629
- fix(orchestration): stop fencing fresh-run callers and accept revoked coordinator after takeover by @leofmarciano in #11582
- fix(orchestration-cli): point dropped mutations at --retry-request by @brennanb2025 in #14586
- fix(orchestration): preserve mailbox delivery identity by @Jinwoo-H in #13717
- Split worktrees slice by @AmethystLiang in #14643
- fix: detect external git init on folder projects and upgrade to git repo by @fsdwen in #11480
- fix(i18n): correct Chinese translations by @DaQun in #14299
- fix(browser): keep browser guests painting when the workbench is hidden by @brennanb2025 in #14599
- fix(mobile): keep polling session tabs while an active terminal is pending-handle (STA-4256) by @brennanb2025 in #14623
- preserve agent badges when searching for tabs by @AmethystLiang in #14677
- fix(workspaces): gate the Jira palette match on the issue's tenant by @nwparker in #14671
- fix(repos): forget remote-identity deadlines for removed repo locations by @nwparker in #14672
- fix(skills): cancel and bound abandoned skill discovery scans by @nwparker in #14670
- fix(native-chat): stop glued rapid sends from pinning queued bubbles by @brennanb2025 in #14663
- fix(worktree): never reissue a generated workspace name by @brennanb2025 in #14350
- fix(macos): stop reporting every app update as severed TCC attribution by @brennanb2025 in #14655
- Update mobile 0.0.43 Android download links by @brennanb2025 in #14696
- fix(browser): align anti-detection identity signals by @brennanb2025 in #14685
- fix(mobile-native-chat): retire pending bubbles glued into one transcript row (mobile half of #14262) by @brennanb2025 in #14665
- fix(agent-launch): preserve cold Codex startup drafts by @brennanb2025 in #14688
- fix: keep remote visibility hydration off local startup path by @brennanb2025 in #14674
- fix(deps): bump transitive nanoid to 3.3.18 (GHSA-2v37-7h3g-55p8) by @nwparker in #14723
- fix(terminal): hold a cursor chord until the composing syllable commits by @nwparker in #14730
- perf(usage): index repos for worktree metadata by @nwparker in #8077
- feat(computer-use): support macOS middle click and stop the silent left-click fallback by @brennanb2025 in #14721
- refactor(tests): split every oversized test file off the max-lines suppression list by @nwparker in #14728
- fix(e2e): unblock golden file-link hover and Windows worktree activate by @AmethystLiang in #14720
- fix(terminal): make close and handles incarnation-stable (STA-4327) by @Jinwoo-H in #14590
- ci: post test vs non-test LoC on pull requests by @nwparker in #14738
- fix(workspace-cleanup): refuse removal when the owning host is not certain (STA-4343) by @brennanb2025 in #14731
- fix(ci): unbreak static analysis on main (restrict-template-expressions) by @nwparker in #14755
- perf: coalesce SSH git status reads by @nwparker in #11696
- perf(renderer): index web session tab reconciliation by @nwparker in #8098
- test(daemon): stop mutating process-global cwd in the daemon cwd-repair tests by @nwparker in #14750
- feat(shortcuts): warn when macOS Mission Control captures digit chords by @pythonstrup in #14734
- fix(terminal): stop the hidden-output restore re-arming itself after dispose by @nwparker in #14749
- Remove worktree deletion success toasts by @AmethystLiang in #14724
- refactor(sidebar): group worktree-list files by domain by @AmethystLiang in #14486
- fix(terminal): settle CLI prompts for Claude and Codex by @Jinwoo-H in #14608
- Revert "#14665 fix(mobile-native-chat): retire pending bubbles glued into one transcript row" by @AmethystLiang in #14819
- refactor(source-control): extract modules to half SourceControl.tsx by @AmethystLiang in #14396
- refactor(browser): split browser and browser-IPC modules under the max-lines budget by @nwparker in #14697
- refactor(ipc): split main-process IPC modules under the max-lines budget by @nwparker in #14703
- refactor(integrations): split issue-tracker clients under the max-lines budget by @nwparker in #14704
- refactor(hooks,relay): split agent hook services and relay under the max-lines budget by @nwparker in #14725
- refactor(usage): split AI-usage scanners and stores under the max-lines budget by @nwparker in #14668
- refactor(right-sidebar): split file explorer and sidebar under the max-lines budget by @nwparker in #14741
- refactor(editor): split Monaco, autosave and notebook modules under the max-lines budget by @nwparker in #14748
- refactor(panes,tabs): split pane manager and tab-group modules under the max-lines budget by @nwparker in #14760
- refactor(daemon,runtime): split daemon, pty and rpc modules under the max-lines budget by @nwparker in #14834
- refactor(source-control): split the dropdown action resolver under the max-lines budget by @nwparker in #14835
- fix(tab-bar): exclude disabled agents from new-tab search by @nwparker in #14824
- refactor(persistence): extract modules to half persistence.ts by @AmethystLiang in #14252
- Refactor: split editor.ts into modular state actions by @AmethystLiang in #14847
- ci: color added/deleted LoC counts in PR summary by @nwparker in #14839
- ci: render LoC + and - signs huge bold by @nwparker in #14855
- perf: coalesce git upstream status reads by @nwparker in #11697
- feat(crash-reporting): capture Crashpad minidumps and name the failing CHECK by @nwparker in #14823
- fix(editor): address review feedback on the split editor slice by @AmethystLiang in #14850
- fix(persistence): address review feedback on extracted modules by @AmethystLiang in #14862
- fix(worktrees): address review feedback on the worktrees slice split by @AmethystLiang in #14669
- fix(daemon): validate spawn cwd asynchronously so one dead share cannot freeze every terminal by @nwparker in #14848
- ci: run the daily macOS build 4 hours later by @AmethystLiang in #14869
- ci: run full e2e against the daily cut commit by @AmethystLiang in #14870
- feat(skills): add private bundle sharing by @Jinwoo-H in #14401
- feat(workspace): set project location from the create-worktree host picker by @nwparker in #14868
- Preserve OpenCode session across command completion, control SessionStart emission by @AmethystLiang in #14866
- Revert "#14401 feat(skills): add private bundle sharing" by @AmethystLiang in #14913
- Revert "#14868 feat(workspace): set project location from the create-worktree host picker" by @AmethystLiang in #14912
- docs: refresh WeChat group 7 QR by @OrcaWin in #14911
- fix(browser): route every cookie-import write through CDP identities (STA-4300) by @brennanb2025 in #14729
- Revert "#14866 Preserve OpenCode session across command completion" by @AmethystLiang in #14943
- Revert "#14729 fix(browser): route every cookie-import write through CDP identities" by @AmethystLiang in #14942
- fix(mobile): present pending Relay fallback accurately by @Jinwoo-H in #14922
- fix(shell-ready): preserve Bash PROMPT_COMMAND composition by @Jinwoo-H in #14619
- fix(terminal): type Option-composed ASCII instead of reporting it as a chord by @nwparker in #14743
- feat(skills): reland private bundle sharing safely by @Jinwoo-H in #14934
- feat(relay): prefer the closest available region by @Jinwoo-H in #14366
- refactor(shell): one portable Unix startup dialect instead of shell detection by @nwparker in #14863
- fix(crash-reporting): preserve coalesced repeat accounting by @brennanb2025 in #14666
- fix(terminal): keep unresolved snapshot-capability verdicts re-askable by @brennanb2025 in #14676
- fix(crash-reporting): give the parking census a retained breadcrumb slot without starving memory highwaters by @brennanb2025 in #14867
- fix(crash-reporting): stop post-mortem process metrics crowning a survivor as the crasher by @brennanb2025 in #14662
- fix(crash-reporting): decode POSIX wait statuses in crash-report display and record OS session ends by @brennanb2025 in #14659
- fix(terminal): clear the preedit overlay when an IME cancels a composition by @nwparker in #14758
- fix(daemon): bound cwd validation and attach-only requests on a dead share by @nwparker in #14966
- fix(crash-reporting): prune Crashpad dumps at startup and bound signature parsing by @nwparker in #14968
- Revert "#14922 fix(mobile): present pending Relay fallback accurately" by @AmethystLiang in #14976
- Refactor: split GitHubItemDialog into lifecycle-organized modules by @AmethystLiang in #14931
- Revert "#14863 refactor(shell): one portable Unix startup dialect instead of shell detection" by @AmethystLiang in #14975
- fix(daemon): bound cwd validation per UNC route by @nwparker in #14967
- reland(workspace): set project location from the create-worktree host picker by @nwparker in #14965
- fix(mobile): bound pending-handle session-tab recovery polling (STA-4407) by @brennanb2025 in #14916
- Reset terminal SGR state around restored output by @brennanb2025 in #14700
- fix(terminal): align Cursor Agent IME preedit anchor by @nwparker in #14982
- feat(browser): add a WebAuthn account picker by @brennanb2025 in #14687
- fix(browser): report cookies an import could not decrypt by @brennanb2025 in #14683
- Bump mobile app.json to 0.0.44 by @brennanb2025 in #14983
- fix(mobile): reland truthful Relay recovery status by @Jinwoo-H in #14986
- fix(grok): strip quotes from GROK_HOME in the Windows hook by @OrcaWin in #14985
- fix(browser): return a real PermissionStatus from the query override by @brennanb2025 in #14684
- fix(agent-status): announce Claude turn complete while background work runs by @brennanb2025 in #14580
- fix(agent-hooks): make the Windows managed hook survive Claude-hooks-compat consumers by @OrcaWin in #14825
- fix(terminal): inset the grid inside the xterm surface by @brennanb2025 in #14583
- feat(i18n): localize Automations settings and navigation to Korean by @hwantage in #15004
- Fix Windows horizontal computer-use scroll by @brennanb2025 in #14727
- test(crash-reporting): keep ambiguous whole-tree kills reportable by @brennanb2025 in #14667
- fix(commit-message): keep Windows paths intact in agent command overrides by @nwparker in #14984
- Split pull request page by @AmethystLiang in #14853
- Rethrow update errors after lineage recovery attempt by @OrcaWin in #15008
- revert(crash-reporting): drop the dead terminal_parking_pass retained-slot reservation (#14867) by @brennanb2025 in #15005
- fix(agent-hooks): default-form managed hook vars so a static precheck cannot reject them by @brennanb2025 in #14994
- fix(repos): never probe the client filesystem for a remote repo icon by @brennanb2025 in #14947
- feat(terminal): report execution host and listing scope in terminal list by @brennanb2025 in #14973
- fix(ci): run PR LoC scripts from the default branch, not PR head by @nwparker in #15016
- Remap SSH leases per execution host, not globally by @OrcaWin in #15009
- fix(browser): keep cookie-import warnings readable from newer hosts by @brennanb2025 in #15002
- refactor: split db.ts under 400 lines by @AmethystLiang in #14979
- fix(terminal): dispose a deferred IME chord instead of leaving it armed by @nwparker in #15017
- fix(skills): keep an unanswered skill root's last known skills instead of reporting none by @nwparker in #15015
- fix(terminal): verify agent prompt submission by @Jinwoo-H in #14962
- reland(shell): one portable Unix startup dialect, with both revert causes fixed by @nwparker in #15018
- fix(mobile): decide terminal preedit from the marked-text range, not a script table by @nwparker in #15007
- Include descendants in Pinned section when parent is pinned by @AmethystLiang in #15035
- fix(ssh): stop reporting a confirmed kill when the SSH provider is gone by @brennanb2025 in #14977
- fix(github): fail closed instead of running client git against a remote repoPath when the SSH provider is unregistered by @brennanb2025 in #14945
- fix(terminal): render the row tail the IME preedit overlay covers by @nwparker in #15014
- fix(orchestration): enforce task dispatch state invariant by @Jinwoo-H in #14961
- fix(cli): relativize absolute POSIX paths against UNC worktree roots in WSL by @stroland02 in #11406
- fix(skills): harden cross-host bundle installs by @Jinwoo-H in #15000
- fix(folder-workspaces): keep the broken-folder marker when a host sends a new reason by @brennanb2025 in #15027
- fix(terminal): scope the IME composition route to captured sessions by @nwparker in #15056
- fix(ui): ignore IME composition Enter in the comment composer and replace field by @nwparker in #15057
- fix(mobile-native-chat): reland glued pending retirement without the two revert causes (STA-4482, STA-4492) by @brennanb2025 in #14936
- fix(computer): preserve accessibility value types by @brennanb2025 in #15031
- fix(worktree): skip retirement backfill on every non-local host by @brennanb2025 in #15023
- fix(orchestration): enforce honest recipient routing by @Jinwoo-H in #14964
- fix(mobile): escalate continuous Relay outages (STA-4587) by @Jinwoo-H in #15071
- fix(codex): stop a transient filesystem error from logging out the active account by @brennanb2025 in #15046
- refactor(terminal): redesign quick command dialog with expanded layout by @AmethystLiang in #15011
- fix(mobile): render pairing QR at scanner-safe scale by @Jinwoo-H in #15058
- fix(agent-status): preserve restored child provenance by @brennanb2025 in #15082
- fix(native-chat): enforce each pending send's own boundary in glue matching (STA-4477) by @brennanb2025 in #14935
- fix(mobile-ios): pin fastlane and gate the Fastfile in CI by @brennanb2025 in #15092
- fix(worktrees): keep retirement tombstones across project and SSH target re-add by @brennanb2025 in #14917
- reland(browser): route every cookie-import write through CDP identities, and never clear what it will not write back by @brennanb2025 in #15030
- fix(orchestration): expose unsupervised dispatch lanes by @Jinwoo-H in #15105
- Improve cmd j search keyword match by @AmethystLiang in #15170
- Fix in-flight checkpoint cleanup in daemon shutdown test by @AmethystLiang in #15010
- Split browser pane by @AmethystLiang in #14861
- test(folder-workspaces): await routed update admission by @Jinwoo-H in #15179
- fix(codex): stop resuming a session under the wrong account when a sessions tree is locked by @brennanb2025 in #15093
- fix(agent-hooks): detect IDS-truncated hook POSTs instead of failing open silently (STA-2870) by @brennanb2025 in #14625
- fix(opencode): emit a default export the plugin loader accepts (STA-3097) by @brennanb2025 in #14612
- fix(computer-macos): allow final click to dismiss target by @Jinwoo-H in #15169
- fix(persistence): harden persistence edge cases by @AmethystLiang in #15171
- fix(opencode): keep the pane working while a background subagent runs (#9692) by @brennanb2025 in #14712
- fix(agents): lift the pane retirement fence when a live PTY re-attaches (STA-4114) by @brennanb2025 in #14624
- revert(terminal): back out the xterm surface inset that black-barred packaged builds (#14583) by @nwparker in #15181
- fix(workspaces): delete on the confirmed host, and make both hosts' rows selectable (STA-4343) by @brennanb2025 in #15013
- fix(runtime): tear down terminal subscriptions only through their owning registration by @brennanb2025 in #14992
- fix(agent-status): say what an OpenCode permission request is waiting on (STA-3160) by @brennanb2025 in #14614
- fix(agent-hooks): bind agent status to the pane its session was spawned into (STA-2069) by @brennanb2025 in #14615
- feat(ssh): verify host keys, and restore panes correctly across a reconnect by @nwparker in #14844
- Prevent tab search results from jumping while typing by @AmethystLiang in #15133
- test(e2e): pin Hangul byte exactness across a terminal wrap boundary by @nwparker in #15080
- feat(agent-status): surface the model each Codex subagent is running by @brennanb2025 in #14627
- fix(mobile): keep phone tab selection across host snapshots by @nwparker in #13387
- fix(watcher): watch the resolved worktree root so symlinked and differently-cased paths work by @nwparker in #15077
- Restructure automation editor dialog into three-column layout by @AmethystLiang in #14803
- ci: cut PR wall clock by caching what CI recomputes every run by @nwparker in #15211
- fix(cmd-j): decline a GitLab iid match when the repo remote names a different project (STA-4450) by @nwparker in #15193
- fix(daemon): stop a failed spawn cancel from tearing down the shared connection (STA-4663) by @nwparker in #15194
- ci: stop refreshing every apt repo three times to install fish by @nwparker in #15217
- fix(repo-identity): bound git remote-identity probes and retire them with their repo by @nwparker in #15196
- fix(terminal-history): drop an inherited Orca fish_history so nested Orca panes stop merging worktree histories (STA-4682) by @nwparker in #15195
- Filter automations list by agents by @AmethystLiang in #15224
- Split github client by @AmethystLiang in #15214
- build(xterm): restore the patch regeneration harness and gate it in CI by @nwparker in #15223
- fix(terminal): stop the macOS IME forwarder from running on iPadOS by @nwparker in #15218
- docs(mobile): add Android APK install guidance by @Jinwoo-H in #14978
- fix(new-workspace): keep workspace creation reachable with zero projects by @nwparker in #15234
- Redesign artifacts page as full-width table with drawer by @AmethystLiang in #15233
- Display occupant agent icons in tab search results by @AmethystLiang in #15134
- fix(terminal): deliver an IME commit the deferred textarea diff missed by @nwparker in #15198
- feat(crash-reporting): read-only Windows install-dir DACL probe breadcrumb by @nwparker in #15107
- ci: run the IME e2e suite when terminal input code changes by @nwparker in #15239
- fix(terminal): end a url at CJK punctuation instead of swallowing it by @nwparker in #15240
- fix(dev): stop macOS Keychain password prompts on pnpm dev by @nwparker in #15183
- fix(mobile): escalate a persistently rejected Relay pairing to re-pair (STA-4681) by @Jinwoo-H in #15237
- fix(relay): scope shell history for Windows -> WSL panes (STA-4682) by @nwparker in #15236
- test(updater): await the linux install re-proof instead of budgeting event-loop turns by @nwparker in #15246
- test(e2e): harden triaged CI failures by @AmethystLiang in #14656
- refactor(shell): build every zsh startup wrapper from one shared builder by @nwparker in #15245
- fix(runtime): stop one unreachable relay from freezing every workspace as active (STA-517) by @brennanb2025 in #14649
- fix(stats): count agent sessions from hook transitions, not OSC titles (STA-2445) by @brennanb2025 in #14657
- fix(antigravity): install a PreToolUse status hook without deciding tool permissions by @brennanb2025 in #14701
- feat(agent-status): step 1 — stamp observation provenance and ordering at every status ingress (STA-4293) by @brennanb2025 in #14706
- fix(sidebar): name each split-pane agent row from its own pane title (STA-2811) by @brennanb2025 in #14707
- fix(remote): keep the host's last assistant message on client-owned agent rows (#12906) by @brennanb2025 in #14716
- docs(computer): explain screenshot file requirements by @brennanb2025 in #15054
- fix(tab-bar): restore the tab-results fixture after occupantAgent became required by @nwparker in #15277
- fix(wsl): pass guest argv verbatim through --exec by @OrcaWin in #15039
- ci(e2e): install a CJK font on the e2e runners by @nwparker in #15259
- fix(wsl): read machine output from a fenced login shell by @OrcaWin in #15290
- test(terminal): pin that the CJK block is the preedit overlay, not the cursor by @nwparker in #15242
- fix(git): fence buffered WSL login-shell reads by @OrcaWin in #15060
- fix(git): run WSL git reads without a shell by @OrcaWin in #15257
- fix(shell): repair worktree HISTFILE in plain zsh panes via one positive feature channel by @nwparker in #15258
- ci(e2e): keep the relay version markers in the e2e build artifact by @brennanb2025 in #15303
- Revert "fix(agent-hooks): bind agent status to the pane its session was spawned into (STA-2069)" (#14615) by @brennanb2025 in #15295
- fix(computer): report unasserted accessibility actions by @brennanb2025 in #15028
- fix(orchestration): deliver worker-exit escalations to lightweight Run coordinators (STA-4604) by @Jinwoo-H in #15235
- fix(relay): let one owner hold pty.ackData instead of relying on construction order by @brennanb2025 in #15079
- fix(dev): stop caching unsigned bundles and reclaim stale dev copies by @nwparker in #15247
- fix(orchestration): record why a terminal's process is gone (STA-4603, STA-4536) by @Jinwoo-H in #15244
- fix(github): scope GHES host-auth cache to the executing connection by @brennanb2025 in #14948
- fix(package): keep cached dev Electron bundles out of app.asar by @nwparker in #15359
- fix(remote): search Quick Open paths on the host by @Jinwoo-H in #15158
- refactor(test): move shell wrapper fixtures where they read as test data by @nwparker in #15363
- fix(sidebar): clear the delete state when a removal is refused by @brennanb2025 in #15187
- refactor(test): use fixtures for wrapper snapshots and teach the LoC bot by @nwparker in #15365
- fix(codex): stop overwriting and deleting Codex files that were merely unreadable (STA-4737) by @brennanb2025 in #15287
- fix(cli): route --host runtime: to that server instead of answering locally by @nwparker in #15364
- fix(codex): keep two host-lane records that a failed read used to destroy (STA-4735) by @brennanb2025 in #15289
- fix(codex): stop a locked auth.json from deleting a just-authenticated account (STA-4734) by @brennanb2025 in #15279
- feat(orchestration): report a worker blocked on a human prompt (STA-4513, STA-3714) by @Jinwoo-H in #15261
- fix(shell): carry a WSL pane's shell across relay revive and stop forking to probe zsh emulation (STA-4682) by @nwparker in #15361
- fix(agent-status): stop an idle title retiring a pane pending a human answer by @brennanb2025 in #15351
- refactor(runtime): name every mobile-session close outcome so the tombstone decision is explicit (STA-4718) by @nwparker in #15346
- fix(ssh): validate hashed known_hosts fields through one strict base64 decoder (STA-4717) by @nwparker in #15345
- test(terminal): assert wide-char buffer content across repaints by @nwparker in #15280
- fix(browser): serialize cookie imports per partition by @brennanb2025 in #15095
- fix(cmd-j): host-qualify worktree resolution and disambiguate list render keys (STA-4343) by @AmethystLiang in #15371
- fix(shell): content-address shell-ready wrapper trees so builds stop clobbering each other by @nwparker in #15285
- Kill hung WSL transcript filesystem operations via child process with route quarantine by @OrcaWin in #15381
- test(agent-hooks): prove the Windows hook actually receives its payload by @OrcaWin in #15403
- Fix skill install dialog overflow and simplify file summaries by @Jinwoo-H in #15406
- fix(tabs): keep an open diff focused while agents stream (STA-4697) by @brennanb2025 in #15390
- test(wsl): account for the route quarantine in stalled-mount tests by @brennanb2025 in #15408
- fix(quick-open): stop node:path from white-screening the renderer by @brennanb2025 in #15405
- test(relay): stop port-scan fixtures colliding with the worker pid by @brennanb2025 in #15413
- fix(sidebar): render folder workspaces under every Group by mode (#15362) by @brennanb2025 in #15404
- fix(runtime): scope create-with-activate navigation to the requesting client (STA-2802) by @Jinwoo-H in #15407
- feat(terminal): read the rendered screen with
terminal read --screen(STA-4792) by @nwparker in #15380 - fix(terminal): stop a Hangul-terminating digit being eaten as a candidate pick by @nwparker in #15429
- test(e2e): keep the native Hangul reproduction harness by @nwparker in #15438
- Fix WSL stall tests to reset gate state and fake performance timer by @OrcaWin in #15414
- fix(workspace-cleanup): require a host-qualified key for every candidate row by @brennanb2025 in #15422
- Update readme by @OrcaWin in #15466
- feat(sidebar): name the host when a delete batch collides on one id by @brennanb2025 in #15423
- fix(browser): stop the auth-host UA write from cancelling redirects by @choihjin in #15221
- fix(browser): grant storage-access so requestStorageAccess() stops rejecting by @brennanb2025 in #15481
- fix(mobile): keep a terminal lease alive when the handle lookup fails by @brennanb2025 in #15463
- fix(workspaces): re-seed a terminal when an emptied workspace is opened by @Jinwoo-H in #15513
- ci: bound the shell-contracts apt install so a stalled mirror cannot wedge the run by @brennanb2025 in #15532
- fix(agent-hooks): stop backgrounded Claude sessions posting a stale pane key (STA-4769) by @brennanb2025 in #15304
- fix(remote): stop paired-tab resurrection, ghost agent rows, and frozen visible panes (STA-4593) by @Jinwoo-H in #15459
- fix(terminal): keep a cold-parked pane's runtime-graph leaf while its PTY lives (STA-2854) by @Jinwoo-H in #15514
- fix(browser): scope a native cookie import's clear to the domains it imports (STA-4797) by @brennanb2025 in #15375
- feat(remote): add a positional file read to the filesystem provider by @brennanb2025 in #15517
- fix(mobile): keep a desktop take-back from being undone by a passive viewport report by @brennanb2025 in #15539
- fix(runtime): stamp a runtime's own project setups as local, and report remote status about the remote (STA-4792) by @nwparker in #15376
- fix(mobile): scope optimistic workspace removal to the deleted host by @brennanb2025 in #15424
- fix(cli): resolve host names across both kinds, and stop ssh: answering empty by @nwparker in #15449
- fix(repos): keep the desktop-owned manual project order authoritative across paired clients and SSH catalog publishes (STA-4850) by @Jinwoo-H in #15538
- feat(release): build unsigned Windows artifacts for the dev channels by @nwparker in #15465
- fix(agent-hooks): stop Antigravity's Windows hook from spawning PowerShell on every event by @nwparker in #15520
- fix(mobile): replay a delivery-ambiguous worktree.create instead of failing it by @brennanb2025 in #15472
- fix(workspaces): settle an orca.yaml trust prompt when the modal slot is taken by @brennanb2025 in #15540
- fix(terminal): require a proven exit before retiring a subscription's lease by @brennanb2025 in #15470
- fix(terminal): make remote-host take-back release the phone-fit lock by @brennanb2025 in #15473
- feat(cmd-j): rank palette results by direct matches and recency by @AmethystLiang in #15551
- fix(pty): keep a CPR reply from overtaking a deferred colour reply by @nwparker in #15559
- fix(hooks): isolate lint-staged backups per worktree by @nwparker in #15388
- refactor(shell): collapse the zsh wrapper to one .zshenv and a precmd hook (STA-4786) by @nwparker in #15391
- Auto e2e tests autofix scheduled ci 1h run 1 20260818T2143 by @AmethystLiang in #15379
- fix(terminal): refuse a cursor on a screen read, and correct the source docs by @nwparker in #15563
- fix(tabs): stop split workspaces multiplying columns on return by @nwparker in #15482
- fix(terminal): keep xterm's render pause latched for a pane with no layout box by @brennanb2025 in #15555
- ci: stop docs-only commits from starting the skill-roundtrip matrix by @nwparker in #15474
- Ship the WSL transcript helper with the Windows relay (STA-4831) by @OrcaWin in #15529
- fix(browser): name the requesting frame and the permission in denial notices by @brennanb2025 in #15542
- docs(ssh): state the SSH execution boundary and pin the liveness vocabulary by @brennanb2025 in #14971
- fix(terminal): apply pane padding on all four edges by @brennanb2025 in #15544
- fix(sidebar): host-qualify discovery notice rows on multi-host projects by @brennanb2025 in #15546
- fix(worktrees): cover WSL distro history and bound the retirement backfill scan (STA-4472, STA-4473) by @brennanb2025 in #14924
- fix(pty): delete the reply-withholding scheduler by @nwparker in #15578
- test(terminal): pin the two conditions that keep macOS period substitution out by @nwparker in #15393
- Revert "fix(terminal): apply pane padding on all four edges (#15544)" by @AmethystLiang in #15623
- docs(readme): add Android install guide link to README.ko.md (STA-4817) by @OrcaWin in #15566
- fix(terminal): keep a quick command queued until its own spawn takes it by @AmethystLiang in #15630
- Fix flaky CI tests by adding retry logic and increasing timeouts by @AmethystLiang in #15635
- fix(runtime): recover adopted tui-idle and pin worker fixtures by @Jinwoo-H in #15569
- fix(worktrees): honor absolute Linux worktree base paths for WSL repos (STA-4772) by @OrcaWin in #15384
- fix(grok): stop the Windows status hook from spawning two interpreters per event by @OrcaWin in #15595
- fix(ci): restrict release test token permissions (STA-4970) by @Jinwoo-H in #15675
- fix(ui): keep dialog title and footer inside the panel by @ppw-stack in #15707
- fix(terminal): mark captured shortcut input interactive by @itisvincent in #13800
- fix(terminal): preserve Shift+Enter during routing confirmation by @itisvincent in #13598
- fix(worktree): let a configured worktree base outrank a built-in visibility source (#15232) by @OrcaWin in #15430
- fix(skills): isolate concurrent upload staging by @Jinwoo-H in #15693
- fix(rate-limits): support Codex 0.149 approval policy by @Jinwoo-H in #15823
- fix(linear): unbound list-issues by default, surface truncation, bind cursor workspace by @brennanb2025 in #15824
- fix(ssh): let fork-PR worktrees add their contributor remote via the relay by @nwparker in #15827
- fix(terminal): stop orphaning live agent terminals across host restarts and graph syncs by @Jinwoo-H in #15644
- Change 'SEÑOR' to 'MR' in Spanish locale by @YerayAlonso in #15594
- fix(codex): suppress false restart notices after reauth by @Jinwoo-H in #15835
- fix(windows): one chokepoint for every child process by @nwparker in #15746
- feat(dashboard): add a keyboard shortcut to toggle the Agent Dashboard by @DNX in #15353
- fix(worktree): drop a just-added fork remote when its head fetch fails by @nwparker in #15850
- Remove agent map view from dashboard by @AmethystLiang in #15853
- perf(windows): read the process table natively instead of forking PowerShell by @nwparker in #15749
- fix(editor): detect .liquid files as Liquid by @webdevtodayjason in #15213
- fix(agent-catalog): update outdated Claude Code doc links by @heychs in #15387
- fix(windows): own PTY process trees with job objects by @nwparker in #15755
- fix(cmd-j): host-qualify browser and simulator tab candidates (STA-4965) by @Jinwoo-H in #15686
- fix(windows): reach the pty job on the teardown path that actually runs by @nwparker in #15886
New Contributors
- @HoonDongKang made their first contribution in #14298
- @DTSFO made their first contribution in #14275
- @Boulea7 made their first contribution in #14071
- @dngur6344 made their first contribution in #14453
- @leofmarciano made their first contribution in #11582
- @DaQun made their first contribution in #14299
- @pythonstrup made their first contribution in #14734
- @YerayAlonso made their first contribution in #15594
- @DNX made their first contribution in #15353
- @webdevtodayjason made their first contribution in #15213
- @heychs made their first contribution in #15387
Full Changelog: mobile-android-v0.0.43...mobile-android-v0.0.44