What's Changed
- Update Android download links to 0.0.44 by @AmethystLiang in #15898
- fix(win32): hide the console window for agent-browser and git helpers by @nwparker in #15887
- Revert premature Android link update merge by @AmethystLiang in #15899
- fix(ports): report a Stop as succeeded when the listener already exited by @nwparker in #15888
- Reland Android download links for 0.0.44 by @AmethystLiang in #15905
- fix(skills): normalize contributor-facing paths in the skill guide generator by @nwparker in #15861
- fix(cli): allow an empty --value for storage set commands by @nwparker in #15863
- fix(i18n): correct five Korean strings that changed meaning in machine translation by @nwparker in #15875
- feat(wsl): one runner for every wsl.exe invocation by @nwparker in #15903
- fix(wsl): migrate 21 call sites onto the WSL runner by @nwparker in #15923
- fix(mobile): remove close tabs to the right action by @AmethystLiang in #15894
- Move worktree palette search to top of sidebar nav by @AmethystLiang in #15854
- feat(automations): navigate table search results with arrows by @OrcaWin in #15805
- fix(automations): localize schedule weekday names and labels by @nwparker in #15884
- Fix Cmd+J Enter for worktree creation by @AmethystLiang in #15970
- Add Artifacts and Skills pages to navigation history by @AmethystLiang in #15969
- test(automations): assert in-place language switch on mounted picker by @AmethystLiang in #15977
- Retry transient ripgrep spawn failures instead of demanding install by @AmethystLiang in #15983
- UX: compact native density for context + dropdown menus by @nwparker in #15924
- test(e2e): extract paired client window reveal into helper by @AmethystLiang in #15991
- refactor(host): route secret storage through a SecretStore port by @nwparker in #15916
- fix(ui): clear agent attention icon when Floating Workspace tab activated via keyboard by @buf0-bot[bot] in #15745
- fix(i18n): match CheckRunJobs succeeded to its sibling count-label register by @erishforG in #16013
- refactor(wsl): delete the environment-policy layer the reviews kept failing on by @nwparker in #16007
- refactor(host): route app paths and version through an AppEnvironment port by @nwparker in #16019
- test(runtime): use the platform submit delay in the cancellation-during-verification test by @nwparker in #15870
- test(orchestration): distinguish the heartbeat straggler guard from the row's initial null by @nwparker in #15869
- fix(pty): wrap codex without expanding or destroying a user alias by @nwparker in #15873
- fix(project-groups): route rename and delete to the group's owning host by @nwparker in #15889
- build(runtime): gate new Electron imports reachable from the Orca runtime by @nwparker in #15919
- fix(rate-limits): stop showing Gemini failures as Antigravity "Refresh failed" by @nwparker in #15876
- fix(terminal): drop conda's orphaned CONDA_SHLVL sentinel by @nwparker in #15885
- fix(agent-resume): restore Copilot sessions after restart by @nwparker in #15879
- fix(composer): close the Create Workspace dialog on the first Escape by @nwparker in #16027
- refactor(ipc): split preflight and SSH registry out of the ipcMain modules by @nwparker in #15927
- feat(dictation): add sound-reactive grape visualizer by @nwparker in #16017
- feat(orcad): boot the Orca runtime on plain Node by @nwparker in #15968
- fix(terminal): arm the restore baseline only on a snapshot that painted content by @AmethystLiang in #16009
- fix(github): add GHES avatar fallback to PR and task views by @erishforG in #13981
- fix(secrets): tell Linux users when their secrets are only obfuscated by @nwparker in #16033
- fix(dictation): address visualizer review feedback by @nwparker in #16035
- fix(remote): keep editor focus after unfocused HTML side preview (STA-5001) by @brennanb2025 in #15716
- fix(skills): discover Hermes home skills by @nwparker in #15862
- fix(worktree): stop warning about a stale local base branch that does not exist yet (#15331) by @nwparker in #15871
- fix(git): enable Windows long paths for worktree creation (local, sparse, and SSH hosts) by @nwparker in #15866
- fix(secrets): report the protection gap on change, not on every launch by @nwparker in #16044
- fix(secrets): probe the Linux-only storage backend defensively by @nwparker in #16046
- fix(settings): an empty agent detection must not erase the saved default by @nwparker in #16043
- fix(preflight): do not count a Windows binary reached through interop as a WSL install by @nwparker in #16028
- fix(wsl): budget the whole command line, not just the script by @nwparker in #16032
- Fix Windows Git Bash console-capacity failures by @OrcaWin in #16045
- fix(agent-resume): restore Kimi Code sessions after restart by @nwparker in #15883
- perf(preflight): read the WSL mount table once, and make launch agree with detection by @nwparker in #16053
- fix(runtime): prevent restored workers from appearing idle while busy by @AmethystLiang in #15998
- fix(status-bar): remove pet menu reserved space by @coelho-doti in #13067
- fix(agent-hooks): revive a retired pane on each provider's own new-turn event by @brennanb2025 in #15344
- fix(codex): stop rebuilding shared Codex state from a read that failed (STA-4823) by @brennanb2025 in #15417
- Split pty-connection.ts into focused modules under 400 lines by @AmethystLiang in #15166
- Preserve code editor selections across tab switches by @nwparker in #16132
- fix(agent-status): stop an Antigravity pane reading as Gemini CLI by @brennanb2025 in #15535
- refactor(mobile): reuse repository color helper by @nwparker in #16131
- refactor(skills): centralize observation matching by @nwparker in #16134
- refactor(renderer): use canonical attachment labels by @nwparker in #16135
- Fix renderer starvation blocking settings and worktree switching by @nwparker in #16138
- Fix Ubuntu release dependency lockfile gate (STA-5109) by @Jinwoo-H in #16055
- reland(opencode): session continuity without the command-finished deferral (STA-4557) by @brennanb2025 in #15350
- style(secrets): trim backend probe comments by @nwparker in #16136
- refactor: reuse canonical regex escaping by @nwparker in #16150
- fix(crash-reporting): stamp React #185 boundary attribution as unreliable by @nwparker in #16153
- fix(skills): recover upload admission lifecycle by @Jinwoo-H in #16057
- test(remote): preserve HTML inventory RPC failures (STA-5210) by @Jinwoo-H in #16056
- test(e2e): stabilize paired Quick Open large-tree coverage by @Jinwoo-H in #16058
- docs(cli): document worktree rm branch cleanup by @erishforG in #16167
- fix(workspace-cleanup): name the local context instead of totalling it by @brennanb2025 in #15070
- fix(workspace-cleanup): stop pre-selecting workspaces for deletion by @brennanb2025 in #15152
- fix(runtime): retire terminal snapshot probes before waiter timeout by @nwparker in #16149
- fix(workspace-cleanup): stop a wheel tick setting a filter, and land every filter patch by @brennanb2025 in #15298
- test(agent-status): characterize title-derived agent identity before the resolver change by @brennanb2025 in #16144
- fix(automations): reveal full prompt from detail view by @Jinwoo-H in #16067
- Fix stale task-source flashes in new workspace input by @nwparker in #16145
- fix(terminal): preserve synchronized frames on reveal by @nwparker in #16026
- test(e2e): cover tab-bar agent launches on Windows and WSL by @AmethystLiang in #16110
- test(reliability): protect recent P0 regression invariants by @Jinwoo-H in #16163
- Add keyboard shortcut for workspace deletion by @AmethystLiang in #16271
- fix(workspace-cleanup): read git for a pinned workspace before deleting it by @brennanb2025 in #15370
- fix(codex): stop an unreadable legacy hooks.json from clearing managed trust by @brennanb2025 in #16147
- fix(agent-status): retire panes whose agent process is gone (STA-4612) by @brennanb2025 in #15212
- Improve cmd j ranking with recency by @AmethystLiang in #16281
- feat(workspace-cleanup): name every applied filter in the bar and make it removable by @brennanb2025 in #15300
- Fix rebase race by fetching to private ref before rebasing by @AmethystLiang in #15990
- fix(ai-vault): replace scanner internals with actionable panel copy by @brennanb2025 in #16229
- Fix mail pointer repoint scheduler tests with pending count getter by @AmethystLiang in #16292
- fix(agent-status): clear the pane when a Claude compact finishes (STA-2915, STA-4613) by @brennanb2025 in #15202
- feat(agent-status): add an order-independent title evidence parser by @brennanb2025 in #16148
- fix(workspace-cleanup): stop a sync broadcast reverting a filter you just set by @brennanb2025 in #15369
- fix(popover): wheel-scroll a popover whose scroller is nested, not the content by @brennanb2025 in #16206
- Restore previously-active tab when closing a browser tab by @AmethystLiang in #16306
- feat(agents): distinguish Claude background monitoring (takes over #14205) by @brennanb2025 in #16201
- Sta 5355 automations failed due to orca product issue by @AmethystLiang in #16310
- Split monolithic PTY IPC module into organized submodules by @AmethystLiang in #15172
- perf(renderer): project terminal topology consumers by @nwparker in #16171
- perf(renderer): incrementally index terminal tab owners by @nwparker in #16172
- perf(renderer): gate runtime store projections by @nwparker in #16173
- build(windows): refuse a node-pty that cannot own a PTY tree by @nwparker in #16064
- ci(windows): run the PTY IPC suites on the Windows runner by @nwparker in #16068
- feat(agent-status): add the pane agent identity resolver by @brennanb2025 in #16157
- feat(workspace-cleanup): blockers become labels, not refusals by @brennanb2025 in #16282
- fix(sidebar): stop reporting an interrupted agent as done (STA-5357) by @brennanb2025 in #16312
- fix(crash-reporting): scope renderer crash evidence by @Jinwoo-H in #16313
- fix(popover): use non-passive wheel listener by @brennanb2025 in #16309
- perf(renderer): narrow appearance store subscriptions by @nwparker in #16322
- fix(relay): gate relay control work on proven broker liveness by @nwparker in #16021
- fix(windows): attach interactive login children to the console input device by @brennanb2025 in #15822
- Keep sidebar position when deleting active worktree by @nwparker in #16040
- fix(rate-limits): safely surface Codex RPC exit reasons by @nwparker in #16023
- Fix deleted remote worktree reappearing due to host ID mismatch by @OrcaWin in #16039
- fix(terminal): stop stale multiplex stream handles from swallowing input by @AmethystLiang in #16325
- fix(agent-resume): stop ghost resume tabs after finished turns by @Jinwoo-H in #16308
- test(pty): pin the renderer-liveness guard STA-2373 relies on (STA-5373) by @nwparker in #16345
- fix(startup): stop the PATH seed pinning nvm to its newest install by @nwparker in #16314
- refactor(cli): split orchestration handlers by domain by @nwparker in #16139
- refactor provider clients into domain modules by @nwparker in #16168
- Refactor GitHub store slice into cohesive modules by @nwparker in #16183
- Refactor terminal RPC methods into cohesive modules by @nwparker in #16188
- refactor(relay): split relay entrypoints by @nwparker in #16151
- refactor Git repository host boundaries by @nwparker in #16177
- refactor(renderer): split web preload API by @nwparker in #16181
- Refactor terminal store slice into cohesive modules by @nwparker in #16184
- refactor(renderer): split IPC event bridges by @nwparker in #16185
- Refactor agent hook listener into cohesive modules by @nwparker in #16187
- Refactor loading Store into cohesive domains by @nwparker in #16192
- refactor GitHub backend modules by @nwparker in #16194
- refactor(feature-wall): split animated browser and terminal stories by @nwparker in #16142
- refactor settings maintenance modules by @nwparker in #16169
- refactor Linear workspace surfaces by @nwparker in #16332
- fix(crash-reporting): stop destroying user crash notes by @nwparker in #15252
- feat(orcad): add headless browser providers by @nwparker in #16193
- fix(mobile): preserve relay close recovery codes by @Jinwoo-H in #16293
- refactor(daemon): split oversized PTY services by @nwparker in #16160
- Refactor GitHub Project surfaces and mutations by @nwparker in #16166
- Refactor worktrees IPC into cohesive modules by @nwparker in #16190
- build(windows): drop the packaged node-pty prebuild that can silently replace the patch by @nwparker in #16350
- fix(terminal): stop OMP tab title flapping between OMP and Pi by @nwparker in #16373
- build(orcad): gate orcad's own graph, and prove it loads under plain Node by @nwparker in #16368
- fix(terminal): give OMP Pi's Windows Shift+Enter encoding by @nwparker in #16376
- fix(cli): spawn a version-manager CLI with its own node runtime by @nwparker in #16365
- Add workspace search and improve installation target UI by @AmethystLiang in #16380
- Add background color to search button in sidebar by @AmethystLiang in #16130
- fix(lint): exempt verbatim-moved code from the changed-lines quality gate by @nwparker in #16359
- test(linear): pin project out of the hydration-preserved field set by @nwparker in #16364
- refactor workspace lifecycle modules by @nwparker in #16334
- fix(i18n): localize the keep-awake corner chip by @innocarpe in #14775
- fix(orcad): answer host paths honestly and ship the watcher child by @nwparker in #16369
- fix(cli): pair every resolved CLI with its runtime, and ratchet it by @nwparker in #16383
- refactor(renderer): split composer state by @nwparker in #16182
- refactor agent config and auth services by @nwparker in #16195
- fix(lint): match moved code by ordered near-match, not strict contiguity by @nwparker in #16385
- fix(orchestration): derive inject's agent guidance from the recognized-agent roster by @nwparker in #15874
- test(cli): ratchet the exec/fork family, not just spawn by @nwparker in #16390
- refactor workspace composer and Jira state modules by @nwparker in #16196
- fix(ssh): restore the reconnect model-paint gate dropped by #15166 by @brennanb2025 in #16361
- Refactor mobile home, worktree modal, and RPC client by @nwparker in #16165
- fix(daemon): let PTY inventory recover from a dead terminal host by @nwparker in #16363
- fix(linear): make new-issue dialog popovers scrollable by @GagaKor in #16382
- fix(crash-reporting): correlate concurrent process deaths instead of blaming the renderer by @nwparker in #15251
- refactor(editor): split notebook, editor, and external-watch surfaces by @nwparker in #16143
- refactor source-control AI modules by @nwparker in #16179
- refactor Electron facilities modules by @nwparker in #16333
- refactor(checks): split panel responsibilities by @nwparker in #16186
- refactor(renderer): split repos store slice by @nwparker in #16191
- refactor(rate-limits): split Codex and Claude fetchers by @nwparker in #16140
- refactor terminal coordination modules by @nwparker in #16335
- refactor runtime Git bridges by @nwparker in #16189
- refactor runtime contracts and web transports by @nwparker in #16197
- perf(git): make local Git metadata observation event-driven (no scheduler) by @nwparker in #16404
- refactor(ipc): split repos.ts into focused modules by @nwparker in #16392
- refactor(git): split status.ts into focused source-control modules by @nwparker in #16393
- fix(terminal): stop Orca mangling the OMP/Pi title it writes itself by @nwparker in #16381
- refactor(ipc): split ssh.ts into focused modules by @nwparker in #16394
- refactor(git): split runner.ts into focused command-runner modules by @nwparker in #16395
- fix(cli): seed nvm's default version, not the newest install by @nwparker in #16420
- Deleting skill by @AmethystLiang in #16357
- fix(browser): focus unified tab on browser page palette activation by @AmethystLiang in #16366
- docs(AGENTS): add code-reuse guidance and verification commands by @AmethystLiang in #16451
- fix(remote): stop an empty host inventory settling the mirror by @brennanb2025 in #16414
- fix(native-chat): stop the spinner on a not-yet-flushed transcript by @brennanb2025 in #16493
- STA-4150: client-hosted remote browser (consolidated) by @Jinwoo-H in #15448
- test(perf): warm palette matcher before timing by @brennanb2025 in #16500
- fix(native-chat): retire chat echoes whose transcript row carries the TUI clear byte by @brennanb2025 in #15656
- fix(mobile): recover Relay connections after resume by @Jinwoo-H in #16498
- fix(sidebar): preserve hidden rows in manual order by @Jinwoo-H in #16488
- fix(mobile): avoid unsupported Hermes array sorting by @brennanb2025 in #16506
- perf(github): stop re-spawning the repo-identity probe every 30 seconds by @nwparker in #16450
- fix(sleep): restore agent auto-hibernation for non-Pi agents by @brennanb2025 in #16430
- style(github): trim repo identity cache comments by @nwparker in #16517
- fix(crash-reporting): see the renderer memory the heap counters never report by @nwparker in #16449
- perf(git): only schedule the upstream-ref poll for the repo that has one by @nwparker in #16443
- Add clickable See more button to palette section overflow hints by @AmethystLiang in #16533
- fix(windows): revalidate PTY liveness from the job object, not a forked helper by @nwparker in #16419
- ci: rename cross-platform adhoc workflow by @nwparker in #16536
- fix(updater): surface and degrade renderer shutdown checkpoint failures (STA-5505) by @brennanb2025 in #16497
- refactor(task-page): split task page into focused modules by @AmethystLiang in #15163
- fix(ssh): stop claiming a host was removed before its tombstone label arrives by @nwparker in #16452
- fix: sync tab-cycle shortcuts with rendered group order by @AmethystLiang in #16549
- Route terminal file links to sibling workspace tabs by @AmethystLiang in #16544
- Clarify upstream divergence stats for rebased branches by @AmethystLiang in #16358
- fix(mobile): retain relay during brief backgrounding by @Jinwoo-H in #16543
- fix(contextual-tours): stop measuring 60 times a second while nothing moves by @nwparker in #16453
- fix(windows): restore a CIM fallback for relay hosts with no native binding by @AmethystLiang in #16550
- fix(worktrees): refresh paired clients after external discovery by @Jinwoo-H in #16557
- fix(automations): scope project refs to destination host by @Jinwoo-H in #16552
- fix(ui): restore the light-mode dropdown shadow by @nwparker in #16570
- fix(worktree): stop push-target rollback deleting a sibling's remote by @nwparker in #16569
- test: pin cross-version browser placement test to explicit baseline by @AmethystLiang in #16554
- fix(windows): let a build with no job exports still retire a dead agent by @nwparker in #16563
- fix(terminal): stop detached exit observers pinning evicted panes' xterm buffers by @nwparker in #16551
- fix(settings): use Workspace Directory for the Create-project default path (#14767) by @nwparker in #16583
- docs(windows): correct why the process-tree addon is not installed on relay hosts by @nwparker in #16565
- perf(terminal): stop rebuilding parked-watcher keys on every overlay render by @nwparker in #16596
- perf(sleep): park idle agents in the worktree you are working in (#16211) by @nwparker in #16591
- fix(terminal): blur every suspended pane, not just the retained ones by @nwparker in #16592
- perf(windows): ship the native process table to Windows relay hosts by @nwparker in #16598
- test(git): isolate worktree-shared-directories git config portably (#15409) by @nwparker in #16582
- fix(terminal): stop routing unowned workspaces to the focused runtime environment by @nwparker in #16584
- Show all automations by @AmethystLiang in #16532
- docs: remove tracked design plans by @AmethystLiang in #16663
- feat(i18n): localize CLI-created workspace labels to Korean by @hwantage in #16212
- fix(native-chat): stop rendering a tool result whose call is outside the window by @brennanb2025 in #15653
- fix(grok): stop Orca's Grok hooks from costing anything outside Orca by @brennanb2025 in #16666
- fix(orchestration): enforce nested worker depth instead of an accidental fence by @brennanb2025 in #16668
- fix(relay): survivable mobile pairing recovery + desktop assign rate gate by @Jinwoo-H in #16659
New Contributors
- @coelho-doti made their first contribution in #13067
- @GagaKor made their first contribution in #16382
Full Changelog: mobile-android-v0.0.44...mobile-android-v0.0.46