Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
163 commits
Select commit Hold shift + click to select a range
b8ab959
Direct-host workspace terminals
lawrencecchen Mar 28, 2026
8788973
Inline split host and remove Bonsplit package
lawrencecchen Mar 30, 2026
4184e08
Stabilize headless UI test activation
lawrencecchen Mar 30, 2026
d50cddb
Replace Bonsplit with native WorkspaceSplit host
lawrencecchen Mar 30, 2026
e36675d
Fix terminal split-host resize and mount lag
lawrencecchen Mar 30, 2026
ac3a81c
Revert "Fix terminal split-host resize and mount lag"
lawrencecchen Mar 30, 2026
31acdff
Reapply "Fix terminal split-host resize and mount lag"
lawrencecchen Mar 30, 2026
8747006
Reapply terminal host sync and add debug logging
lawrencecchen Mar 30, 2026
5c7be71
Hide translucent pane host flashes during surface startup
lawrencecchen Mar 30, 2026
79d27f2
Mount workspace terminals directly in AppKit split host
lawrencecchen Mar 30, 2026
dde174b
Make AppKit pane host own workspace terminal visibility
lawrencecchen Mar 30, 2026
f8e7854
Remove dead workspace terminal wrapper path
lawrencecchen Mar 31, 2026
ce619e3
Merge remote-tracking branch 'origin/main' into issue-2289-appkit-spl…
lawrencecchen Mar 31, 2026
0298d4b
Add AppKit split-host debug instrumentation and close-path fixes
lawrencecchen Apr 13, 2026
957c786
Merge branch 'main' of https://github.com/manaflow-ai/cmux into issue…
lawrencecchen Apr 13, 2026
571ee80
Fix Bonsplit merge fallout for split-host branch
lawrencecchen Apr 13, 2026
9160a5b
Remove SwiftTerm paths and consolidate native split drop overlays
lawrencecchen Apr 13, 2026
78a9f59
Merge branch 'main' of https://github.com/manaflow-ai/cmux into issue…
lawrencecchen Apr 13, 2026
d3675da
Make pane drop overlays update immediately during drag
lawrencecchen Apr 13, 2026
4949aba
Animate drop-zone transitions while keeping drag updates stable
lawrencecchen Apr 13, 2026
fc1208c
Move workspace layout host to AppKit
lawrencecchen Apr 15, 2026
48958d6
Simplify workspace layout state and command flow
lawrencecchen Apr 15, 2026
520b848
Checkpoint workspace layout refactor state
lawrencecchen Apr 16, 2026
bbe8e72
Remove workspace handoff and mount cache scaffolding
lawrencecchen Apr 16, 2026
1a7eaeb
Consolidate workspace surface state and render snapshots
lawrencecchen Apr 16, 2026
5357e48
Finish workspace surface state ownership cut
lawrencecchen Apr 16, 2026
9bc2308
Simplify workspace native content rendering
lawrencecchen Apr 16, 2026
c88459d
Unify workspace pane content mounting
lawrencecchen Apr 16, 2026
578437d
Clean workspace refactor audit leftovers
lawrencecchen Apr 16, 2026
f07cebb
Make workspace the sole render snapshot owner
lawrencecchen Apr 16, 2026
8a4bd0a
Make workspace layout delegation main actor isolated
lawrencecchen Apr 16, 2026
df333c2
Remove last workspace empty-pane builder seam
lawrencecchen Apr 16, 2026
b610e5d
Move workspace snapshot types out of native host
lawrencecchen Apr 16, 2026
2d35004
Simplify workspace tab drag state
lawrencecchen Apr 16, 2026
9cde885
Collapse workspace pane snapshot contract
lawrencecchen Apr 16, 2026
db3a7b9
Decouple empty pane placeholder actions
lawrencecchen Apr 16, 2026
f554f6e
Move pane file-drop ownership into Workspace
lawrencecchen Apr 16, 2026
9e3f86c
Retain pane hosts through split collapse
lawrencecchen Apr 16, 2026
3d36ec2
Collapse workspace layout controller ownership
lawrencecchen Apr 16, 2026
89ebda9
Make workspace layout tree value state
lawrencecchen Apr 16, 2026
3f8b284
Finalize workspace shell ownership cut
lawrencecchen Apr 16, 2026
3ac4041
Replace workspace host protocol with interaction handlers
lawrencecchen Apr 16, 2026
16dd3d0
Move workspace presentation mode into render snapshot
lawrencecchen Apr 16, 2026
1d6bbf0
Resolve tab context menu state at workspace boundary
lawrencecchen Apr 16, 2026
c342f12
Fix context menu shortcut type alias
lawrencecchen Apr 16, 2026
b28c33e
Refactor workspace terminal presentation flow to edge-triggered state…
lawrencecchen Apr 16, 2026
a4fee93
merge: resolve conflicts with main
lawrencecchen Apr 16, 2026
187863e
fix: address review feedback and restore compatibility
lawrencecchen Apr 16, 2026
2bbf885
chore: close remaining workspace split review follow-ups
lawrencecchen Apr 16, 2026
3560eb6
fix: resolve remaining review compatibility gaps
lawrencecchen Apr 16, 2026
0c1aaa8
docs: record latest 7-step verification run
lawrencecchen Apr 16, 2026
5896a64
docs: record cmux-macmini 7-step verification
lawrencecchen Apr 16, 2026
5a80b41
workspace: retain pane content in viewport canvas
lawrencecchen Apr 17, 2026
5911084
test: cover retained browser and markdown hosts
lawrencecchen Apr 17, 2026
f337746
terminal: centralize viewport lifecycle ownership
lawrencecchen Apr 17, 2026
50421a7
terminal: extract viewport lifecycle state machine
lawrencecchen Apr 17, 2026
a2855be
workspace: move visible terminals into pane host
lawrencecchen Apr 18, 2026
3cbc1f7
workspace: fix browser pane teardown and tab chrome
lawrencecchen Apr 18, 2026
a76c143
workspace: stabilize browser pane hosting and drop overlays
lawrencecchen Apr 20, 2026
a864d25
workspace: suppress no-op tab reorder drops
lawrencecchen Apr 20, 2026
4d93bb6
workspace: match pane hints and clear drop overlay
lawrencecchen Apr 20, 2026
0890d3d
browser: unify web content focus restoration
lawrencecchen Apr 20, 2026
c3ae7e9
workspace: validate split targets and clean find probes
lawrencecchen Apr 20, 2026
92db572
browser: restore web input focus after find
lawrencecchen Apr 21, 2026
1712cfd
browser: centralize find focus cleanup
lawrencecchen Apr 21, 2026
33d9043
test: cover repeated browser find focus restore
lawrencecchen Apr 21, 2026
07557d6
test: cover direct browser find focus restore
lawrencecchen Apr 21, 2026
6056374
browser: capture page focus before find
lawrencecchen Apr 21, 2026
b8c7bcb
browser: coordinate find focus restore
lawrencecchen Apr 22, 2026
893c3a1
browser: restore find focus through webview responder
lawrencecchen Apr 22, 2026
a36f7de
browser: restore page focus after find
lawrencecchen Apr 22, 2026
e9c6301
browser: restore web content responder after find
lawrencecchen Apr 22, 2026
949850a
browser: defer find restore until overlay teardown
lawrencecchen Apr 22, 2026
febad36
browser: route restored text input through keyDown
lawrencecchen Apr 22, 2026
c2ef835
browser: route restored web text at window layer
lawrencecchen Apr 22, 2026
e9f2277
browser: coordinate find dismiss focus restore
lawrencecchen Apr 22, 2026
417e4e9
browser: restore find focus after overlay teardown
lawrencecchen Apr 22, 2026
a7ce913
browser: restore native text dispatch after find
lawrencecchen Apr 22, 2026
bb033ce
browser: keep restored web input on native key path
lawrencecchen Apr 22, 2026
393d819
browser: reactivate page focus after find
lawrencecchen Apr 22, 2026
eadebf6
browser: preserve page focus after find
lawrencecchen Apr 22, 2026
3315c61
browser: repair text input after find restore
lawrencecchen Apr 22, 2026
208dcc8
browser: restore active input after find escape
lawrencecchen Apr 22, 2026
97b45af
browser: bridge restored page text focus
lawrencecchen Apr 22, 2026
cf13d93
browser: make find focus handoff deterministic
lawrencecchen Apr 22, 2026
b96ad62
browser: route restored web input before dispatch
lawrencecchen Apr 22, 2026
500ba9b
browser: centralize find focus routing
lawrencecchen Apr 22, 2026
4bb1df9
browser: avoid consuming failed find focus repair
lawrencecchen Apr 22, 2026
9b31e90
browser: preserve web input focus from find
lawrencecchen Apr 22, 2026
790d587
browser: route find focus through AppKit text paths
lawrencecchen Apr 22, 2026
6a871bc
browser: harden find focus restoration
lawrencecchen Apr 22, 2026
07774c4
browser: preserve web input focus through find
lawrencecchen Apr 22, 2026
6f8f66f
browser: keep native fallback for find focus restore
lawrencecchen Apr 22, 2026
2c11278
browser: capture page focus before webkit find preflight
lawrencecchen Apr 22, 2026
0aa8a14
browser: keep restorable web input focus in page world
lawrencecchen Apr 22, 2026
472799f
browser: route restored input repair through webkit first
lawrencecchen Apr 22, 2026
c26547e
browser: capture find focus at app command boundary
lawrencecchen Apr 22, 2026
b8cbda7
browser: wait for fixture navigation before focused input setup
lawrencecchen Apr 22, 2026
9887fa9
browser: prevent restored input duplicate typing
lawrencecchen Apr 22, 2026
d916a2f
browser: centralize restored web focus preflight
lawrencecchen Apr 22, 2026
7e7d2fa
Remove browser focus JS restore path
lawrencecchen Apr 23, 2026
78e36c6
Add browser shortcut routing regressions
lawrencecchen Apr 23, 2026
4951925
Fix native browser shortcut routing
lawrencecchen Apr 23, 2026
2327706
Record omnibar focus after native handoff
lawrencecchen Apr 23, 2026
5e996b0
Simplify browser focus UI test fixture
lawrencecchen Apr 23, 2026
603661f
Use WKWebView wrapper for browser focus restore
lawrencecchen Apr 23, 2026
d0b98c7
Blur omnibar on escape after Cmd-L focus
lawrencecchen Apr 23, 2026
7b48f9c
fix: address split host review feedback
lawrencecchen Apr 23, 2026
05a98c2
test: cover browser find dismiss edit teardown
lawrencecchen Apr 23, 2026
b3ab4a2
fix: wait for find field edit teardown before browser refocus
lawrencecchen Apr 23, 2026
9d1212a
fix: restore browser focus without swallowing space
lawrencecchen Apr 23, 2026
8451786
test: cover browser space key-equivalent bypass
lawrencecchen Apr 23, 2026
dde0d4d
fix: keep browser space on keyDown path
lawrencecchen Apr 23, 2026
cb50ac5
test: stress browser find focus round trip for space input
lawrencecchen Apr 25, 2026
29840d9
test: cover google-like browser space focus stress
lawrencecchen Apr 25, 2026
a456d3f
fix: coordinate browser and terminal focus handoff
lawrencecchen Apr 27, 2026
e15a73d
merge: bring focus branch up to main
lawrencecchen Apr 27, 2026
17a80b6
fix: enforce workspace split tab policies
lawrencecchen Apr 27, 2026
00681a9
fix: allow preview builds without stack auth env
lawrencecchen Apr 27, 2026
ddd0c3d
fix: keep tab chrome helpers available in release
lawrencecchen Apr 27, 2026
221b5d6
fix: clear stale release module cache in ci
lawrencecchen Apr 27, 2026
c4a4c8e
refactor: centralize browser pane focus ownership
lawrencecchen Apr 27, 2026
7eee1cd
fix: repair browser focus before key input
lawrencecchen Apr 27, 2026
e77a3b4
fix: refresh browser wrapper focus before space
lawrencecchen Apr 27, 2026
b67e0a3
test: cover browser wrapper key repair
lawrencecchen Apr 27, 2026
91a8319
fix: avoid browser wrapper key repair
lawrencecchen Apr 27, 2026
43a07aa
test: cover browser content focus promotion
lawrencecchen Apr 27, 2026
27a32d1
fix: promote browser content focus from wrapper
lawrencecchen Apr 27, 2026
037a557
test: cover browser plain text key routing
lawrencecchen Apr 28, 2026
e8f9744
fix: bypass browser plain text key equivalents
lawrencecchen Apr 28, 2026
46e4bcf
test: cover browser space delivery after focus churn
lawrencecchen Apr 28, 2026
afc31af
test: navigate browser space fixture after split
lawrencecchen Apr 28, 2026
15aadf5
test: load browser space fixture from file URL
lawrencecchen Apr 28, 2026
f9200c2
test: serve browser space fixture over localhost
lawrencecchen Apr 28, 2026
dbc2325
test: avoid activation before browser space fixture
lawrencecchen Apr 28, 2026
2658ec5
test: avoid network in browser space regression
lawrencecchen Apr 28, 2026
7ecef4d
test: cover browser wrapper focus space routing
lawrencecchen Apr 28, 2026
cdb4223
fix: keep browser wrapper as focus owner
lawrencecchen Apr 28, 2026
6e56bb1
refactor: package workspace split layout
lawrencecchen Apr 28, 2026
cc3b0ed
merge: sync main into appkit split host
lawrencecchen Apr 28, 2026
3401204
fix: repair main window shortcut routing after merge
lawrencecchen Apr 28, 2026
2eb7f1a
Merge remote-tracking branch 'origin/main' into issue-2289-focus-rest…
lawrencecchen Apr 28, 2026
43f3160
fix: clear warning budget after main merge
lawrencecchen Apr 28, 2026
d28d622
fix: keep browser change handlers type-checkable
lawrencecchen Apr 28, 2026
f75f266
fix: split browser panel view modifiers
lawrencecchen Apr 28, 2026
027c067
fix: remove remaining warning budget regressions
lawrencecchen Apr 28, 2026
7b93d67
Merge remote-tracking branch 'origin/main' into issue-2289-focus-rest…
lawrencecchen Apr 28, 2026
89650ed
chore: refresh file length budget after main merge
lawrencecchen Apr 28, 2026
9419c41
fix: gate feed text editor lab in release builds
lawrencecchen Apr 28, 2026
e7905d7
fix: skip unsupported titlebar accessory windows
lawrencecchen Apr 28, 2026
c068eeb
fix: stabilize tab manager compatibility tests
lawrencecchen Apr 28, 2026
4a86a80
fix: respect workspace split visibility policies
lawrencecchen Apr 28, 2026
7604593
fix: guard workspace split host ownership
lawrencecchen Apr 28, 2026
da04466
Merge remote-tracking branch 'origin/main' into issue-2289-focus-rest…
lawrencecchen Apr 28, 2026
933cd6e
test: cover focus owner and minimal sidebar regressions
lawrencecchen Apr 29, 2026
1e7a177
fix: respect focus owner for terminal retries
lawrencecchen Apr 29, 2026
cd1b174
refactor: keep focus regression coverage under file budget
lawrencecchen Apr 29, 2026
29bb682
test: cover deferred terminal focus reassertion
lawrencecchen Apr 29, 2026
f11e491
fix: gate terminal focus reassertion by focus owner
lawrencecchen Apr 29, 2026
8fff245
test: cover right sidebar responder drift
lawrencecchen Apr 29, 2026
e04b46b
fix: respect sidebar responder during terminal refocus
lawrencecchen Apr 29, 2026
f3229f0
test: cover sidebar terminal responder steals
lawrencecchen Apr 29, 2026
0e9178f
fix: block terminal focus steals from sidebar
lawrencecchen Apr 29, 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
96 changes: 50 additions & 46 deletions .github/swift-file-length-budget.tsv
Original file line number Diff line number Diff line change
Expand Up @@ -2,74 +2,78 @@
# Format: max_lines<TAB>relative path
# Reduce counts as files shrink. CI fails if tracked files exceed this budget.
17989 CLI/cmux.swift
16364 Sources/TerminalController.swift
15762 Sources/ContentView.swift
13748 Sources/AppDelegate.swift
13702 Sources/Workspace.swift
13208 Sources/GhosttyTerminalView.swift
10549 Sources/Panels/BrowserPanel.swift
8419 Sources/cmuxApp.swift
7490 Sources/TabManager.swift
6811 Sources/Panels/BrowserPanelView.swift
5139 cmuxTests/AppDelegateShortcutRoutingTests.swift
4641 cmuxTests/WorkspaceUnitTests.swift
4531 cmuxTests/TerminalAndGhosttyTests.swift
4503 cmuxTests/GhosttyConfigTests.swift
4178 Sources/BrowserWindowPortal.swift
3818 Sources/Feed/FeedPanelView.swift
3660 cmuxTests/BrowserConfigTests.swift
3128 cmuxTests/BrowserPanelTests.swift
3126 cmuxTests/WorkspaceRemoteConnectionTests.swift
2850 Sources/CmuxConfig.swift
2675 Sources/KeyboardShortcutSettings.swift
2491 Sources/Panels/CmuxWebView.swift
2292 cmuxTests/TabManagerUnitTests.swift
2153 cmuxTests/SessionPersistenceTests.swift
2110 Sources/TerminalWindowPortal.swift
2026 cmuxTests/CJKIMEInputTests.swift
1949 Sources/FileExplorerView.swift
1949 Sources/Panels/BrowserWebAuthnSupport.swift
1879 Sources/SessionIndexStore.swift
1735 Sources/SessionIndexView.swift
1692 cmuxTests/CmuxConfigTests.swift
1677 cmuxTests/ShortcutAndCommandPaletteTests.swift
1676 Sources/KeyboardShortcutSettingsFileStore.swift
1563 cmuxTests/WindowAndDragTests.swift
1517 cmuxUITests/BrowserPaneNavigationKeybindUITests.swift
1502 Sources/Update/UpdateTitlebarAccessory.swift
1423 Sources/TerminalNotificationStore.swift
16092 Sources/TerminalController.swift
15634 Sources/ContentView.swift
14192 Sources/Workspace.swift
13603 Sources/AppDelegate.swift
13147 Sources/GhosttyTerminalView.swift
11446 Sources/Panels/BrowserPanel.swift
8555 Sources/cmuxApp.swift
7172 Sources/TabManager.swift
7070 Sources/Panels/BrowserPanelView.swift
6521 cmuxTests/WorkspaceUnitTests.swift
4969 cmuxTests/AppDelegateShortcutRoutingTests.swift
4616 cmuxTests/BrowserPanelTests.swift
4276 cmuxTests/TerminalAndGhosttyTests.swift
4273 cmuxTests/GhosttyConfigTests.swift
4156 Sources/BrowserWindowPortal.swift
3925 cmuxTests/BrowserConfigTests.swift
3817 Sources/Feed/FeedPanelView.swift
2999 cmuxTests/WorkspaceRemoteConnectionTests.swift
2490 Sources/Panels/CmuxWebView.swift
2195 cmuxTests/TabManagerUnitTests.swift
2086 cmuxUITests/BrowserPaneNavigationKeybindUITests.swift
2054 Sources/TerminalWindowPortal.swift
1948 Sources/FileExplorerView.swift
1921 Sources/Panels/BrowserWebAuthnSupport.swift
1878 Sources/SessionIndexStore.swift
1842 Sources/KeyboardShortcutSettingsFileStore.swift
1831 Sources/KeyboardShortcutSettings.swift
1734 Sources/SessionIndexView.swift
1658 cmuxTests/CJKIMEInputTests.swift
1519 Sources/Update/UpdateTitlebarAccessory.swift
1460 cmuxTests/ShortcutAndCommandPaletteTests.swift
1429 Sources/TerminalNotificationStore.swift
1377 cmuxTests/WindowAndDragTests.swift
1365 Sources/Feed/FeedButtonStyleDebugWindowController.swift
1292 cmuxUITests/SidebarHelpMenuUITests.swift
1255 cmuxTests/NotificationAndMenuBarTests.swift
1254 cmuxTests/NotificationAndMenuBarTests.swift
1215 cmuxUITests/MenuKeyEquivalentRoutingUITests.swift
1187 cmuxUITests/MultiWindowNotificationsUITests.swift
1165 Sources/Auth/AuthManager.swift
1001 cmuxTests/SidebarOrderingTests.swift
1118 cmuxTests/SessionPersistenceTests.swift
1000 cmuxTests/SidebarOrderingTests.swift
991 Sources/FileExplorerStore.swift
987 Sources/CommandPalette/CommandPaletteSearch.swift
976 cmuxTests/OmnibarAndToolsTests.swift
977 cmuxTests/OmnibarAndToolsTests.swift
908 cmuxTests/CommandPaletteSearchEngineTests.swift
840 Sources/WorkspaceContentView.swift
834 Sources/RestorableAgentSession.swift
829 cmuxUITests/TerminalCmdClickUITests.swift
807 Sources/TerminalSSHSessionDetector.swift
785 Sources/App/TerminalDirectoryOpenSupport.swift
761 Sources/GhosttyConfig.swift
752 cmuxUITests/CloseWorkspaceCmdDUITests.swift
748 Sources/WorkspaceContentView.swift
733 Packages/CMUXWorkspaceSplit/Sources/CMUXWorkspaceSplit/WorkspaceLayoutNativeTabButtonView.swift
722 Packages/CMUXWorkspaceSplit/Sources/CMUXWorkspaceSplit/WorkspaceLayoutController.swift
719 cmuxUITests/BrowserOmnibarSuggestionsUITests.swift
717 Sources/GhosttyConfig.swift
715 Sources/App/ShortcutRoutingSupport.swift
714 Sources/AppleScriptSupport.swift
708 Sources/App/MenuBarExtraController.swift
707 cmuxTests/WorkspaceContentViewVisibilityTests.swift
692 cmuxTests/CmuxConfigTests.swift
683 Sources/SocketControlSettings.swift
664 Sources/App/ShortcutRoutingSupport.swift
643 Sources/Panels/BrowserPopupWindowController.swift
640 Sources/Panels/BrowserPopupWindowController.swift
632 Sources/MainWindowFocusController.swift
617 cmuxUITests/WorkspaceSplitTabDragUITests.swift
616 Sources/CmuxConfig.swift
613 Sources/PortScanner.swift
603 cmuxUITests/BonsplitTabDragUITests.swift
595 Packages/CMUXWorkspaceSplit/Sources/CMUXWorkspaceSplit/WorkspaceLayoutNativeTabBarView.swift
586 Sources/Update/UpdateViewModel.swift
582 cmuxTests/TerminalControllerSocketSecurityTests.swift
573 Sources/Feed/FeedTextEditorDebugWindowController.swift
536 Sources/SessionPersistence.swift
535 Sources/Feed/FeedCoordinator.swift
529 Sources/Find/BrowserSearchOverlay.swift
510 Sources/Update/UpdatePopoverView.swift
505 cmuxUITests/DisplayResolutionRegressionUITests.swift
504 Sources/WindowDragHandleView.swift
503 Sources/WindowDragHandleView.swift
7 changes: 7 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -565,6 +565,13 @@ jobs:
spm-release-
spm-

- name: Clear stale Release module caches
run: |
set -euo pipefail
rm -rf build-universal/ModuleCache.noindex
rm -rf build-universal/Build/Intermediates.noindex/SwiftExplicitPrecompiledModules
find build-universal/Build/Intermediates.noindex -name '*Bridging-header.pch' -delete 2>/dev/null || true

- name: Build universal app (Release)
run: |
set -euo pipefail
Expand Down
Loading