Commit graph

512 commits

Author SHA1 Message Date
austinpower1258
cdad265f1d Fix selected-workspace status contrast 2026-02-26 15:12:10 -08:00
Lawrence Chen
163f8572e4
Replace keychain password storage with file-based storage (#576)
Moves socket control password from the macOS login keychain to a
plain file at ~/Library/Application Support/cmux/socket-control-password.
This eliminates the system keychain prompt that interrupts users on
first launch or after keychain changes.

- Directory created with 0700, file written with 0600 permissions
- One-time migration copies existing keychain password to the file,
  deletes the keychain entry, and records a migration version in
  UserDefaults so it runs only once
- CLI SocketPasswordResolver also reads from the file path
- Security framework import is now conditional (#if canImport)
- Adds SocketControlPasswordStoreTests covering round-trip, env
  priority, path resolution, and migration behavior

Fixes https://github.com/manaflow-ai/cmux/issues/541
2026-02-26 14:29:12 -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
b1846aaec4
Fix notification bell hover crash by conditionally tracking hover (#574)
Only enable .onHover tracking on TitlebarControlButton when the style
uses hoverBackground (e.g. pillGroup). Styles without a visible hover
background no longer install the tracking area, preventing the crash
on notification-bell hover.

Also switches the notifications anchor from .overlay to .background so
AppKit hit-testing no longer conflicts with the popover anchor view.

Includes regression test for the hover-tracking policy.

Fixes https://github.com/manaflow-ai/cmux/issues/537
2026-02-26 14:26:28 -08:00
Lawrence Chen
fab2b8611d
Switch fullscreen shortcut to Cmd+Ctrl+F (#530) 2026-02-25 19:42:21 -08:00
Lawrence Chen
f502e6afc9
Honor focus-follows-mouse on terminal hover (#519) 2026-02-25 18:43:41 -08:00
Lawrence Chen
58af38a28d
Add cmux_hourly_active event for hourly retention cohorts (#514)
cmux_daily_active deduplicates by UTC date, so PostHog hourly retention
cohorts show 0s. Add a companion cmux_hourly_active event that fires at
most once per UTC hour, deduped via UserDefaults. No flush() after
hourly events (let them batch). The existing 30-minute timer provides
adequate hour-boundary coverage without changes.
2026-02-25 18:33:57 -08:00
Lawrence Chen
ede4e2fc99 Add Cmd+Enter shortcut to toggle fullscreen 2026-02-25 18:26:29 -08:00
Austin Wang
d517be8ddd
Merge pull request #512 from manaflow-ai/fix/issue-483-terminal-portal-recovery
Fix terminal panes going blank after repeated tab drag/reorder
2026-02-25 18:12:39 -08:00
Lawrence Chen
f38bc3b775
Move LaunchServices bundle registration off main thread (#513)
Fixes CMUXTERM-MACOS-DS
2026-02-25 18:02:00 -08:00
Lawrence Chen
930a6b5bc9
Use sheet modal for insecure HTTP warning prompt (#511)
Fixes CMUXTERM-MACOS-DD
2026-02-25 18:00:45 -08:00
austinpower1258
de8c5120fa Fix terminal pane render loss during tab drag reorder 2026-02-25 17:54:28 -08:00
Austin Wang
501bb43d04
Merge pull request #496 from manaflow-ai/cmux/branch-inactive-computer-issue
Fix sidebar git branch updates after sleep/wake
2026-02-25 17:21:48 -08:00
Austin Wang
93a9e1a3b6
Merge pull request #495 from manaflow-ai/cmux/fix-chinese-ime-active
Allow Cmd shortcuts during IME composition
2026-02-25 17:21:08 -08:00
Lawrence Chen
c3c89a80b9 Treat nil drag-handle hit-test events as passive
Refs CMUXTERM-MACOS-AF

Refs CMUXTERM-MACOS-A8
2026-02-25 17:13:56 -08:00
Lawrence Chen
f82dfa34e9 Avoid drag-handle key exclusivity conflicts
Fixes CMUXTERM-MACOS-CV
2026-02-25 16:56:54 -08:00
Lawrence Chen
47056f4074 Throttle titlebar accessory sizing churn
Fixes CMUXTERM-MACOS-F1
2026-02-25 16:47:38 -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
381b0c1323 Reduce unchanged autosave snapshot churn
Fixes CMUXTERM-MACOS-RF

Fixes CMUXTERM-MACOS-H4
2026-02-25 16:28:09 -08:00
Lawrence Chen
0483526c39
Merge pull request #502 from manaflow-ai/cmux/crash-issues
Crash requests
2026-02-25 16:18:05 -08:00
Lawrence Chen
baee7c6e85 Harden Sentry crash guards and reduce noisy events 2026-02-25 16:13:31 -08:00
austinpower1258
e8d0fd68ba ok 2026-02-25 16:10:58 -08:00
Lawrence Chen
8956d1ee7e reuse portal installation target during anchor synchronizes 2026-02-25 16:06:41 -08:00
Lawrence Chen
9140371fcd guard devtools restore from unsafe first-responder churn 2026-02-25 15:59:49 -08:00
Lawrence Chen
7b7745caa0 avoid command palette overlay subview scans on each update 2026-02-25 15:49:25 -08:00
austinpower1258
213bda5e14 Fix sidebar git branch recovery after sleep/wake (#494) 2026-02-25 15:36:51 -08:00
austinpower1258
516ace4feb Allow Cmd shortcuts during IME composition
Cmd-based keyboard shortcuts (Cmd+T, Cmd+Shift+L, etc.) were blocked
while an IME had active composition (marked text), affecting Chinese
Pinyin, Japanese, Korean, and all other input methods. Since Cmd is a
system modifier never consumed by IME input sequences, exempt
Cmd-modified events from the three IME bypass points in the key event
chain.

Fixes #440

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 15:34:26 -08:00
Lawrence Chen
f51848f666
Merge pull request #493 from manaflow-ai/feat-sentry-ft-sidebar-path-cache
perf: reduce sidebar tab-item hot-path recomputation
2026-02-25 15:30:52 -08:00
Lawrence Chen
1b01782d55
Merge pull request #492 from manaflow-ai/feat-sentry-a7-ghostty-config-cache
Cache Ghostty config loads to avoid render-path file IO
2026-02-25 15:30:50 -08:00
Lawrence Chen
0977f30c77 perf: reduce tab sidebar path formatting hot-path work 2026-02-25 15:26:57 -08:00
Lawrence Chen
4b98feb263 Cache Ghostty config loads on UI path
Fixes CMUXTERM-MACOS-A7
2026-02-25 15:15:34 -08:00
Lawrence Chen
4890fe95fe Move autosave persistence off main thread
Fixes CMUXTERM-MACOS-EA

Fixes CMUXTERM-MACOS-DT
2026-02-25 15:03:26 -08:00
Lawrence Chen
bda77f1673 Optimize notification lookups with indexed store paths 2026-02-25 14:51:43 -08:00
Lawrence Chen
564ba3ae2e Use non-blocking notification settings prompt 2026-02-25 14:04:29 -08:00
Lawrence Chen
575b53526c Restore safe webview resolution for field-editor responders 2026-02-25 13:39:22 -08:00
Lawrence Chen
0164c870f1 Harden Sentry guards for 0.61.0 issue burst 2026-02-25 13:24:20 -08:00
Robert Wittams
0f5a501467
Forward middle-click to Ghostty for X11-style selection paste (#369)
Add otherMouseDown/otherMouseUp handlers to GhosttyNSView that forward
middle-click (button 2) to Ghostty as GHOSTTY_MOUSE_MIDDLE. Ghostty
handles this as paste_from_selection, reading from the selection
clipboard. Non-middle buttons are passed to super for default handling.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 13:15:54 -08:00
Lawrence Chen
ea57786e18 Fix drag-handle top-hit reentrancy guard scoping 2026-02-25 13:10:28 -08:00
Lawrence Chen
62fffc7221 Use command palette flow for workspace rename shortcut 2026-02-25 05:12:49 -08:00
Lawrence Chen
2202b6081c Restore Cmd+Shift+R as rename workspace 2026-02-25 05:07:26 -08:00
Lawrence Chen
86bbe4c727 Alias Cmd+Shift+R to rename-tab command palette 2026-02-25 04:30:44 -08:00
Lawrence Chen
eaabaad3d3
Add Cmd+Option+W to close other pane tabs with confirmation (#475)
* Add Cmd+Option+W close-other-tabs confirmation

* Match close-other-tabs shortcut to Cmd+Option+T
2026-02-25 03:54:51 -08:00
Lawrence Chen
a46ee2ba3b
Merge pull request #431 from yasunogithub/fix-ime-ctrl-fastpath
Fix IME key events blocked by ctrl fast path
2026-02-25 02:46:12 -08:00
Lawrence Chen
a0d2bca45d Use typed unretained cast for input source ID 2026-02-25 02:45:55 -08:00
Lawrence Chen
4d2fd30143 Fix UI test hang: bypass launch guard for XCUITest apps
XCUITest launches the app as a separate process that doesn't inherit
XCTest env vars (XCTestConfigurationFilePath, etc.), so
isRunningUnderXCTest() returns false. The app then hits
shouldBlockUntaggedDebugLaunch() and exits with code 64, causing the
test runner to hang waiting for the app to launch.

Fix: detect CMUX_UI_TEST_* env vars set via XCUIApplication.launchEnvironment
and skip the launch guard. Also revert the failed CMUX_TAG ci.yml workaround.
2026-02-24 23:28:34 -08:00
austinpower1258
93a7b9bc45 Add split items and shortcuts to terminal context menu 2026-02-24 22:20:09 -08:00
Austin Wang
3cf1d2501f
Merge pull request #465 from manaflow-ai/cmux/terminal-persist-issue
Fix Cmd+W close for terminal+browser split (issue #464)
2026-02-24 21:59:37 -08:00
austinpower1258
17d8956789 Fix Cmd+W terminal close in terminal+browser split 2026-02-24 21:54:25 -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
yasunogithub
b6c5e3fe9e Fix IME key events blocked by ctrl fast path and missing layout change detection
The ctrl fast path unconditionally returned after calling ghostty_surface_key,
even when it returned false (e.g. ignore keybindings), preventing IMEs from
receiving Ctrl-modified key events. Now falls through to interpretKeyEvents
when the key is not handled.

Also adds keyboard layout change detection around interpretKeyEvents (matching
Ghostty upstream) so that IME-triggered layout switches cause an early return
instead of sending the key to Ghostty.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 14:36:54 +09:00