What's Changed
- Diagnose Iroh session path flaps by owner by @azooz2003-bit in #8471
- Match cmux-tui Alt+N pane distribution to Zellij by @lawrencecchen in #8297
- feat(tui): support browser terminal backends by @lawrencecchen in #8294
- feat(ios): add live Iroh debug transport modes by @azooz2003-bit in #8479
- feat(iroh): publish signed direct UDP ports by @azooz2003-bit in #8480
- test(iroh): verify custom relay round trips by @azooz2003-bit in #8482
- Finish the production Iroh transport rollout by @azooz2003-bit in #8484
- Own admitted Iroh connection lifetime by @azooz2003-bit in #8453
- Harden Iroh relay server activation by @azooz2003-bit in #8454
- fix(ios): anchor Iroh connection diagnostics by @azooz2003-bit in #8456
- Preserve Tailscale access across Nightly Iroh upgrades by @azooz2003-bit in #8457
- Canonicalize paired Mac UUID device IDs by @azooz2003-bit in #8463
- Classify Iroh live discovery failures by @azooz2003-bit in #8464
- Harden user-configured Iroh relay resolution by @azooz2003-bit in #8469
- feat(tui): add shared workspace registry protocol by @lawrencecchen in #8340
- Test Iroh on Intel iOS Simulator by @azooz2003-bit in #8485
- Prove broker-bound Iroh relay round trip by @azooz2003-bit in #8488
- Add authenticated custom private Iroh paths by @azooz2003-bit in #8487
- Add authenticated production Iroh release gate by @azooz2003-bit in #8486
- ci(iroh): make direct-only release gate deterministic by @azooz2003-bit in #8489
- Normalize production Iroh gate temporary paths by @azooz2003-bit in #8491
- Gate Iroh rollout on Tailscale version skew by @azooz2003-bit in #8490
- Gate provider-neutral private Iroh paths by @azooz2003-bit in #8492
- Fix Iroh release-gate readiness race by @azooz2003-bit in #8493
- feat(iroh): stream artifacts over peer-bound lanes by @azooz2003-bit in #8494
- docs: correct Iroh relay catalog source by @azooz2003-bit in #8496
- Dedupe Iroh selected-path diagnostics by @azooz2003-bit in #8497
- Preserve secure Tailscale pairings across staggered Iroh upgrades by @azooz2003-bit in #8498
- Fix stable IDs in mirror workspace CLI output by @austinywang in #8437
- Add Zellij-style pane focus memory to cmux-tui by @lawrencecchen in #8449
- Lawrence Sidebar: down-then-up highlight, optimistic-paint reconcile, diagnosis probes by @azooz2003-bit in #8461
- Prove live Iroh relay token rollover before release by @azooz2003-bit in #8499
- iOS: launch agent workspaces from the task composer by @lawrencecchen in #7670
- Add first-class Mosh transport for remote workspaces by @austinywang in #8442
- Add chronological notification feed to iOS by @azooz2003-bit in #8210
- Fix remote daemon upload without SFTP by @austinywang in #8434
- Fix sidebar status URL clicks by @austinywang in #8528
- Prevent idle AppKit sidebar layout livelock by @austinywang in #8532
- Add remote-aware resume bindings for SSH workspaces by @austinywang in #8441
- Stabilize iOS workspace list scrolling during live updates by @azooz2003-bit in #8451
- Attach workspace rename and color alerts to their window by @azooz2003-bit in #8544
- Keep iOS terminal replay atomic until presentation is verified by @azooz2003-bit in #8106
- Tell coding agents workspace todos are user-owned by @azooz2003-bit in #8566
- Mobile state sync v2: per-record deltas replace the invalidate-and-refetch loop by @azooz2003-bit in #8284
- iOS: unified animated toast system (CmuxMobileToast) by @azooz2003-bit in #8376
- iOS: make terminal folder-path taps a setting (Open Folders on Tap) by @azooz2003-bit in #8524
- iOS: stop seeding fake placeholder workspaces on sign-out by @azooz2003-bit in #8571
- Fix identify caller recovery for restored shells by @austinywang in #8549
- Update Set Up Computer and Switch Computer copy for zero-touch pairing by @azooz2003-bit in #8570
- Render localized social previews deterministically by @lawrencecchen in #8420
- Restore socket discovery for legacy external clients by @austinywang in #8545
- Make workspace group CLI deletion safe by default by @austinywang in #8542
- [PERF] pr-poller: stop re-downloading every repo's full PR list on each poll (unchanged branches now 304 properly) by @joshfree in #8521
- Attach plain cmux-tui launches to existing sessions by @lawrencecchen in #8598
- main does not compile: actor initializer marked 'convenience' in CmuxGit by @ejc3 in #8607
- Fix Settings and main window zombies under AeroSpace by @fml09 in #8513
- Redesign iOS onboarding around live agent handoff by @azooz2003-bit in #8418
- Skip surface resume for exited agent processes by @austinywang in #8547
- Fix browser automation recovery after load failures by @austinywang in #8548
- Support indented hard-wrapped links by @lawrencecchen in #8391
- Fix browser navigation for terminal-wrapped URL pastes by @austinywang in #8601
- Fix remote tmux seed/live output ordering by @austinywang in #8436
- Fix renderer presentation for background-created surfaces by @austinywang in #8540
- Shield persistent remote PTY children from relay hangups by @austinywang in #8438
- Restore Kimi Code sessions after relaunch by @austinywang in #8584
- Fix Cmd-click link opening in Dock terminals by @austinywang in #8594
- Fix main build on Xcode 26.6: drop convenience from CmuxGit actor init by @azooz2003-bit in #8616
- iOS: stop open menus from flickering when their parent views re-render by @azooz2003-bit in #8611
- iOS: native soft scroll edge effect under the workspace list chrome by @azooz2003-bit in #8575
- Fix workspace shortcuts from hosted tmux terminals by @austinywang in #8621
- cmux-tui: make visible indexes zero-based by @lawrencecchen in #8603
- Restore todo/completion-status parity in the AppKit sidebar by @azooz2003-bit in #8552
- Persist per-tab terminal zoom across restarts by @austinywang in #8543
- Stop firing duplicate agent resumes on relaunch by @austinywang in #8619
- Add cmux Cloud billing return page by @lawrencecchen in #8647
- Fix AppKit sidebar shortcut hint animation by @lawrencecchen in #8589
- Add workspace-only focus history setting by @lawrencecchen in #8654
- Honor broker Retry-After across iOS endpoint activations by @azooz2003-bit in #8557
- fix(ios): persist Iroh broker backpressure by @azooz2003-bit in #8609
- Fix DispatchWorkItem chain stack overflow by @austinywang in #8615
- Allow internal TestFlight bundle id for APNs device-token registration by @azooz2003-bit in #8679
- Notify only after Pi agent settles by @mrohan-sq in #8574
- Show progress while verifying sign-in code by @azooz2003-bit in #8666
- Fix iOS deleted Iroh Mac recovery by @azooz2003-bit in #8683
- Fix iOS release settings toast compile by @azooz2003-bit in #8696
- Fix: exclude .attrib from watched filesystem events by @varomorf in #8659
- Resolve executable login shell before terminal spawn by @austinywang in #8681
- Fix remote PTY PATH inherited from cmuxd by @austinywang in #8677
- Fix Dock terminal working-directory inheritance by @austinywang in #8691
- Make sidebar scheduler test deterministic by @lawrencecchen in #8676
- Fix CmuxTerminal hibernation test hang by @lawrencecchen in #8674
- cmuxTests: pass the liveness the Entry initializer requires by @ejc3 in #8651
- remote-daemon: tear a PTY session down once by @ejc3 in #8643
- Fix sendable shell executable check by @lawrencecchen in #8707
- Add pluggable machine sidebar and provider transport by @lawrencecchen in #8622
- Support respawn-pane in Go relay __tmux-compat for SSH sessions by @bencollins2 in #8660
- Fix iOS deleted computer recovery empty state by @azooz2003-bit in #8712
- Remove iroh rate limiting: make limiter optional and fail open by @azooz2003-bit in #8714
- Improve iOS New Task recovery and naming by @azooz2003-bit in #8554
- Name every iroh disconnect: classify client read errors + host close reasons by @azooz2003-bit in #8716
- Upload cmux INTERNAL for every main push by @azooz2003-bit in #8694
- Refine iOS onboarding visuals and copy by @azooz2003-bit in #8756
- iOS: preserve terminal input ordering under fast typing by @azooz2003-bit in #8682
- Replace iOS computer deletion with per-phone hide by @azooz2003-bit in #8760
- Fix restored resume workspace titles by @austinywang in #8687
- Fix Vault sidebar beachball at large session counts by @austinywang in #8680
- Keep the normal shell when every Mac is hidden by @azooz2003-bit in #8763
- Fix iOS task route picker colors by @azooz2003-bit in #8767
- Preserve workspace IDs across session restore by @austinywang in #8695
- Make relay rate limiter fail open on missing rule and skip when unconfigured by @azooz2003-bit in #8773
- Show more notification rows in onboarding by @azooz2003-bit in #8774
- iOS: keep the Settings sheet open across the startup reconnect resolving by @azooz2003-bit in #8766
- Sidebar: native NSTableView drop path for workspace reorder by @azooz2003-bit in #8605
- Make CMUX_RELAY_TOKEN_RATE_LIMIT_ID optional so deploys survive unset rate-limit envs by @azooz2003-bit in #8771
- Name online-admission session closes and reject nearly expired leases at admission by @azooz2003-bit in #8775
- Keep TUI tab bars visible at minimum pane heights by @lawrencecchen in #8765
- Fix tab drops across full tab bar by @lawrencecchen in #8794
- Land cmux TUI backend, durable workspaces, renderer processes, and Browser GPL slices by @lawrencecchen in #8717
- Make terminal placement canonical and host PTYs in resilient per-terminal processes by @lawrencecchen in #8505
- Add superrepo blog post and author bylines by @lawrencecchen in #8790
- Add iOS haptic feedback setting by @azooz2003-bit in #8797
- Fix blurred Google Sheets canvas rendering by @austinywang in #8697
- Launch workspace initial commands via the user's login shell by @azooz2003-bit in #8801
- Prevent pricing CTA loading layout shifts by @lawrencecchen in #8806
- Limit CMUX INTERNAL builds to iOS changes by @azooz2003-bit in #8812
- Use appearance-specific onboarding screenshots by @azooz2003-bit in #8803
- Deleted Macs are not hidden: clear legacy markers, retire legacy recovery by @azooz2003-bit in #8778
- Test optional Iroh limiter configuration by @lawrencecchen in #8761
- Allow the required browser GitHub runner by @lawrencecchen in #8815
- Route Get Pro directly to Stripe checkout by @lawrencecchen in #8813
- Make every rate-limit env var optional and fail open on deleted rules by @azooz2003-bit in #8818
- Promote the Iroh relay-only override to a real cross-platform setting by @azooz2003-bit in #8824
- Preserve surface IDs in workstream events by @revanthreddy-hai in #8703
- Name lane-failure and send-queue-overflow iroh session close reasons by @azooz2003-bit in #8834
- iOS: show per-build entries with build tags in computer pickers by @azooz2003-bit in #8816
- Fix TextBox IME composition rendering by @austinywang in #8688
- Add workspace identity customization to the iOS sidebar by @azooz2003-bit in #8636
- Kill corpse-redials and make Iroh client dials single-flight per peer by @azooz2003-bit in #8840
- Fix Retina scaling in design mode annotation crops by @austinywang in #8831
- Dock surface runtime parity by @austinywang in #8782
- Prevent workspace switch renderer freezes by @austinywang in #8793
- Send founders welcome email for every completed checkout by @austinywang in #8846
- Fix Codex code mode rollout identity conflicts by @austinywang in #8715
- Fit same-display restored windows to visible bounds by @austinywang in #8675
- Persist Dock panes in session restore by @austinywang in #8690
- Retry cloud provider reconnects and refine shared rails by @lawrencecchen in #8854
- Bound mobile event emission: synchronous admission, shed-or-close, stall teardown (#8842) by @austinywang in #8858
- iOS: native Changes viewer — review workspace diffs from the phone by @azooz2003-bit in #8221
- Fix main build: two compile errors from PR 8690 by @azooz2003-bit in #8869
- Make notification feed read state a leading swipe with mark-unread by @azooz2003-bit in #8868
- Fix main build: import CmuxWorkspaces in DockSplitStore+RestoredAgentLifecycle by @azooz2003-bit in #8873
- Fix composer attachment thumbnail re-rasterization by @austinywang in #8817
- Fix focus history shortcut rebinding by @austinywang in #8853
- Fix sidebar reopen cutoff render by @austinywang in #8626
- Add demo variant to the iOS TestFlight lane by @azooz2003-bit in #8876
- Allow dev.cmux.app.demo as a production APNs topic by @azooz2003-bit in #8875
- Fix TestFlight demo variant CI guard by @lawrencecchen in #8887
- fix: eliminate Ghostty terminal typing lag by @austinywang in #8848
- Adopt the fork's cancellable ConnectAttempt for Iroh client dials by @azooz2003-bit in #8878
- Hide one computer row without hiding sibling build instances by @azooz2003-bit in #8877
- iOS: keep healthy connections across foreground, stop quick-cycle reconnect stalls by @azooz2003-bit in #8825
- Fix iOS build: form owned-userdata release callback from a closure literal by @azooz2003-bit in #8897
- Fix iOS terminal dock keyboard pinning (bars jump to mid-screen) by @azooz2003-bit in #8899
- Demote QR pairing from primary surfaces by @azooz2003-bit in #8821
- iOS: scope device-keyed Mac state to the exact pairing by @azooz2003-bit in #8901
- Make iOS terminal scrolling local and buttery with screen-anchored render grids by @azooz2003-bit in #8860
- Use the normal terminal shell for agent auto-resume (#8837) by @austinywang in #8839
- Fix verified replay crash on iOS surface queue by @azooz2003-bit in #8910
- Add browser profile targeting to CLI pane creation by @austinywang in #8874
- Use native workspace-only bottom search on iOS by @azooz2003-bit in #8645
- Reopen closed workspaces with sticky repo identity by @austinywang in #8841
- Drain hook stdin before neutral exits by @lawrencecchen in #8863
- Isolate web test module globals by @lawrencecchen in #8891
- Fix current main Swift CI regressions by @lawrencecchen in #8892
- Fix integration review follow-ups by @lawrencecchen in #8948
- Integrate current-main check repairs by @lawrencecchen in #8941
- Fix current Swift warning regressions by @lawrencecchen in #8898
- Make terminal dock duration test deterministic by @lawrencecchen in #8940
- Fix current Swift warning regressions by @lawrencecchen in #8944
- Fix Ghostty render-grid package-test stub link by @lawrencecchen in #8945
- Add pane controls and single-terminal attach to cmux TUI by @lawrencecchen in #8710
- Keep unavailable terminal Copy from reaching the PTY by @lawrencecchen in #8895
- Make Cmd-Shift-H flash reliably by @lawrencecchen in #8785
- Scope client sizing to each terminal by @lawrencecchen in #8776
- Add outbound external machine pairing by @lawrencecchen in #8748
- Deliver durable cloud usage notices by @lawrencecchen in #8942
- Add selected-workspace provider actions to cmux TUI by @lawrencecchen in #8943
- Make cmux TUI packages portable across Linux distributions by @lawrencecchen in #8954
- Add native iPhone and iPad Simulator panes by @lawrencecchen in #7857
- Preserve UTF-8 across control socket reads by @austinywang in #8962
- Route TUI package verification through configured runner by @lawrencecchen in #8987
- Reuse verified artifacts across TUI publishers by @lawrencecchen in #8973
- Persist durable provider notice identity by @lawrencecchen in #8961
- Render iPhone Simulator panes crisply at real size by @lawrencecchen in #8983
- Compact CLAUDE.md and skills docs by @lawrencecchen in #8990
- Fix zsh prompt wrap spacer lines by @austinywang in #8964
- Fix disabled workspace cwd inheritance by @austinywang in #8966
- Fix blank panes after skipped initial layout by @austinywang in #8967
- Fit main windows after AppKit frame restoration by @austinywang in #8963
- cmux-tui: add familiar terminal shortcuts by @lawrencecchen in #8698
- CI: verify TUI ARM64 packages on native runners by @lawrencecchen in #9004
- Put the mobile diff viewer behind a remote feature flag, off by default by @azooz2003-bit in #8937
- Closing a group's anchor keeps the group instead of scattering members to root by @azooz2003-bit in #8925
- Move active surfaces between panes with automatic directional splits by @austinywang in #8764
- Focused-read indicator survives surface-scoped mark-read again by @ejc3 in #8927
- Fix foreground scope for Global Search shortcut by @austinywang in #8699
- Render sidebar metadata Markdown links in AppKit by @djova in #8663
- Fix hooks feed hangs for unsupported agents by @austinywang in #8968
- Make browser design-mode handoffs readable by @austinywang in #8830
- Mermaid diagrams no longer double-scale under viewer zoom on newer WebKit by @ejc3 in #8914
- cmuxTests: model shipped behavior in two input/transport fixtures by @ejc3 in #8911
- Settings store imports appearance at init instead of live-applying it (restores 70bcbda) by @ejc3 in #8913
- Fix leaked openThread loops burning ~90% of cmux idle CPU by @lawrencecchen in #9000
- Add horizontally scrolling columns to cmux-tui by @lawrencecchen in #8850
- cmuxTests: stop FileDropOverlayViewTests killing its test host on a missing environment object by @ejc3 in #8851
- Add refresh controls for file previews by @austinywang in #8692
- cmuxTests: stop grading the CLI spawn on a five-second stopwatch by @ejc3 in #8867
- Fix SSH reconnect churn after persistent daemon respawn by @austinywang in #9019
- Resuming a restored pi session keeps its launch arguments by @ejc3 in #8912
- Fix saved layout surface ordering by @austinywang in #9018
- cmuxTests: catch three suites up to shipped behavior by @ejc3 in #8909
- Fix sticky workspace identity leaking into Cmd+N by @austinywang in #9031
- Fix first-open Fork Conversation tab menu availability by @austinywang in #9037
- Fix desktop notification permission settings row by @austinywang in #6960
- Fix Vim Mode cursor and selection rendering by @lawrencecchen in #8995
- Fix io-gather spin and reap dead pane children by @austinywang in #8884
- Stop reentrant focus storms (#8843) by @austinywang in #9026
- Fix SDK publish Rust toolchain by @lawrencecchen in #9055
- Route SDK npm releases through trusted publisher by @lawrencecchen in #9057
- Fix Dock terminal pointer focus by @austinywang in #9051
- Fix blocking Pi extension hook dispatch by @austinywang in #8693
- Allow npm publish while main advances by @lawrencecchen in #9058
- Fix iOS TestFlight crash paths by @azooz2003-bit in #9034
- Fix Dock agent-finished notification rings by @austinywang in #9047
- Fix Dock terminal cwd inheritance from Ghostty reports by @austinywang in #9048
- Frame iOS onboarding screenshots by @azooz2003-bit in #8932
- Fix browser UA compatibility without blurring Google Sheets by @austinywang in #9054
- Fix occasional dim terminal text after appearance changes by @austinywang in #9063
- Stop XCTest crashes from reaching Sentry by @azooz2003-bit in #8786
- Keep resumed agent notification hooks armed during restore by @austinywang in #9064
- Fix TextBox selection replacement under refresh churn by @austinywang in #9084
- Fix detached shell reports under cmuxOnly by @austinywang in #9077
- fix: goto_split:previous/next cycle through all panes with wrapping by @mykmelez in #2639
- Instrument direct Codex fork sessions by @austinywang in #9081
- feat: auto-retry failed agent sessions by @austinywang in #9024
- Fix ssh-tmux focus after single-pane promotion by @austinywang in #9020
- Fix aggregate memory attribution across workspaces by @austinywang in #9086
- fix: complete goto_split previous/next pane cycling by @austinywang in #9046
- Add Windows and Linux download pages by @lawrencecchen in #9070
- feat(iroh): complete release closeout and recovery hardening by @azooz2003-bit in #9071
- Bump iroh-ffi to 1.0.2-cmux.6: dead-path failover + make-before-break relay rotation by @azooz2003-bit in #9116
- Fix ssh-tmux sibling pane input capture by @austinywang in #9102
- Fix terminal Find Next navigation by @austinywang in #9087
- iOS: stop the terminal files chip from flickering by @azooz2003-bit in #8822
- Fix main-thread livelock under saturated terminal output by @austinywang in #9117
- Validate production Iroh trust in release gates by @azooz2003-bit in #9118
- iOS: make the files chip count exactly match the gallery rows by @azooz2003-bit in #8902
- Fix stale GhosttyKit in iOS reloads by @azooz2003-bit in #9121
- Directed presence channel: server can wake the Mac (nudge push) by @azooz2003-bit in #9012
- iOS: stop terminal zoom + push-up during keyboard transitions by @azooz2003-bit in #8907
- iOS: scroll-reveal the terminal files chip by @azooz2003-bit in #8928
- Collapse spinner terminal titles before ingress dedup by @austinywang in #9098
- Fix OMP restore tracking for nested task sessions by @austinywang in #9115
- Emit Pi compact and subagent lifecycle Feed events by @austinywang in #9106
- Fix iOS RPC cancellation reconnect churn by @azooz2003-bit in #8929
- Remove top search bar on iOS Workspaces and Notifications tabs by @azooz2003-bit in #9129
- Restore the Swift warning budget on current main by @lawrencecchen in #9100
- Add 367 billion token workflow blog post by @lawrencecchen in #9135
- Render Command-clicked HTML files in browser panes by @austinywang in #9096
- Add cmux.com team-vault APIs for local Subrouter egress by @lawrencecchen in #9099
- Bump iroh-ffi to 1.0.2-cmux.7: idle-path stall evidence fix by @azooz2003-bit in #9134
- Retire QuickLook previews after window loss by @azooz2003-bit in #8789
- Add workspace-wide terminal font zoom shortcuts by @lawrencecchen in #8791
- Prevent stalled remote PTY starts and bound wedged reattach loops by @austinywang in #9111
- Hibernate idle agents before critical memory pressure panics by @austinywang in #9090
- Fix SSH relay deadlock after app restart by @austinywang in #9105
- Pipeline iOS terminal input over ordered mobile RPC by @azooz2003-bit in #9036
- Keep iOS New Task button clear of the bottom search pill by @azooz2003-bit in #9136
- docs: open iOS builds on the connected iPhone by default by @azooz2003-bit in #9160
- iOS: anchor the keyboard-rise render slide to the cursor row by @azooz2003-bit in #9133
- Render realistic onboarding iPhone frame by @azooz2003-bit in #9122
- Add a dev target to the presence deploy workflow by @azooz2003-bit in #9161
- Route iOS connection statuses through toasts behind the beta flag by @azooz2003-bit in #8784
- Make iOS onboarding tour a swipeable horizontal pager by @azooz2003-bit in #9158
- Show Game of Life backdrop on every onboarding page by @azooz2003-bit in #8880
- Batch iOS TestFlight uploads on a schedule instead of per merge by @azooz2003-bit in #9165
- Make the iOS notification feed scroll fast with thousands of items by @azooz2003-bit in #9141
- Drag the whole cmd-selection when dragging a selected sidebar workspace by @azooz2003-bit in #8933
- iOS: preserve terminal scroll position across mid-stream verified replays by @azooz2003-bit in #9032
- Fix iOS workspace-list scroll stutter from live updates by @azooz2003-bit in #9139
- Revert "feat: auto-retry failed agent sessions" (#9024) by @austinywang in #9184
- Align TestFlight guard with scheduled uploads by @lawrencecchen in #9170
- Fix TUI pointer motion during layout updates by @lawrencecchen in #8709
- Fix Debug-build crash on macOS 26.5: non-finite event coordinates trap in sidebar divider diagnostics by @oscarbrey in #9156
- Make Cmd+Shift+T reopen the last closed item by @austinywang in #9132
- docs: make second-model review opt-in, not a handoff default by @azooz2003-bit in #9194
- Fix per-keystroke render-grid replay loop on iOS, instrument sync latency by @azooz2003-bit in #9146
- Fix CmuxMobileShellUI build break from PR 9146 merge by @azooz2003-bit in #9195
- iOS: keep Mac discovery alive through onboarding so the connect page is ready on arrival by @azooz2003-bit in #9163
- Fix 9071 review P1s: adopt legacy device id on in-place upgrade, total-order challenge mints by @azooz2003-bit in #9196
- Keep iOS control connections warm across paired Macs by @azooz2003-bit in #8931
- iOS: mount the connection-status toast presenter at the shell root by @azooz2003-bit in #9159
- Reclaim hidden Ghostty renderer memory by @lawrencecchen in #8998
- Retry restored SSH after boot-time network failure by @austinywang in #9083
- Chain SSH config RemoteCommand into cmux interactive sessions by @austinywang in #9114
- Fix workspace group anchor numbering by @austinywang in #9176
- Fix subprocess pipe descriptor leaks by @austinywang in #9187
- Fix OMP hook binding from live PID/TTY identity by @austinywang in #9091
- Fix stale SSH workspace connection status by @austinywang in #9085
- Fix Codex resume notification rebinding by @austinywang in #9185
- Fix LiveSetting DynamicProperty executor crash by @austinywang in #9124
- Prevent recursive deferred-action release chains by @austinywang in #9179
- Fix large paste truncation under transient backpressure by @austinywang in #9093
- fix: preserve claude-teams tmux routing by @austinywang in #9033
- Bound overlapping agent hibernation evaluations by @austinywang in #9113
- Fix resumed Codex Teams subagent pane backfill by @austinywang in #9180
- Unify local resume launcher scripts (#9200) by @austinywang in #9205
- Fix Ghostty Zig workflow guard false positives by @austinywang in #9209
- Fix SSH retry script compiler timeout by @austinywang in #9213
- Add cmux TUI product and docs pages by @lawrencecchen in #9049
- Fix remote PTY lifecycle test fake by @austinywang in #9214
- Fix detached transfer test fixture by @austinywang in #9216
- Fix hanging cmux theme picker by @austinywang in #9211
- Pin GhosttyKit checksum for theme picker fix by @austinywang in #9218
- Remove TUI install path notes by @lawrencecchen in #9219
- Shrink Iroh pairing QR payload by @azooz2003-bit in #9174
- Replay sidebar clicks after reveal actions return by @austinywang in #9225
- iOS: stream Mac browser panes to the phone (pixel-perfect, interactive, dialogs mirrored) by @azooz2003-bit in #8298
- iOS: stable Keychain device id + Forget computer (iroh re-key client) by @azooz2003-bit in #8888
- iOS: per-pairing workspaces and notifications for sibling Mac builds by @azooz2003-bit in #8936
- Fix sidebar row clipping during height-changing reorder by @azooz2003-bit in #9189
- Enforce iPhone+simulator default for iOS verification with an offline install queue by @azooz2003-bit in #9232
- Document workspace-action in the cmux skill by @Vesely in #8177
- Add public company information page by @lawrencecchen in #9240
- Align iOS Compose with the Search control by @azooz2003-bit in #9172
- Fix BrowserPanel unused-result compile errors blocking CI by @azooz2003-bit in #9239
- fix: clear Xcode 26.3 warning gate by @azooz2003-bit in #9233
- Register company-information as an agent-readable page by @azooz2003-bit in #9245
- Batch approval and prefix generalization for surface resume command alerts by @azooz2003-bit in #9028
- Fix iOS workspace list toolbar insets by @azooz2003-bit in #9171
- Fix iOS startup crash: sentry-init racing environ mutation in ghostty_init by @azooz2003-bit in #9238
- Remove total cap from Iroh endpoint bindings by @azooz2003-bit in #9253
- Ship dSYMs with iOS TestFlight builds and persist them as run artifacts by @azooz2003-bit in #9236
- Fix iOS TestFlight Release archive: guard DEBUG-only evidence probe by @azooz2003-bit in #9254
- iOS: Tailscale connection method opt-in (Settings + onboarding) with QR-authorized pairing by @azooz2003-bit in #9247
- Remove all iroh broker quotas and rate limits by @azooz2003-bit in #9269
- Fix pinned workspace grouping and group reordering by @lawrencecchen in #9288
- Unbreak workflow-guard-tests: fake iOS archives need dSYMs and Symbols by @azooz2003-bit in #9279
- Stop restore from cloning one directory's sticky title onto every workspace by @azooz2003-bit in #9260
- Keep workspace customization scoped to workspace identity by @austinywang in #9270
- Fix configurable browser and focus Back/Forward shortcuts by @austinywang in #9296
- Add noun-first resource API and handwritten SDKs by @lawrencecchen in #9215
- Poll iOS TestFlight every 20 minutes for new changes by @lawrencecchen in #9280
- Route cmux-tui spec through configured Linux runner by @lawrencecchen in #9313
- Add sidebar account and mobile pairing controls by @lawrencecchen in #8354
- Fix Pro TestFlight fulfillment and welcome flow by @lawrencecchen in #8859
- Harden authoritative Iroh route reconciliation by @azooz2003-bit in #9318
- Comprehensive Sentry telemetry for iroh/transport failures (iOS + macOS) by @azooz2003-bit in #9305
- Fix iOS terminal scrolling during edge swipe back by @lawrencecchen in #6659
- Rebuild Iroh connectivity authority and Apple transport by @azooz2003-bit in #9284
- Fix live prose stream ownership by @azooz2003-bit in #9246
- Fix connectivity-v2 mobile host tests by @lawrencecchen in #9328
- Fix partial blank browser screenshots by @austinywang in #9281
- Fix iOS keyboard focus after photo picker by @azooz2003-bit in #9287
- Add shell-free cmux restore verb by @austinywang in #9265
- Fix inline code escaping in markdown viewer by @austinywang in #9274
- Fix Dock paste routing to selected terminal by @austinywang in #9112
- iOS: restore workspace drag-and-drop + group create after ticket expiry; native drop-into-group signifiers by @azooz2003-bit in #8602
- Keep company information page low key by @lawrencecchen in #9335
- iOS: Mail-style reconnect status line; keep content visible during transient reconnects by @azooz2003-bit in #9276
- Close the remaining ContentView release-chain gap by @austinywang in #9082
- iOS: fix Hidden Computers Forget swipe crash (destructive role on confirm-first button) by @azooz2003-bit in #9291
- Classify transient token misses as connectivity so launch activation stops failing closed by @azooz2003-bit in #9259
- Fix ssh-tmux terminal replies leaking into reattached panes by @austinywang in #9272
- Bound iOS iroh client retries with one shared backoff policy by @azooz2003-bit in #9301
- Fix stale semantic prompts duplicating inline TUI frames by @austinywang in #9275
- Fix ssh-tmux named-key encoding for remote TERM by @austinywang in #9273
- Fix sender-relative key-window routing for restored windows by @austinywang in #9282
- Fix missing return in restoreCLIArgument breaking nightly Release build by @austinywang in #9343
- Fix missing return in restoreCLIArgument (main compile break) by @azooz2003-bit in #9334
- Fix main compile break: missing return in restoreCLIArgument by @azooz2003-bit in #9338
- Port reconnect residuals onto connectivity v2 by @azooz2003-bit in #9347
- Add annual Pro pricing by @lawrencecchen in #9234
- Fix restoring Codex sessions across relaunch generations by @austinywang in #9370
- Make workspace schema errors actionable by @lawrencecchen in #9320
- Harden resource SDK cancellation and transport lifecycles by @lawrencecchen in #9366
- fix: close browser handoff cleanup races by @lawrencecchen in #9323
- Fix restore CLI help probe format by @lawrencecchen in #9365
- Keep Pi hooks and unread updates off UI-critical paths by @lawrencecchen in #9289
- Cmd+[ / Cmd+] traverse global workspace focus history; pane cycling becomes rebindable by @azooz2003-bit in #9329
- Simplify annual pricing labels by @lawrencecchen in #9373
- Fix Grok session discovery for fresh launches by @austinywang in #9379
- Show signed-out state on app pricing page with in-app sign-in by @lawrencecchen in #7821
- Disclose yearly billing in compact pricing labels by @lawrencecchen in #9378
- Fix sidebar avatar loading fallback by @lawrencecchen in #9375
- Add authenticated remote daemon and clients to cmux-tui by @lawrencecchen in #8667
- Discover fresh Grok sessions from disk by @austinywang in #9382
- cmux-tui: render inline Kitty images through libghostty by @lawrencecchen in #8811
- Resolve restore targets from live process identity by @austinywang in #9384
- Fix Vault popover crashes in recycled rows by @austinywang in #9392
- Keep explicit agent restore records across shell preexec by @austinywang in #9391
- Preserve live peer sessions across equivalent route revision bumps by @azooz2003-bit in #9342
- Harden remote daemon transports and workspace RPC by @lawrencecchen in #9390
- Keep sidebar icon until avatar URL exists by @lawrencecchen in #9386
- Fix Kimi restore-of-restore binding kind decoding by @austinywang in #9397
- Preserve Pi resume identity across repeated restores by @austinywang in #9399
- Fix registry kind test fixture compilation by @austinywang in #9413
- Release v0.64.21 by @austinywang in #9414
New Contributors
- @joshfree made their first contribution in #8521
- @fml09 made their first contribution in #8513
- @mrohan-sq made their first contribution in #8574
- @varomorf made their first contribution in #8659
- @bencollins2 made their first contribution in #8660
- @revanthreddy-hai made their first contribution in #8703
- @djova made their first contribution in #8663
- @mykmelez made their first contribution in #2639
- @oscarbrey made their first contribution in #9156
- @Vesely made their first contribution in #8177
Full Changelog: v0.64.20...v0.64.21