What's Changed
- fix(pty): bound cooked reply queue by @AmethystLiang in #13422
- fix(terminal): prevent paired activity renderer starvation by @Jinwoo-H in #13508
- fix(sidebar): dispatch workspace delete intent after menu close by @ax-dfcorp in #11646
- Avoid synchronous webview URL IPC during browser pane render by @brennanb2025 in #13646
- perf: Stop orchestration interaction UI broadcast storms by @brennanb2025 in #13651
- fix(settings): widen font size input so values are fully visible by @qiuyongjin in #11585
- fix(i18n): restore identifiers and commands machine translation localized in ko/zh/es by @makoto-developer in #13124
- perf: Stop unchanged worktree refresh churn by @brennanb2025 in #13662
- Clear stale terminal selection during pane recovery by @brennanb2025 in #13677
- feat(ai-vault): isolate scanning from terminal workloads by @brennanb2025 in #13411
- perf(runtime): batch legacy worker recovery persistence by @brennanb2025 in #13649
- Fix notification clicks with Agent Dashboard pop-out by @brennanb2025 in #13680
- fix(mobile): stop showing accepted messages as queued by @brennanb2025 in #13658
- perf(terminal): remove output-driven WebGL atlas resets by @brennanb2025 in #13657
- fix(tabs): keep widths stable during title updates by @bokjk in #11476
- perf(orchestration): remove mutation receipt capacity scans by @brennanb2025 in #13647
- fix(agent-hooks): refresh existing Orca launchers when agent CLIs are unavailable by @brennanb2025 in #13378
- docs: update Android APK to 0.0.42 by @AmethystLiang in #13700
- [Perf-SS] Remove redundant native Ripgrep probes by @nwparker in #13462
- fix(release): reject non-release publications by @nwparker in #13591
- [Perf-SS] Keep reattach live queues linear during replay by @nwparker in #13478
- Improve automations page UI: full-page detail and table redesign by @AmethystLiang in #13292
- refactor(mobile): extract terminal settings styles by @nwparker in #13706
- fix(terminal): release retained output slice parents by @nwparker in #13402
- fix(terminal): skip a too-wide alt frame on snapshot replay by @brennanb2025 in #13014
- [Perf-SS] Own oversized automation output snapshot tails by @nwparker in #13581
- perf(runtime): make PTY worktree inventory lookup linear by @nwparker in #13690
- [Perf-SS] Keep shutdown rollback buffering linear under saturation by @nwparker in #13510
- [perf-remote] perf(renderer): collapse terminal host selectors by @nwparker in #13643
- [Perf-SS] Stop abandoned native chat tail reads by @nwparker in #13588
- feat(workspaces): review preserved branches after bulk delete by @Jinwoo-H in #13693
- refactor(renderer): split high-churn WorktreeCard by @nwparker in #13715
- fix(dashboard): keep agent map rings open while the pointer works inside them by @brennanb2025 in #13682
- Preserve AskUserQuestion waits during parallel tool completions by @brennanb2025 in #13714
- fix(terminals): prevent retired workers from cold-resuming by @Jinwoo-H in #13708
- fix(terminal): avoid Windows PATH registry subprocesses by @OrcaWin in #13485
- [Perf-SS] Skip unused accessibility summary walks by @nwparker in #13559
- fix(native-chat): restore Codex model picker dispatch by @brennanb2025 in #13669
- [leas code] Remove abandoned daemon binary framing by @nwparker in #13530
- [leas code] Remove unwired scrcpy control encoders by @nwparker in #13528
- [leas code] Remove unwired PTY source replay index by @nwparker in #13518
- [leas code] Remove orphaned computer-use helpers by @nwparker in #13511
- [leas code] Remove retired onboarding capability checklist by @nwparker in #13509
- [leas code] Remove replaced project host combobox by @nwparker in #13507
- [leas code] Remove replaced Linear team combobox by @nwparker in #13506
- [leas code] Remove retired sidebar activity helpers by @nwparker in #13505
- [leas code] Remove obsolete daemon production launcher by @nwparker in #13504
- [leas code] Remove retired profile switcher UI by @nwparker in #13502
- [leas code] Remove retired hosted-review queue by @nwparker in #13500
- [leas code] Remove unwired persisted-state bounds by @nwparker in #13499
- [leas code] Remove retired onboarding tour tracker by @nwparker in #13498
- [leas code] Remove unwired Hermes output limits by @nwparker in #13497
- [leas code] Remove superseded daemon PTY provider by @nwparker in #13477
- [leas code] Remove superseded GitHub background creation by @nwparker in #13479
- [leas code] Remove obsolete relay status parser by @nwparker in #13475
- [leas code] Remove obsolete pairing connection attempt by @nwparker in #13460
- [leas code] Remove orphaned mobile PR composer by @nwparker in #13450
- [leas code] Share usage provider store lifecycle by @nwparker in #13558
- Fix repo-scoped Quick Commands across remote hosts by @Jinwoo-H in #13727
- [leas code] Share usage provider IPC plumbing by @nwparker in #13543
- [leas code] Share usage provider slice lifecycle by @nwparker in #13527
- [leas code] Share usage recent-session table by @nwparker in #13467
- [leas code] Share metadata list request lifecycle by @nwparker in #13524
- [leas code] Share PR comment presentation logic by @nwparker in #13457
- [leas code] Centralize UTF-8 byte and chunk boundaries by @nwparker in #13445
- [leas code] Use shared mobile source-control decisions by @nwparker in #13453
- [leas code] Use shared mobile GitHub Project sorting by @nwparker in #13459
- [leas code] Remove retired onboarding repository controller by @nwparker in #13492
- [leas code] Remove retired onboarding repository step by @nwparker in #13484
- [Perf-SS] Overlap Git status with conflict-marker reads by @nwparker in #13529
- perf(ssh): cancel abandoned remote port scans by @nwparker in #13548
- perf(renderer): keep remote snapshot batches linear by @nwparker in #13676
- [leas code] Remove retired onboarding feature preview by @nwparker in #13489
- [leas code] Share usage tracking pane shell by @nwparker in #13472
- fix(git): support Windows-linked worktrees in WSL projects by @OrcaWin in #13483
- perf(renderer): preserve unchanged remote mirror resources by @nwparker in #13683
- perf(renderer): unmount closed Workspace Board content by @nwparker in #13619
- perf(renderer): unmount closed Quick Open content by @nwparker in #13618
- perf(renderer): index GitHub resume lookups by @nwparker in #13698
- feat(github): support stacked pull requests by @Jinwoo-H in #13730
- fix(ssh): release the relay-loss watcher before teardown mux writes by @nwparker in #13737
- perf(renderer): unmount closed workspace cleanup content by @nwparker in #13567
- fix(native-chat): type Codex slash commands by @brennanb2025 in #13685
- perf(renderer): unmount closed setup guide content by @nwparker in #13546
- perf(renderer): scope batched open-file reconciliation by worktree by @nwparker in #13748
- perf(orchestration): skip redundant federation acknowledgments by @nwparker in #13671
- fix(sidebar): close the workspace rename editor opened by the shortcut by @socar-jian in #13729
- perf(runtime): coalesce project lineage refreshes by @nwparker in #13638
- Fix static analysis page stuck in loading state by @AmethystLiang in #13674
- refactor(renderer): split SettingsFormControls below max-lines limit by @nwparker in #13747
- fix(native-chat): open composer pickers upward by @brennanb2025 in #13754
- refactor(renderer): split high-churn TabBar by @nwparker in #13739
- fix(codex): repair hook trust before restored shells reconnect by @brennanb2025 in #13745
- docs: remove restored shell validation report by @brennanb2025 in #13759
- fix(ui): rename Caffeinate Auto mode to Agent by @brennanb2025 in #13751
- fix(native-chat): scope persisted options to chat launches by @brennanb2025 in #13675
- fix(settings): paste bash-native skill setup under WSL PTY by @bbingz in #13710
- perf(renderer): keep the repos array identity across no-op refetches by @nwparker in #13744
- fix(e2e): restore the helpers the macOS key-remap spec imports by @nwparker in #13758
- perf(runtime): avoid forced SSH hydration on project refresh by @nwparker in #13636
- [perf-remote] perf(codex): skip migration scans for nonshared reattaches by @nwparker in #13654
- [perf-remote] perf(renderer): dedupe remote status hydration by @nwparker in #13705
- Filter remote workspaces by creating device by @Jinwoo-H in #13718
- Add copy button for quick command by @AmethystLiang in #13768
- fix(worktree-poller): sample the scan gate before its listing by @nwparker in #13772
- perf(editor): stop hidden panels duplicating remote reloads by @nwparker in #13634
- [perf-remote] perf(renderer): park hidden remote session mirrors by @nwparker in #13621
- [perf-remote] perf(renderer): park hidden remote browser screencasts by @nwparker in #13608
- perf(native-chat): suspend hidden transcript streams by @nwparker in #13622
- fix(editor): keep an invalidated diff visible until its reload lands by @nwparker in #13777
- refactor(renderer): unify the window park-visibility primitive by @nwparker in #13778
- perf(sqlite): cache prepared statements in SyncDatabase by @nwparker in #13769
- perf(renderer): skip runtime status map churn on unchanged re-probes by @nwparker in #13771
- perf(renderer): keep catalog array identity and path-status cache on no-op refetches by @nwparker in #13770
- fix(utf8): stop reading a code point past the end of a sliced string by @nwparker in #13782
- [Perf-SS] Reuse pinned OIDs for SSH file diffs by @nwparker in #13586
- fix(e2e): repair seven specs whose assertions drifted from shipped behavior by @nwparker in #13785
- fix(renderer): reject malformed cursor and language-pack inputs by @OrcaWin in #13451
New Contributors
- @ax-dfcorp made their first contribution in #11646
- @bokjk made their first contribution in #11476
- @socar-jian made their first contribution in #13729
Full Changelog: v1.4.181...v1.4.182-rc.0