What's Changed
- Pair onboarding: drop leading row icons, keep text by @lawrencecchen in #5520
- Fix React script warning in web layout by @lawrencecchen in #5525
- CodeRabbit: stop blocking merges (request_changes_workflow=false) by @lawrencecchen in #5538
- Match iOS viewport border to pane divider color by @lawrencecchen in #5530
- iOS: redesign default terminal toolbar layout by @lawrencecchen in #5532
- iOS: rename and pin workspaces from the phone by @lawrencecchen in #5512
- iOS: multi-Mac host switcher by @lawrencecchen in #5513
- Add React and Solid agent session panels by @lawrencecchen in #4429
- iOS: data-driven terminal toolbar with custom actions + customize button by @lawrencecchen in #5510
- iOS: re-implement still-needed terminal/notification fixes from #5259 by @lawrencecchen in #5519
- Extract control-socket wire DTOs into CmuxControlSocket (stage 3a) by @azooz2003-bit in #5483
- iOS: paste images into the terminal from the phone clipboard by @lawrencecchen in #5546
- Mac pairing window: show connected state when iPhone attaches by @lawrencecchen in #5542
- iOS: show Restoring session for a known paired Mac on launch by @lawrencecchen in #5543
- iOS: non-blocking PostHog product analytics (Phase A) by @lawrencecchen in #5567
- iOS: DEBUG dogfood feedback round-trip + structured diagnostic log (P1) by @lawrencecchen in #5574
- macOS: DEBUG auto-sign-in for tagged DEV builds (dogfood account) by @lawrencecchen in #5582
- Turnkey dev builds P2: phone auto-pair + unified dev-setup entrypoint by @lawrencecchen in #5584
- Turnkey dev builds P3: /dev-cli environment profiles (composer/notif/browser/groups/...) by @lawrencecchen in #5585
- iOS: drop Mac host name from workspace titles + add wrap-titles toggle by @lawrencecchen in #5544
- iOS: tellable incrementing version (1.0.x + dev tag/SHA) instead of frozen 1.0 by @lawrencecchen in #5592
- iOS: reorderable built-in toolbar items (Ctrl/Option/Cmd/Esc/Tab) in toolbar settings by @lawrencecchen in #5579
- iOS: cap restoring-session window so a stale stored Mac can't hang it by @lawrencecchen in #5564
- iOS: show workspaces from all Mac windows, not just the front one by @lawrencecchen in #5565
- Keep pinned workspaces inside groups by @lawrencecchen in #5541
- Fix sidebar Shift-click range anchor after no-op drag by @lawrencecchen in #5601
- Fix SSH PTY typing lag by @lleewwiiss in #5594
- [codex] Move cmux agent policies into skills by @azooz2003-bit in #5608
- Split webviews bundle by surface (code splitting) by @lawrencecchen in #5613
- Fix inline VS Code command palette and WebSocket startup by @lawrencecchen in #5595
- Fix diff viewer loading state showing gray instead of the terminal theme by @lawrencecchen in #5631
- Keep Codex permission hooks non-blocking by @lawrencecchen in #5507
- Sentry: scrub file paths / PII / secrets from events before send (beforeSend/beforeBreadcrumb) by @lawrencecchen in #5598
- iOS: make terminal picker a native Menu (tap + press-drag-release) by @lawrencecchen in #5618
- Device registry P1: auto-pair the phone on reload by @lawrencecchen in #5626
- Fix publishV2 JSON response retention by @austinywang in #5664
- Fix UI freeze when closing tabs (synchronous agent-index load on main) by @lawrencecchen in #5669
- Retry Ghostty helper artifact uploads by @lawrencecchen in #5675
- Deflake UI test app launch waits by @lawrencecchen in #4461
- Event-driven SharedLiveAgentIndex: kill reload churn + close-undo staleness by @lawrencecchen in #5673
- Review-bot rules: prevent sync expensive-load + cache-substitution regressions by @lawrencecchen in #5672
- CI: re-enable Swift file length budget gate by @lawrencecchen in #5681
- Re-enable FileExplorerStore XCTest in CI by @lawrencecchen in #5682
- Run all DB-gated web tests in CI by @lawrencecchen in #5683
- Run Swift package settings alias test in CI by @lawrencecchen in #5684
- Retry required release asset attestations by @lawrencecchen in #5686
- Add fish shell integration by @lawrencecchen in #5678
- Deflake iOS menu item UI test taps by @lawrencecchen in #5687
- Remove stale iOS pairing QR asset by @lawrencecchen in #5692
- ios: add --external flag to upload-testflight.sh for external TestFlight groups by @lawrencecchen in #5552
- Fix nightly Xcode selection on single-Xcode runners by @lawrencecchen in #5694
- Fail bundled CLI tests when helper is missing by @lawrencecchen in #5696
- Isolate tmux corpus terminal CI DerivedData by @lawrencecchen in #5697
- Deflake browser find UI test launch readiness by @lawrencecchen in #5699
- [codex] Add more cmux agent skills by @azooz2003-bit in #5614
- Remove sidebar row-ids preference aggregation feeding the layout livelock (#2586) by @lawrencecchen in #5708
- Cover shell startup matrix by @lawrencecchen in #5695
- Fix #5286: surface needs-input attention for feed-routed blocking decisions by @austinywang in #5313
- Fix: make Select Workspace 1…9 / Surface 1…9 shortcuts actually rebindable (#5189) by @austinywang in #5196
- Fix tagged native auth callback handoff by @lawrencecchen in #5742
- Preserve user Claude settings on resume by @austinywang in #5661
- Fix sidebar status pills for newly created workspaces by @austinywang in #5662
- Serialize Ghostty surface registry mutations by @austinywang in #5622
- iroh default mobile transport: design + green Swift FFI spike by @lawrencecchen in #5735
- iOS: turnkey cloud TestFlight lane (fleet unsigned archive + local re-sign/verify) by @lawrencecchen in #5729
- Fix dragging grouped workspaces above their group by @austinywang in #5612
- Track AgentLaunchSanitizer.swift in the Swift file-length budget by @azooz2003-bit in #5751
- perf: drop redundant disk I/O on browser-availability checks and bg logging by @lawrencecchen in #5744
- Fix sidebar scrollbar: hide when content fits, fade overlay knob when idle (#3241) by @austinywang in #4767
- Fix launch crash on macOS 27 from zero-size SF Symbol rasterization by @matheustimbo in #5670
- docs: surface Workspace Groups on cmux.com/docs by @austinywang in #5749
- Fix #5128: open links on Cmd-click inside alt-screen TUIs (Claude/Codex) by @austinywang in #5406
- Resolve resumed claude through the cmux wrapper shim env var (fixes #5639) by @austinywang in #5721
- Fix #5733: drive find-overlay key routing off slot view hierarchy, not per-keystroke Entry weak-copy scan by @austinywang in #5755
- ios: detect Tailscale-off on the phone and surface it on pairing and disconnected screens by @lawrencecchen in #5722
- iOS: remove TestFlight wording from iOS screens + consistent no-devices chrome by @lawrencecchen in #5593
- iOS pairing: surface distinct, actionable failures instead of a silent ~60s spinner by @lawrencecchen in #5713
- macOS pairing window: replace "Download via TestFlight" with "Get cmux for iPhone" by @lawrencecchen in #5795
- iOS sign-in: bound every phase, cancellable OAuth waits, Cancel escape hatch by @lawrencecchen in #5728
- Slim the pairing QR: compact attach payload, drop vestigial auth_token, ECC M to L by @lawrencecchen in #5727
- iOS: pull-to-refresh on the workspace list by @lawrencecchen in #5654
- iOS: first-run onboarding before pairing by @lawrencecchen in #5655
- Retain Settings window for reliable reopen by @azooz2003-bit in #5801
- Stop titlebar elements from shifting when toggling the sidebar by @azooz2003-bit in #5707
- iOS onboarding: no-Tailscale guidance and explicit setup dead-ends by @lawrencecchen in #5714
- CmuxControlSocket stage 3b: main-actor lifecycle, AsyncStream client hand-off by @azooz2003-bit in #5719
- Add
cmux window displayto place a window on a named display by @azooz2003-bit in #5804 - chore: refresh the Swift file-length budget for current main by @austinywang in #5784
- Fix updater error copy for wedged-launchd install failures, add manual-download fallback by @azooz2003-bit in #5760
- chore: pre-allocate FeedCoordinator.swift budget for #5651 by @austinywang in #5814
- iOS: hierarchical device tree (device → tags → workspaces) over the device registry by @lawrencecchen in #5648
- iOS: mobile browser panes P1 (WKWebView surface) by @lawrencecchen in #5652
- Fix OSC 8 Cmd-click hyperlinks in terminal panes by @austinywang in #3580
- Don't hijack ZDOTDIR when the bundled shell-integration bootstrap is missing by @lawrencecchen in #5773
- iOS: Release-safe Send Feedback (privileged direct-to-agent for @manaflow.ai on tailnet, else email) by @lawrencecchen in #5653
- Deflake control-socket ping UI tests: wait for listener bind, then ping by @azooz2003-bit in #5812
- Localize package display strings missing from app catalogs by @azooz2003-bit in #5829
- Fix light themes rendering white-on-white terminals (#3459) by @austinywang in #5826
- Cache negative cmux-scope results so system.top stops re-probing every process per poll by @lawrencecchen in #5759
- web: bypass next/image optimizer for hero logo (Safari broken-image fix) by @austinywang in #5820
- Stop SSH auto-reconnect when host is unreachable; add manual Reconnect control (#5734) by @austinywang in #5767
- Custom sidebars: project PR context from per-panel state, not the focused-panel mirror by @azooz2003-bit in #5823
- Add cmux-custom-sidebar agent skill by @azooz2003-bit in #5851
- cli: browser view actions (react-grab, devtools, console, focus-mode, zoom, history) by @lawrencecchen in #5766
- Add a synchronous read seam to JSONConfigStore by @azooz2003-bit in #5838
- Add workspace group commands to the cloud CLI relay by @azooz2003-bit in #5856
- Add a persistent default display for dev builds by @azooz2003-bit in #5828
- Custom sidebar: instant toggle remount and live resize repaint by @azooz2003-bit in #5864
- browser actions: honor beforeinput on contenteditable, guard focus-mode side-effect, scope --return-to by @lawrencecchen in #5870
- Diff viewer: review comments with per-repo persistence and TextBox attach by @lawrencecchen in #5768
- sidebar perf: decouple workspace sidebar from notification-store churn by @lawrencecchen in #5859
- Set FD_CLOEXEC on control-socket descriptors by @austinywang in #5837
- Pixel-align sidebar content height to hide the phantom scrollbar (#3241) by @austinywang in #5846
- Cap sidebar status/metadata dictionaries to bound the sidebar view-graph livelock (#5845) by @austinywang in #5855
- Revert "Cap sidebar status/metadata dictionaries to bound the sidebar view-graph livelock (#5845)" by @austinywang in #5884
- Revert PR 5767 remote reconnect suspension by @austinywang in #5882
- Revert "Revert PR 5767 remote reconnect suspension" by @austinywang in #5885
- iOS: iMessage-style terminal composer (open by default, inline send, per-terminal drafts) by @lawrencecchen in #5876
- Fix browser keyDown stack overflow reentry by @azooz2003-bit in #5899
- Add vibe-coded custom sidebar examples by @azooz2003-bit in #5895
- Guard performKeyEquivalent keyDown force-dispatches against replay loops by @austinywang in #5891
- CmuxLiveEval: live-eval state engine foundation for vibe-coded sidebars by @azooz2003-bit in #5866
- Browser CLI reliability: socket-worker JS lane, CSP eval fallback, blank-surface fixes, fixture test suite by @lawrencecchen in #5778
- Fix iOS CI false-green: align manual-pairing tests with encrypted-route restriction, catch Swift Testing failures in success override by @lawrencecchen in #5906
- Custom sidebars: in-process renderer by default, Settings section, worker resize pump fix by @azooz2003-bit in #5867
- Forward notifications to iPhone only when away from the Mac by @lawrencecchen in #5912
- Minimal pairing QR: routes-only payload, loopback refusal, full-width render, Copy IP/Port, no expiry by @lawrencecchen in #5872
- Fix browser context menu opening the wrong link by @lawrencecchen in #5780
- Fix forked Claude sessions restoring the parent session after cmux restart by @lawrencecchen in #5910
- iOS render-grid liveness watchdog: probe before teardown, consume during subscribe ack (fixes the 10.5s false-fire replay loop) by @lawrencecchen in #5869
- CmuxControlSocket stage 3c: extract the RPC dispatch half of TerminalController into ControlCommandCoordinator (14 domains) by @azooz2003-bit in #5816
- iOS: park notification-tap deep links until the workspace can be navigated to by @lawrencecchen in #5927
- Add New Browser Workspace action (Option+Cmd+N) by @austinywang in #5926
- Fix browser image download filenames by @austinywang in #5938
- iOS: View as Text sheet for terminal copy-paste by @lawrencecchen in #5875
- Stabilize browser navigation UI test socket launch by @lawrencecchen in #5950
- Re-assert sidebar overlay scrollers when the preferred scroller style changes (#3241 sidebar scope) by @austinywang in #5955
- Fix Find pane for same-directory workspaces by @austinywang in #5956
- Browser pane: bypass system proxy for loopback on local workspaces by @austinywang in #5915
- Fix hidden right-sidebar FileExplorer mount loop on launch by @lawrencecchen in #4937
- browser inputs: dispatch pointerenter non-bubbling to match mouseenter and spec by @lawrencecchen in #5958
- Fix FileExplorer updateNSView re-entrant SwiftUI loop on macOS 26 (#4931) by @kevinsslin in #5786
- Distrust cross-agent and shell-wrapper agent launch captures (fixes missing/broken Fork Conversation) by @lawrencecchen in #5937
- Session restore stress: recover from corrupt snapshot via -previous backup by @lawrencecchen in #5914
- Release v0.64.15 by @austinywang in #5968
New Contributors
- @lleewwiiss made their first contribution in #5594
- @matheustimbo made their first contribution in #5670
- @kevinsslin made their first contribution in #5786
Full Changelog: v0.64.14...v0.64.15