Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
105 commits
Select commit Hold shift + click to select a range
f07dc8a
Add remote tmux (-CC over SSH) mirroring (beta)
robertnisipeanu Jun 5, 2026
6b4d06d
Fix remote tmux TUI rendering: sync client size for single-pane windows
robertnisipeanu Jun 5, 2026
8c8d16e
Remote tmux: track remote working directory + paste images to the host
robertnisipeanu Jun 5, 2026
962fd1b
Remote tmux: paste/drop via tmux paste-buffer -p so images render nat…
robertnisipeanu Jun 6, 2026
72297d6
Remote tmux: fix mirror resize for alt-screen and inline TUIs
robertnisipeanu Jun 6, 2026
0813e53
Remote tmux: fix mirror UTF-8 corruption and harden pane-state seeding
robertnisipeanu Jun 6, 2026
fce5181
Remote tmux: forward mouse to the remote pane (seed tracking mode on …
robertnisipeanu Jun 6, 2026
62865f2
Docs: add Remote tmux (beta) page
robertnisipeanu Jun 6, 2026
6f7d7e0
Remote tmux: keep window reorder in sync across repeated drags
robertnisipeanu Jun 6, 2026
23cf7a4
Docs: correct remote tmux attach flow (mirrors the host)
robertnisipeanu Jun 6, 2026
bdd0ffe
Remote tmux: keep window reorder correct across rapid drags
robertnisipeanu Jun 6, 2026
7faf644
Remote tmux: drop unused RemoteTmuxLayoutNode.isLeaf
robertnisipeanu Jun 6, 2026
5109701
Merge remote-tracking branch 'origin/main' into remote-tmux-upstream
robertnisipeanu Jun 6, 2026
ddd207d
Remote tmux: out-of-band reorder, disconnect handling, scrollback see…
robertnisipeanu Jun 7, 2026
196caf2
Remote tmux: auto-reconnect on transport loss (keep the mirror frozen)
robertnisipeanu Jun 7, 2026
d0550c6
feat(remote-tmux): cmux ssh-tmux interactive SSH auth
robertnisipeanu Jun 7, 2026
ff04798
remote-tmux: don't auto-restore mirrors on launch
robertnisipeanu Jun 7, 2026
422e1d3
remote-tmux: remove File-menu/palette attach (CLI-only)
robertnisipeanu Jun 7, 2026
77b09ca
fix(remote-tmux): close ControlMaster when user closes a host's last …
robertnisipeanu Jun 7, 2026
fc7e16a
remote-tmux: register ssh terminationHandler before launch
robertnisipeanu Jun 7, 2026
dc2ef4a
remote-tmux: cancel-safe window creation + master teardown on mirror …
robertnisipeanu Jun 7, 2026
1c55a69
remote-tmux: guard async master teardown against reattach + exit conn…
robertnisipeanu Jun 7, 2026
2d7bdf1
fix(remote-tmux): fail loudly if the ssh foreground handoff fails
robertnisipeanu Jun 7, 2026
fc8cb84
remote-tmux: keep the ControlMaster alive on remote session-end if a …
robertnisipeanu Jun 7, 2026
f7f657f
remote-tmux: drop now-unused Codable from RemoteTmuxHost
robertnisipeanu Jun 7, 2026
6507065
fix(remote-tmux): don't leave a sticky empty window when every sessio…
robertnisipeanu Jun 7, 2026
0d4ba11
docs(remote-tmux): correct the reconnect limitation to match auto-rec…
robertnisipeanu Jun 8, 2026
6315a1d
remote-tmux: drop the unshipped remote.tmux.open command
robertnisipeanu Jun 8, 2026
ce1041b
Merge remote-tracking branch 'origin/main' into remote-tmux-upstream
robertnisipeanu Jun 8, 2026
64829d1
remote-tmux: address review-bot comments (#5553)
robertnisipeanu Jun 8, 2026
a230bdc
remote-tmux: bump vendor/bonsplit (drop-path delegate fired outside t…
robertnisipeanu Jun 8, 2026
99ef05e
remote-tmux: decompose oversized files, scope new-workspace routing, …
robertnisipeanu Jun 8, 2026
adc1d80
remote-tmux: add missing ja docs.navItems.remoteTmux nav label
robertnisipeanu Jun 8, 2026
49202b8
remote-tmux: address coderabbit review findings (reseed reset, teardo…
robertnisipeanu Jun 8, 2026
4ff851e
remote-tmux: conditional shell reflow + reliable on-attach client sizing
robertnisipeanu Jun 9, 2026
9cf6101
remote-tmux: seed-before-size ordering + attach redraw kick
robertnisipeanu Jun 9, 2026
9339433
remote-tmux: FIFO-safe first-connect sizing + attach-block consumptio…
robertnisipeanu Jun 9, 2026
feff74c
remote-tmux: shrink GhosttyTerminalView footprint — move initial sizi…
robertnisipeanu Jun 9, 2026
f4a003c
remote-tmux: simplification pass (seedPane helper, PostAttachAction e…
robertnisipeanu Jun 10, 2026
38be9cd
remote-tmux: pin vendor/bonsplit to merged upstream main (bonsplit#143)
robertnisipeanu Jun 10, 2026
f98e499
docs: remote-tmux troubleshooting note for Permission denied on incom…
robertnisipeanu Jun 10, 2026
d86ad77
Merge remote-tracking branch 'origin/main' into remote-tmux-upstream
robertnisipeanu Jun 11, 2026
28d3259
remote-tmux: refresh swift file-length budget for files grown by this PR
robertnisipeanu Jun 11, 2026
7e1786c
Merge remote-tracking branch 'origin/main' into remote-tmux-upstream
robertnisipeanu Jun 11, 2026
d178b67
remote-tmux: confirm before closing mirror tabs/panes running a command
robertnisipeanu Jun 11, 2026
555a74d
perf: never stat possibly-remote paths on the main thread in menu/ico…
robertnisipeanu Jun 11, 2026
8d3e029
remote-tmux: refresh swift file-length budget for files grown by this PR
robertnisipeanu Jun 11, 2026
a2a692c
Merge remote-tracking branch 'origin/main' into remote-tmux-upstream
robertnisipeanu Jun 11, 2026
f9641d5
Merge remote-tracking branch 'origin/main' into remote-tmux-upstream
robertnisipeanu Jun 11, 2026
f8c238d
settings: add Remote tmux beta row to the search-anchor contract list
robertnisipeanu Jun 11, 2026
774d4dc
fix NSMenuItem non-Sendable capture warning in the path-menu title re…
robertnisipeanu Jun 11, 2026
d7e5a52
remote-tmux: regression test — a mirror-workspace split must never cr…
robertnisipeanu Jun 11, 2026
c09e0ee
remote-tmux: report socket/CLI splits routed to a mirror as accepted,…
robertnisipeanu Jun 11, 2026
e7453fc
Merge remote-tracking branch 'origin/main' into remote-tmux-upstream
robertnisipeanu Jun 11, 2026
9ac65aa
Merge remote-tracking branch 'origin/main' into remote-tmux-upstream
robertnisipeanu Jun 11, 2026
a873871
Merge remote-tracking branch 'origin/main' into remote-tmux-upstream
robertnisipeanu Jun 11, 2026
3af0bd0
Merge remote-tracking branch 'origin/main' into remote-tmux-upstream
robertnisipeanu Jun 11, 2026
d9cd98f
Merge remote-tracking branch 'origin/main' into remote-tmux-upstream
robertnisipeanu Jun 12, 2026
da3f36a
Merge remote-tracking branch 'origin/main' into remote-tmux-upstream
robertnisipeanu Jun 12, 2026
1cf21d7
Merge origin/main into remote-tmux-upstream: port mirror split routin…
robertnisipeanu Jun 12, 2026
1f4d795
Merge remote-tracking branch 'origin/main' into remote-tmux-upstream
robertnisipeanu Jun 12, 2026
d1e96df
Merge remote-tracking branch 'origin/main' into remote-tmux-upstream
robertnisipeanu Jun 12, 2026
d004a45
Merge remote-tracking branch 'origin/main' into remote-tmux-upstream
robertnisipeanu Jun 12, 2026
1ee7da5
Merge remote-tracking branch 'origin/main' into remote-tmux-upstream
robertnisipeanu Jun 12, 2026
f77de2f
Merge remote-tracking branch 'origin/main' into remote-tmux-upstream
robertnisipeanu Jun 13, 2026
1d822ca
Merge remote-tracking branch 'origin/main' into remote-tmux-upstream
robertnisipeanu Jun 13, 2026
b323980
Merge remote-tracking branch 'origin/main' into remote-tmux-upstream
robertnisipeanu Jun 13, 2026
41e543e
Merge remote-tracking branch 'origin/main' into remote-tmux-upstream
robertnisipeanu Jun 13, 2026
cce58d8
Merge remote-tracking branch 'origin/main' into remote-tmux-upstream
robertnisipeanu Jun 13, 2026
edfb57d
Merge remote-tracking branch 'origin/main' into pr-5553-remote-tmux-hq
azooz2003-bit Jun 13, 2026
a0a8492
Add remote tmux control name regression tests
azooz2003-bit Jun 13, 2026
d32d290
Harden remote tmux mirror state changes
azooz2003-bit Jun 13, 2026
1a232f5
Merge remote-tracking branch 'origin/main' into remote-tmux-upstream
robertnisipeanu Jun 13, 2026
88fce0b
Fix remote tmux control stream backpressure
azooz2003-bit Jun 13, 2026
7f742df
Fix remote tmux mirror snapshot and seeding
azooz2003-bit Jun 13, 2026
aa1adba
Merge remote-tracking branch 'origin/main' into pr-5553-remote-tmux-hq
azooz2003-bit Jun 13, 2026
44a9419
Merge remote-tracking branch 'pr-fork/remote-tmux-upstream' into pr-5…
azooz2003-bit Jun 13, 2026
bcb3387
Fix remote tmux quit and paste routing
azooz2003-bit Jun 13, 2026
0bb1f16
Restore terminal cwd inheritance
azooz2003-bit Jun 14, 2026
2ba604d
Harden remote tmux attach and output buffering
azooz2003-bit Jun 14, 2026
ede2397
Fix remote tmux reconnect auth and paste guarding
azooz2003-bit Jun 14, 2026
c0a146f
Bound remote tmux parser and folder lookups
azooz2003-bit Jun 14, 2026
4edc81a
Reject remote tmux split print before routing
azooz2003-bit Jun 14, 2026
500d77e
Veto remote tmux batch close on route failure
azooz2003-bit Jun 14, 2026
c0cdce3
Scope remote tmux dedicated window ownership
azooz2003-bit Jun 14, 2026
8cc2d68
Fix remote tmux auth and capabilities
azooz2003-bit Jun 14, 2026
80bf6ed
Propagate remote tmux split send failures
azooz2003-bit Jun 14, 2026
e680864
Merge origin/main into remote tmux PR
azooz2003-bit Jun 14, 2026
0a56674
Add remote tmux initial topology regression test
azooz2003-bit Jun 14, 2026
168033f
Seed remote tmux topology after attach
azooz2003-bit Jun 14, 2026
f0bc81b
Tighten remote tmux policy cleanup
azooz2003-bit Jun 14, 2026
01704d1
Avoid off-main folder icon resolution
azooz2003-bit Jun 14, 2026
5fe2555
Merge origin/main into remote tmux PR
azooz2003-bit Jun 14, 2026
dd169e3
Add remote tmux pane pruning regression test
azooz2003-bit Jun 14, 2026
6ab052d
Prune remote tmux pane state on layout changes
azooz2003-bit Jun 14, 2026
6cb00ba
Gate remote tmux docs to translated locales
azooz2003-bit Jun 14, 2026
4d83747
Keep remote tmux control file within budget
azooz2003-bit Jun 14, 2026
1e02fd4
Close remote tmux pipe writer on writer queue
azooz2003-bit Jun 14, 2026
646d211
Merge remote-tracking branch 'origin/main' into pr-5553-remote-tmux-hq
azooz2003-bit Jun 14, 2026
503aed2
Fix double-free crash on manual-I/O surface resize (display-scale cha…
robertnisipeanu Jun 14, 2026
3f18017
Tighten render_now->refresh comment to the load-bearing constraints
robertnisipeanu Jun 14, 2026
da43a20
Merge remote-tracking branch 'origin/main' into remote-tmux-upstream
robertnisipeanu Jun 14, 2026
85c16b4
Merge remote-tracking branch 'origin/main' into remote-tmux-upstream
robertnisipeanu Jun 14, 2026
5f227e4
Merge origin/main into remote-tmux-upstream
robertnisipeanu Jun 15, 2026
c690dc7
Mark remote tmux onResize closure @Sendable to satisfy warning budget
azooz2003-bit Jun 15, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 20 additions & 17 deletions .github/swift-file-length-budget.tsv
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
# cmux-owned Swift file length budget.
# Format: max_lines<TAB>relative path
# Reduce counts as files shrink. CI fails if tracked files exceed this budget.
34202 CLI/cmux.swift
17778 Sources/AppDelegate.swift
16674 Sources/ContentView.swift
14785 Sources/TerminalController.swift
34469 CLI/cmux.swift
17892 Sources/AppDelegate.swift
16696 Sources/ContentView.swift
14822 Sources/TerminalController.swift
13358 Sources/Panels/BrowserPanel.swift
12361 Sources/Workspace.swift
12093 Sources/GhosttyTerminalView.swift
12998 Sources/Workspace.swift
12124 Sources/GhosttyTerminalView.swift
12046 cmuxTests/AppDelegateShortcutRoutingTests.swift
9331 cmuxTests/CLINotifyProcessIntegrationRegressionTests.swift
7925 Sources/Panels/BrowserPanelView.swift
7355 cmuxTests/WorkspaceUnitTests.swift
7221 cmuxTests/WorkspaceRemoteConnectionTests.swift
6317 cmuxTests/SessionPersistenceTests.swift
6299 cmuxTests/GhosttyConfigTests.swift
6156 Sources/TabManager.swift
6153 CLI/cmux_open.swift
6116 Sources/TabManager.swift
6074 Sources/TextBoxInput.swift
5925 cmuxTests/TerminalAndGhosttyTests.swift
5526 cmuxTests/BrowserConfigTests.swift
Expand Down Expand Up @@ -53,17 +53,18 @@
1860 cmuxTests/NotificationAndMenuBarTests.swift
1794 Sources/SessionIndexStore.swift
1748 Sources/WindowDragHandleView.swift
1724 cmuxTests/TerminalControllerSocketSecurityTests.swift
1695 cmuxTests/WorkspacePullRequestSidebarTests.swift
1677 cmuxUITests/BrowserPaneNavigationKeybindUITests.swift
1652 cmuxTests/CMUXCLIErrorOutputRegressionTests.swift
1574 cmuxTests/MarkdownPanelTests.swift
1560 cmuxTests/TextBoxMentionCompletionTests.swift
1547 cmuxTests/TerminalControllerSocketSecurityTests.swift
1512 cmuxTests/RestorableAgentSessionIndexTests.swift
1497 cmuxTests/OmnibarAndToolsTests.swift
1496 cmuxUITests/MultiWindowNotificationsUITests.swift
1446 Sources/FileExplorerStore.swift
1426 Sources/VaultAgentProcessScanner.swift
1412 Sources/RemoteTmuxControlConnection.swift
1384 cmuxTests/KeyboardShortcutSettingsFileStoreStartupTests.swift
1380 cmuxUITests/MenuKeyEquivalentRoutingUITests.swift
1373 cmuxTests/AppDelegateIssue2907RoutingTests.swift
Expand All @@ -83,6 +84,7 @@
1107 Sources/AppDelegate+CmuxSSHURL.swift
1093 cmuxUITests/BonsplitTabDragUITests.swift
1087 Packages/CmuxCommandPalette/Sources/CmuxCommandPalette/Search/CommandPaletteFuzzyMatcher.swift
1038 Sources/RemoteTmuxController.swift
1021 cmuxUITests/TerminalCmdClickUITests.swift
1006 cmuxTests/CmuxSSHURLRequestTests.swift
1000 cmuxTests/CmuxTopSnapshotScopeTests.swift
Expand All @@ -94,9 +96,9 @@
926 Sources/DockPanelView.swift
920 Sources/CommandPalette/CommandPaletteSettingsToggle.swift
918 cmuxTests/WorkspaceGroupTests.swift
912 Sources/WorkspaceContentView.swift
905 Sources/CmuxSSHURLRequest.swift
901 Packages/CmuxSettingsUI/Sources/CmuxSettingsUI/Sections/AppSection.swift
892 Sources/WorkspaceContentView.swift
878 Sources/Panels/TerminalPanel.swift
868 Sources/Panels/BrowserScreenshotSnapshotter.swift
859 Packages/CmuxControlSocket/Sources/CmuxControlSocket/Coordinator/Workspace/ControlCommandCoordinator+Workspace.swift
Expand All @@ -105,7 +107,7 @@
841 Sources/Panels/MarkdownWebRenderer.swift
830 Sources/TaskManagerTypes.swift
810 Packages/CmuxSwiftRender/Tests/CmuxSwiftRenderTests/SwiftViewInterpreterTests.swift
Comment thread
robertnisipeanu marked this conversation as resolved.
787 Sources/ClosedItemHistory.swift
797 Sources/ClosedItemHistory.swift
779 cmuxUITests/BrowserOmnibarSuggestionsUITests.swift
774 cmuxUITests/BrowserFixtureInteractionUITests.swift
773 Sources/MainWindowFocusController.swift
Expand All @@ -115,13 +117,13 @@
754 Sources/TerminalController+ControlWorkspaceContext.swift
753 cmuxTests/RestorableAgentHookProviderResumeTests.swift
752 cmuxUITests/CloseWorkspaceCmdDUITests.swift
749 Packages/CmuxTerminal/Sources/CmuxTerminal/Surface/TerminalSurface+Input.swift
746 Sources/App/MenuBarExtraController.swift
738 Packages/CMUXProjectModel/Sources/CMUXProjectModel/XcodeProjectAdapter.swift
736 Packages/CmuxAuthRuntime/Sources/CmuxAuthRuntime/Coordinator/AuthCoordinator.swift
726 cmuxTests/CLICodexHookTimeoutRegressionTests.swift
725 Sources/RightSidebarPanelView.swift
716 Sources/TaskManagerSnapshot.swift
715 Packages/CmuxTerminal/Sources/CmuxTerminal/Surface/TerminalSurface+Input.swift
715 Sources/AppleScriptSupport.swift
710 Sources/TerminalSSHSessionDetector.swift
707 CLI/CMUXCLI+AgentHookDefinitions.swift
Expand All @@ -139,25 +141,27 @@
677 Packages/CmuxRemoteSession/Sources/CmuxRemoteSession/Session/RemoteSessionCoordinator+Bootstrap.swift
668 cmuxTests/FeedCoordinatorTests.swift
655 Packages/CmuxRemoteSession/Sources/CmuxRemoteSession/Session/RemoteSessionCoordinator.swift
655 Packages/CmuxTerminal/Sources/CmuxTerminal/Surface/TerminalSurface+RuntimeLifecycle.swift
654 Packages/CmuxSettingsUI/Sources/CmuxSettingsUI/Sections/KeyboardShortcutsSection.swift
650 Sources/Panels/MarkdownRemoteImageLoader.swift
649 Sources/CmuxTopSnapshot.swift
641 cmuxTests/CommandPaletteNucleoFFITests.swift
637 Packages/CmuxTerminal/Sources/CmuxTerminal/Surface/TerminalSurface+RuntimeLifecycle.swift
636 Sources/TerminalController+ControlPaneContext.swift
630 Packages/CmuxSettings/Sources/CmuxSettings/Values/ShortcutWhenClause.swift
621 cmuxTests/FinderFileDropRegressionTests.swift
621 cmuxUITests/RightSidebarChromeHeightUITests.swift
620 cmuxTests/TerminalNotificationQueueTests.swift
615 cmuxTests/RemoteTmuxControlParserTests.swift
614 Sources/PortScanner.swift
614 cmuxTests/SessionIndexViewTests.swift
611 Sources/TerminalController+ControlPaneContext.swift
608 Packages/CmuxWorkspaces/Sources/CmuxWorkspaces/Coordinators/WorkspaceGroupCoordinator.swift
605 Sources/SettingsNavigation.swift
604 Packages/CmuxCommandPalette/Tests/CmuxCommandPaletteTests/CommandPaletteNucleoFFITests.swift
599 Packages/CMUXAgentLaunch/Sources/CMUXAgentLaunch/AgentLaunchSanitizerPrimaryPolicies.swift
596 cmuxTests/CmuxEventBusTests.swift
594 Sources/SessionIndexModels.swift
594 cmuxTests/PortalTabDragRoutingTests.swift
590 Packages/CmuxTerminal/Sources/CmuxTerminal/Surface/TerminalSurface.swift
588 cmuxTests/CommandPaletteShortcutCustomizationTests.swift
586 Packages/CmuxRemoteSession/Sources/CmuxRemoteSession/Session/RemoteSessionCoordinator+PortScan.swift
586 Sources/JSONCParser.swift
Expand All @@ -176,13 +180,13 @@
551 Packages/CmuxSettingsUI/Sources/CmuxSettingsUI/Sections/BrowserSection.swift
547 Packages/CmuxSocketControl/Sources/CmuxSocketControl/SocketControlSettings.swift
547 Sources/Windowing/WindowGlassEffect.swift
545 Packages/CmuxTerminal/Sources/CmuxTerminal/Surface/TerminalSurface.swift
541 Packages/CmuxControlSocket/Sources/CmuxControlSocket/Coordinator/Pane/ControlCommandCoordinator+Pane.swift
540 Packages/CmuxWorkspaces/Sources/CmuxWorkspaces/Coordinators/WorkspaceReorderCoordinator.swift
539 CLI/CMUXCLI+Themes.swift
539 CLI/CodexTeamsApprovalBridge.swift
538 Packages/CmuxRemoteWorkspace/Sources/CmuxRemoteWorkspace/PTYBridge/RemotePTYBridgeSession.swift
536 cmuxTests/CmuxConfigContextMenuTests.swift
533 Packages/CmuxControlSocket/Sources/CmuxControlSocket/Coordinator/Pane/ControlCommandCoordinator+Pane.swift
534 Packages/CmuxControlSocket/Sources/CmuxControlSocket/Coordinator/Surface/ControlCommandCoordinator+Surface.swift
531 Packages/CmuxSettingsUI/Sources/CmuxSettingsUI/Scene/SettingsWindowScene.swift
531 Sources/App/WorkspaceRuntimeSettings.swift
530 Packages/CmuxMobileTerminal/Sources/CmuxMobileTerminal/GhosttyRuntime.swift
Expand All @@ -195,12 +199,11 @@
520 cmuxTests/MainWindowVisibilityControllerTests.swift
519 Packages/CmuxSwiftRender/Tests/CmuxSwiftRenderTests/Corpus/stress-two-column-cockpit-sidebar.swift
519 Sources/CmuxConfigExecutor.swift
518 Packages/CmuxControlSocket/Sources/CmuxControlSocket/Coordinator/Surface/ControlCommandCoordinator+Surface.swift
518 Packages/CmuxMobileShellUI/Sources/CmuxMobileShellUI/WorkspaceDetailView.swift
518 Packages/CmuxSwiftRender/Tests/CmuxSwiftRenderTests/Corpus/stress-git-review-queue-command-deck.swift
517 Sources/TerminalImageTransfer.swift
514 Packages/CmuxSwiftRender/Sources/CmuxSwiftRender/ExpressionEvaluator.swift
514 cmuxUITests/UpdatePillUITests.swift
510 Sources/TerminalImageTransfer.swift
509 Packages/CMUXAgentLaunch/Sources/CMUXAgentLaunch/AgentLaunchSanitizerAdditionalPolicies.swift
507 Sources/TerminalControllerTopSupport.swift
506 Sources/App/MainWindowVisibilityController.swift
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -61,3 +61,6 @@ tmp-*/

# Local dogfood scratch (screenshots, recordings) — never commit
artifacts/

# tmux verbose debug logs (tmux -v) that land in the cwd
tmux-*.log
Loading
Loading