Commit graph

149 commits

Author SHA1 Message Date
Lawrence Chen
49e93e4b4c
Add command palette entries to install/uninstall cmux CLI in PATH (#626)
Adds CmuxCLIPathInstaller with symlink management at /usr/local/bin/cmux,
exposed via Cmd+Shift+P command palette (VS Code style). Install entry
shown when CLI is not in PATH, uninstall entry shown when it is.
Falls back to osascript admin privilege escalation when /usr/local/bin
is not user-writable. Uses attributesOfItem instead of fileExists to
correctly handle dangling symlinks from relocated app bundles.

Closes https://github.com/manaflow-ai/cmux/issues/618
2026-02-27 01:53:13 -08:00
Lawrence Chen
978341b228
Add zoom/maximize focused pane in splits (#634)
Cmd+Shift+Enter toggles zoom on the focused pane, expanding it to fill
the workspace. Splitting or creating new tabs auto-unzooms. Zoom state
shown as icon in sidebar tab. Includes bonsplit zoom toggle support.

Closes https://github.com/manaflow-ai/cmux/issues/136
2026-02-27 01:50:56 -08:00
Austin Wang
a326514bf6
Fix frozen blank launch state caused by session restore race condition (#399) (#565)
The app sometimes launched to a frozen blank state with an empty sidebar
and no terminal loaded. This was caused by restoreSessionSnapshot emitting
intermediate @Published states (empty tabs, nil selectedTabId) that left
SwiftUI's mountedWorkspaceIds empty.

Two fixes:
1. Make restoreSessionSnapshot atomic: build the new tab list locally
   before assigning to @Published properties in a single batch, so
   SwiftUI observers never see an intermediate empty state.
2. Add a startup recovery timer that detects and fixes broken state
   (empty tabs, invalid selection, unmounted workspaces) 500ms after
   the view appears, with Sentry breadcrumbs for diagnostics.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 22:10:21 -08:00
austinpower1258
cdad265f1d Fix selected-workspace status contrast 2026-02-26 15:12:10 -08:00
Lawrence Chen
780f959a48
Fix equalize splits to recursively set all dividers to 0.5 (#575)
The equalize splits command was a no-op that always returned false.
Implement it by recursively walking the bonsplit tree and setting
every split divider position to 0.5. Also register the command in
the command palette with a "workspace has splits" precondition so
it only appears when there are multiple panes.

Adds a regression test that creates a nested split layout, skews
divider positions, equalizes, and verifies all dividers are at 0.5.

Fixes https://github.com/manaflow-ai/cmux/issues/571
2026-02-26 14:27:18 -08:00
Lawrence Chen
fab2b8611d
Switch fullscreen shortcut to Cmd+Ctrl+F (#530) 2026-02-25 19:42:21 -08:00
Lawrence Chen
4fe6006007 Cache sidebar drop UTTypes and hint width metrics
Fixes CMUXTERM-MACOS-GA

Fixes CMUXTERM-MACOS-JG
2026-02-25 16:39:09 -08:00
Lawrence Chen
7b7745caa0 avoid command palette overlay subview scans on each update 2026-02-25 15:49:25 -08:00
Lawrence Chen
0977f30c77 perf: reduce tab sidebar path formatting hot-path work 2026-02-25 15:26:57 -08:00
Lawrence Chen
62fffc7221 Use command palette flow for workspace rename shortcut 2026-02-25 05:12:49 -08:00
Lawrence Chen
7201dabdfd
Merge pull request #337 from adinvadim/feature/sidebar-pr-metadata
feat: show linked pull request metadata in sidebar
2026-02-24 21:44:27 -08:00
Lawrence Chen
e69b88a19c
Merge pull request #463 from manaflow-ai/task-open-settings-via-cmdshiftp
Fix Open Settings from Command Palette
2026-02-24 21:33:56 -08:00
Lawrence Chen
d0ce351856 Route palette settings through Cmd+, add debug logs 2026-02-24 21:15:01 -08:00
Lawrence Chen
afeec2d324 sidebar: open PR links in right split for target workspace 2026-02-24 21:14:57 -08:00
Lawrence Chen
cc06fb84e3 Fix command palette Open Settings action routing 2026-02-24 21:07:37 -08:00
Lawrence Chen
a5711425df sidebar: add command palette action for workspace PR links 2026-02-24 21:03:38 -08:00
Lawrence Chen
109ce43c70 settings: control sidebar PR link open target 2026-02-24 20:59:06 -08:00
Lawrence Chen
023d7759ac sidebar: render pull requests as per-line rows 2026-02-24 20:55:44 -08:00
Lawrence Chen
f28eb00b31 Merge remote-tracking branch 'origin/main' into feature/sidebar-pr-metadata
# Conflicts:
#	Sources/ContentView.swift
#	Sources/Workspace.swift
2026-02-24 20:49:29 -08:00
Lawrence Chen
7d0e259b36 style(sidebar): reduce metadata icon sizing 2026-02-24 20:44:15 -08:00
Lawrence Chen
513e9aa607 feat(sidebar): add markdown blocks, provider labels, and fine-grained toggles 2026-02-24 20:38:07 -08:00
Lawrence Chen
db86d3e301 Broaden CLI socket telemetry and add restart listener command 2026-02-24 20:38:05 -08:00
Lawrence Chen
f2ecb4877b feat(sidebar): add generic metadata rows and commands 2026-02-24 20:19:38 -08:00
Lawrence Chen
2877531ea2
Auto-focus omnibar when focusing blank browser surfaces (#448)
* Auto-focus omnibar when focusing blank browser surfaces

* Fix browser omnibar autofocus across pane and palette paths

* Fix Cmd+P switcher omnibar autofocus timing
2026-02-24 16:00:03 -08:00
Lawrence Chen
7ee3831eb5
Merge pull request #317 from manaflow-ai/issue-143-session-persistence
Implement session persistence pass 1 (windows/workspaces/scrollback)
2026-02-24 15:25:46 -08:00
Lawrence Chen
e8477131c1 Merge origin/main into issue-143-session-persistence 2026-02-24 14:41:27 -08:00
austinpower1258
7a75988c5b Fix double-click titlebar zoom not working on browser panel side
The browser portal's hit-test was intercepting clicks in the titlebar
region, preventing double-click-to-zoom from reaching the window.

Three fixes:
- BrowserWindowPortal: pass through hits landing in the native titlebar
- WindowDragHandleView: only let titlebar-overlay views block capture,
  not underlay browser content; respect AppleActionOnDoubleClick pref
- ContentView: use shared performStandardTitlebarDoubleClick() helper

Closes https://github.com/manaflow-ai/cmux/issues/422

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 14:35:10 -08:00
Lawrence Chen
710ed9b068 Fix Cmd+P/Cmd+Shift+P window routing (#413)
* Fix command palette shortcuts to stay window-scoped

* Fix cross-window command palette typing focus lock
2026-02-24 14:35:10 -08:00
austinpower1258
04eee73a22 Fix stuck titlebar drag suppression 2026-02-24 14:35:10 -08:00
Lawrence Chen
5c584dd7f7 Block tab drags across cmux app instances 2026-02-24 14:35:09 -08:00
Lawrence Chen
ce681bac67 Implement cross-window tab and workspace move UI 2026-02-24 14:35:09 -08:00
Lawrence Chen
7b59954a88 Fix command palette caret color in light mode 2026-02-24 14:35:09 -08:00
Lawrence Chen
e0e66a69cc Fix light-mode typing indicator contrast in active sidebar 2026-02-24 14:35:09 -08:00
Lawrence Chen
9953fa58d9 Fix light-mode sidebar typing indicator contrast 2026-02-24 14:35:09 -08:00
Lawrence Chen
92d558cb95 Refine command palette focus restore and shortcut gating 2026-02-24 14:35:09 -08:00
Lawrence Chen
aa222dbc0d Sidebar double-click appends workspace to end 2026-02-24 14:32:56 -08:00
Lawrence Chen
653c59a90b
Merge pull request #437 from manaflow-ai/task-sidebar-selected-workspace-colors
Sidebar: set selected workspace colors and white text
2026-02-24 14:24:46 -08:00
Lawrence Chen
aeda5f827d Adopt custom blue accent across active UI states 2026-02-24 14:22:58 -08:00
austinpower1258
e76de71f3e Fix sidebar titlebar drag and double-click passthrough 2026-02-24 14:18:58 -08:00
Lawrence Chen
2338760186 Set selected sidebar workspace colors and white text 2026-02-24 14:12:15 -08:00
austinpower1258
b0d86a4f0d Fix double-click titlebar zoom not working on browser panel side
The browser portal's hit-test was intercepting clicks in the titlebar
region, preventing double-click-to-zoom from reaching the window.

Three fixes:
- BrowserWindowPortal: pass through hits landing in the native titlebar
- WindowDragHandleView: only let titlebar-overlay views block capture,
  not underlay browser content; respect AppleActionOnDoubleClick pref
- ContentView: use shared performStandardTitlebarDoubleClick() helper

Closes https://github.com/manaflow-ai/cmux/issues/422

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 20:45:25 -08:00
Lawrence Chen
3c1650d3e0
Fix Cmd+P/Cmd+Shift+P window routing (#413)
* Fix command palette shortcuts to stay window-scoped

* Fix cross-window command palette typing focus lock
2026-02-23 20:08:21 -08:00
austinpower1258
e5448ac48a Fix stuck titlebar drag suppression 2026-02-23 20:00:47 -08:00
Lawrence Chen
2c2190b231 Block tab drags across cmux app instances 2026-02-23 19:48:54 -08:00
Lawrence Chen
b57087f796 Implement cross-window tab and workspace move UI 2026-02-23 19:48:54 -08:00
Lawrence Chen
89756bad65 Fix command palette caret color in light mode 2026-02-23 19:28:48 -08:00
Lawrence Chen
666ef75d1e Fix light-mode typing indicator contrast in active sidebar 2026-02-23 19:22:39 -08:00
Lawrence Chen
ea33e3adbd Merge remote-tracking branch 'origin/main' into pr-317-session-persistence
# Conflicts:
#	Sources/AppDelegate.swift
2026-02-23 19:20:56 -08:00
Lawrence Chen
0dee878268 Fix light-mode sidebar typing indicator contrast 2026-02-23 19:14:32 -08:00
Lawrence Chen
011abb62c9 Refine command palette focus restore and shortcut gating 2026-02-23 19:10:02 -08:00