What's Changed
- fix(push): isolate deployment and validate candidates before activation by @Jinwoo-H in #19771
- fix(native-chat): show Claude working from the send, not the provider echo by @brennanb2025 in #19822
- fix(mobile): enable patch-free iOS text selection in native chat by @brennanb2025 in #19769
- perf(terminal): resume OSC terminator search past the carried frame by @nwparker in #19839
- perf(native-chat): bound retained items on the structured session path by @nwparker in #19841
- perf(terminal): share one ESC dispatch table between the two scanners by @nwparker in #19842
- fix(native-chat): one
/picker for every agent, anywhere in the prompt by @brennanb2025 in #19832 - feat(native-chat): the background-tasks strip says what is running by @brennanb2025 in #19311
- fix(i18n): drop the stale TerminalPane.minimumContrast entries from the runtime catalog (main red again) by @nwparker in #19575
- fix(native-chat): keep an older page from punching a hole in the transcript by @nwparker in #19845
- refactor(agent-status): publish structured sessions into the hook server store by @brennanb2025 in #19683
- fix(orchestration): scope @ group addresses to the sender's Run by @Jinwoo-H in #19783
- feat(native-chat): show live background work and name each row by kind by @brennanb2025 in #19705
- feat(sidebar): show native-chat subagents as sidebar child rows, like CLI agents already do by @brennanb2025 in #19807
- feat(native-chat): focus the message box when a chat appears by @brennanb2025 in #19868
- fix(relay): keep failed rehome polls out of the durable failure budget by @Jinwoo-H in #19915
- fix(orchestration): revalidate an attempted Enter instead of resending it by @brennanb2025 in #19911
- test(native-chat): split structured question fixtures by @brennanb2025 in #19924
- Make the structured turn lifecycle row durable so completed durations survive by @brennanb2025 in #19695
- refactor(native-chat): unify agent session launch and open drafts in structured chat by @brennanb2025 in #19681
- feat(cloud): native push gateway and dedicated infrastructure (1/3) by @Jinwoo-H in #19912
- fix(browser): restore the Chrome-shaped browser identity (STA-7147) by @brennanb2025 in #19927
- refactor(mobile): extract settings, diagnostics and editor-document screens from their routes by @Jinwoo-H in #19675
- fix(native-chat): never adopt an unlisted model as the launch default by @brennanb2025 in #19854
- fix(native-chat): settle a structured send on admission, not on the provider echo by @brennanb2025 in #19863
- feat(desktop): native mobile push integration (2/3) by @Jinwoo-H in #19935
- fix(sidebar): let an agent row show the provider's own session title by @brennanb2025 in #19936
- fix(editor): make markdown images inline so a paragraph stays schema-valid by @OrcaWin in #19746
- feat(native-chat): record the provider's name for an agent session by @brennanb2025 in #19908
- fix(release): port three release-gate fixes to main so cuts stop re-inheriting them by @brennanb2025 in #19945
- refactor(renderer): share path head elision by @AmethystLiang in #19938
- feat(cmd-j): compact palette location layout by @AmethystLiang in #19939
- refactor(mobile): name the RPC acceptance policies call sites hand-rolled by @Jinwoo-H in #19960
- fix: prompt unexpectedly signed-out Cloud users once per version by @Jinwoo-H in #19966
- feat(ai-vault-search): session search index as a transcript reader consumer by @Jinwoo-H in #19687
- fix(native-chat): pass agent-implemented slash commands through to the agent by @brennanb2025 in #19929
- perf(terminal): stop rebuilding per-workspace collections on a worktree switch by @nwparker in #19975
- feat(rpc): generate a shared params catalog from the host registry, gated on parse parity by @Jinwoo-H in #19961
- feat(native-chat): describe slash commands from the provider's own report by @brennanb2025 in #19928
- perf(terminal): stop spending reveal-restore frames on panes that replay nothing by @nwparker in #19972
- i18n: Make file reveal labels translatable by @OrcaWin in #20010
- perf(native-chat): mount only the transcript rows near the viewport by @brennanb2025 in #19869
- feat(mobile): receive native push notifications from paired desktops by @Jinwoo-H in #19951
- fix(workspaces): seed shells only for blank selection by @brennanb2025 in #19940
- Hide desktop theme imports from paired web clients by @OrcaWin in #20015
- feat(ai-vault-search): session search query engine over the index by @Jinwoo-H in #19750
- refactor(shared): derive WellKnownAgentType from TuiAgent by @AmethystLiang in #19645
- Revert "feat(ai-vault-search): session search query engine over the index (#19750)" by @Jinwoo-H in #20023
- feat(ai-vault-search): session search indexer library owning backfill, reconcile and retention by @Jinwoo-H in #19751
- refactor(rpc): make defineMethod preserve the method name and handler result by @Jinwoo-H in #20016
- fix(daemon): pin owner-only modes on persisted terminal history by @nwparker in #19954
- Revert mobile push rollout pending delivery investigation by @Jinwoo-H in #20040
- fix(pi): retire stale spinner and prompt timers across reloads by @nwparker in #20035
- fix(terminal): stop the recovery budget erasing itself during a remount by @OrcaWin in #19745
- fix(monaco): bound embedded-language recursion in svelte/astro/vue grammars by @OrcaWin in #19748
- fix(runtime): agent-neutral wait-blocked reasons by @OrcaWin in #19749
- fix(worktrees): close an idle structured chat on delete instead of refusing by @brennanb2025 in #19762
- fix(runtime): let connections own host status recovery by @Jinwoo-H in #20003
- fix(native-chat): show one live-turn indicator, and make Thinking mean reasoning by @brennanb2025 in #19977
- perf(terminal): mount only the visible pane on a worktree switch by @nwparker in #20034
- test(monaco): drive the real Monarch tokenizer instead of walking rule tables by @nwparker in #19981
- test(runtime): capture real Antigravity transcripts — the detector is inverted on live output by @nwparker in #19983
- fix(pi): claim the status pane when the inherited owner PID is dead (STA-5245) by @brennanb2025 in #16631
- fix(pi): load extension providers for source control generation by @nwparker in #20070
- fix(terminal): keep a deliberately slept workspace cold until it is woken by @nwparker in #20075
- perf(daemon): stop scanning every cell for OSC links that cannot exist by @nwparker in #20077
- fix(terminal): move the recovery ledger onto the tab row and gate it on observed outcome by @nwparker in #20025
- fix(push): preserve distinct Android alerts while offline by @Jinwoo-H in #20066
- feat(native-chat): show when a Codex goal is set, changed, or cleared by @brennanb2025 in #19923
- Fix remote hosted review browser routing by @Jinwoo-H in #20030
- fix(mobile): surface host create warnings and terminal-create errors by @brennanb2025 in #20125
- feat(relay): correct regional placement only when the source is idle by @Jinwoo-H in #20105
- test(relay): harden regional rehome race coverage by @Jinwoo-H in #20136
- feat(desktop): measure relay regions and reconnect after idle cutover by @Jinwoo-H in #20106
Full Changelog: v1.4.200...v1.4.201