What's Changed
- fix(terminal): resume hibernated agents that reattach with no payload by @OrcaWin in #9648
- fix(macos): close both macOS 26 main-thread deadlock doors and restore the reveal reflow by @nwparker in #10473
- oom(01/29): bound shared file/stream/buffer readers by @nwparker in #10294
- oom(02/29): bound shared image/media/PDF memory limits by @nwparker in #10295
- fix(window): reflow via scale factor so terminals stop re-gridding by @nwparker in #10485
- fix(ui): stop the reveal reflow from dismissing popovers by @nwparker in #10487
- oom(foundation): bound shared readers/limits + add BoundedMap primitive by @nwparker in #10299
- fix(terminal): verify Windows PTY root identity before taskkill /T /F by @brennanb2025 in #10484
- fix(daemon): keep agent-completion detection alive on pre-v27 daemons by @brennanb2025 in #10478
- fix(terminal): stop cold restore dropping all scrollback on large checkpoints by @brennanb2025 in #10479
- fix(mobile): heal an orphaned native-chat image paste across screen unmounts by @brennanb2025 in #10480
- fix(cli): explain SIGABRT serve exits instead of naming the signal by @brennanb2025 in #10464
- fix(skills): advance the release ledger at the cut so shipped revisions freeze by @brennanb2025 in #10483
- test(terminal): pin checkpoint-only cold restore of a large checkpoint by @brennanb2025 in #10500
- perf(terminal): drop the JSON structural pre-scan from the history read path by @brennanb2025 in #10499
- ci(release-cut): always show resolved commit, branch, and tag in summary by @nwparker in #10482
- fix(agent-hooks): install OpenCode status plugin into the WSL guest so status works over WSL by @OrcaWin in #10328
- perf(terminal): avoid repeated pending drain snapshots by @nwparker in #10163
- fix(sidebar): stop a worktree drag preview from closing the Agent Dashboard by @brennanb2025 in #10531
- feat(diagnostics): record OS suspend/resume so sleep gaps aren't read as freezes by @nwparker in #10530
- perf(worktree): park the git-common existence poll while the window is hidden by @brennanb2025 in #10528
- fix(terminal): make primary-selection paste suppression single-shot by @brennanb2025 in #10526
- fix(i18n): keep the macOS "Local Network" wording searchable in every locale by @brennanb2025 in #10536
- fix(window): stop viewport reflow from moving screen geometry by @nwparker in #10543
- fix(release-cut): gate an explicit RC against its own series by @brennanb2025 in #10525
- fix(git): read core.sparseCheckout the way git does by @brennanb2025 in #10537
- fix(runtime): reserve long-poll headroom so orchestration.ask can't starve terminal.wait by @brennanb2025 in #10529
- fix(tasks): keep repos with a pending remote-identity probe in the picker by @brennanb2025 in #10527
- test(git): cover the sparse-checkout false-positive class removed by #10537 by @brennanb2025 in #10547
- fix(worktree): bound the .worktreeinclude copy so a huge include can't freeze workspace creation by @brennanb2025 in #10540
- fix(runtime): report the effective ask timeout so a clamped wait isn't misreported by @brennanb2025 in #10550
- Observe daemon health failures and fix e2e test races by @AmethystLiang in #10595
- fix(diff): keep scroll restore armed through layout shifts by @AmethystLiang in #10615
- fix(editor): preserve Markdown focus handoffs by @AmethystLiang in #10618
- fix(worktree): collapse duplicate "Local Mac" run targets in the host picker by @nwparker in #10472
- test(e2e): fix two stale E2E specs failing on main (runtime host seeding, alt-screen snapshot) by @AmethystLiang in #10614
- Show Terminal and Window settings by default in Appearance pane by @AmethystLiang in #10628
- fix(terminal-pane): resolve React #185 setState loop via state identity by @AmethystLiang in #10632
- fix(mac): disable unstable Skia Graphite renderer to stop stale-tile corruption after idle by @nwparker in #10643
- Move language setting to primary interface section by @AmethystLiang in #10594
- Fix SSH relay installs on split shell/SFTP namespaces by @AmethystLiang in #10645
- Add {linkedIssue} template variable for commit and PR generation by @AmethystLiang in #10640
- fix(terminal): recover wedged panes after input by @AmethystLiang in #10617
- fix(terminal): make Zellij/TUI OSC 52 clipboard copy work by default by @innocarpe in #10588
- test(gpu): pin the win32-only fallback invariant the macOS Graphite fix relies on by @nwparker in #10646
- fix(crash-reporting): coalesce suppressed process-gone breadcrumbs so a recoverable-service crash loop can't erase the crash trail by @nwparker in #10648
- test(e2e): make Codex typing-latency harness measure real echo latency by @nwparker in #10660
- fix(projects): keep the local badge color when a remote host shares the project by @nwparker in #10676
- fix(daemon): preserve completion inspection across legacy protocols by @AmethystLiang in #10679
- fix(windows): fail closed on unknown PTY identity by @AmethystLiang in #10674
- fix(github): align PR source and review head origin by @AmethystLiang in #10677
- fix(crash-reporting): record exact V8 heap sizes, not Blink's quantized ones by @nwparker in #10683
- fix(github): resolve owner/repo through SSH Host aliases (#10284) by @nwparker in #10361
- fix(persistence): fsync state writes so a rename is actually durable by @Jinwoo-H in #10631
- fix(window): stop burning macOS GPU on an invisible blur effect (#8482) by @nwparker in #10682
- feat(sidebar): distinguish and filter CLI-created workspaces by @nwparker in #10712
- perf(relay): stop snapshotting the whole pending-PTY map every drain tick by @nwparker in #10670
- perf(sidebar): share one worktree-keyed agent orchestration index by @nwparker in #10678
- fix(mobile): recover unreliable relay connections by @Jinwoo-H in #10709
Full Changelog: v1.4.156...v1.4.157-rc.0