Commit graph

200 commits

Author SHA1 Message Date
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
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
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
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
877f862b4a Fix NotificationDockBadgeTests rebase merge syntax 2026-02-25 14:53:09 -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
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
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
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
b84c0539c9 browser: reuse top-right pane for sidebar PR opens 2026-02-24 21:36:10 -08:00
Lawrence Chen
7517454ea2 Always open custom settings window from palette path 2026-02-24 21:28:03 -08:00
Lawrence Chen
84d07931a5 sidebar: dedupe PR rows by normalized URL identity 2026-02-24 21:24:49 -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
109ce43c70 settings: control sidebar PR link open target 2026-02-24 20:59:06 -08:00
Austin Wang
566eda80b5
Merge pull request #461 from manaflow-ai/cmux/image-download-flaky
Fix flaky browser context-menu downloads and target selection
2026-02-24 20:56:08 -08:00
Lawrence Chen
023d7759ac sidebar: render pull requests as per-line rows 2026-02-24 20:55:44 -08:00
austinpower1258
7610e586b7 Browser download: keep logs debug-only and harden menu fallback 2026-02-24 20:53:12 -08:00
Lawrence Chen
f617032ad5 Require launch tag for cmux DEV 2026-02-24 20:39:55 -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
d255942f92 wip 2026-02-24 14:36:13 -08:00
austinpower1258
ab1368828b Fix browser Return/Enter routing and add enter trace logs 2026-02-24 14:36:13 -08:00