Commit graph

1616 commits

Author SHA1 Message Date
Lawrence Chen
b1e2d1cb19
Pass display harness manifest path into UI test 2026-03-18 01:40:04 -07:00
Lawrence Chen
387742a5a0
Update all remaining cmux.dev references to cmux.com (#1721)
- Swift app: feedback API endpoint, docs URLs, changelog URL, CLI help
- PostHog proxy: r.cmux.dev -> r.cmux.com
- All 20 README files: docs and blog links
- Homebrew cask: homepage URL in update-homebrew workflow

Co-authored-by: Lawrence Chen <lawrencecchen@users.noreply.github.com>
2026-03-18 01:32:12 -07:00
Lawrence Chen
798c1fbc42
Fix laggy terminal sync during sidebar drags (#1598)
* Fix sidebar drag terminal resize lag

* Add display resolution churn regression

* Prelaunch display churn helper in e2e workflow

* Use manifest handoff for display churn UI test

* Fix e2e display churn harness startup

* Resolve display churn UI test socket path

* Use marker-based socket discovery in display UI test

* Add failing sidebar drag portal regression tests

* Fix sidebar drag terminal portal resize lag

* Add failing scoped resize regression tests

* Fix terminal portal resize scheduling lag

* Add failing zsh resize prompt regression test

* Fix zsh resize prompt duplication

* Fix Sequoia sidebar resize regression

* Guard display-resolution CI runner

* Run display-resolution CI on WarpBuild

* Allow backgrounded display regression app launch

* Launch display regression app directly

* Launch display regression app via NSWorkspace

* Load display regression launch env from manifest

* Write display regression manifest in runner temp dir

* Write display regression manifest in shared tmp

* Write display regression manifest in repo scratch dir

* Launch display regression app with explicit env

* Avoid xcodebuild broken pipe in compat CI

* Launch display regression via XCUIApplication

* Harden display regression socket readiness

* Trust display socket diagnostics path

* Replace display socket probe with render diagnostics

* Write display churn start marker atomically

* Move display churn harness out of /tmp

---------

Co-authored-by: Lawrence Chen <lawrencecchen@users.noreply.github.com>
2026-03-18 01:28:11 -07:00
Austin Wang
629b63dfb8
fix: repair NIGHTLY Sparkle quarantine metadata (#1703)
* test: add quarantine regression coverage

* fix: repair Sparkle quarantine metadata for nightly updates

* fix: repair extracted Sparkle app on extraction callbacks
2026-03-18 01:23:53 -07:00
Lawrence Chen
ac83af62ae
Split 16k-line mega test file, bump CI timeout, stream xcodebuild output (#1717)
CmuxWebViewKeyEquivalentTests.swift grew to 15,907 lines with 100+ test classes.
Swift compiles per-file, so this single file serialized all type-checking onto one
compiler process, pushing CI past the 20-minute timeout after core-file changes.

Split into 10 domain-based files (1k-3k lines each) so Xcode can compile them in
parallel. Also bump timeout-minutes from 20 to 30 for headroom, stream xcodebuild
output via tee instead of capturing to a variable (makes CI logs debuggable), and
add 5 test files that were missing from the pbxproj Sources build phase.

Co-authored-by: Lawrence Chen <lawrencecchen@users.noreply.github.com>
2026-03-18 01:17:25 -07:00
Lawrence Chen
33d21ea19e
feat(web): redirect cmux.dev to cmux.com with 301s for SEO (#1716)
Redirect cmux.dev to cmux.com with 301s for SEO
2026-03-18 01:16:43 -07:00
Austin Wang
55cb5c6763
Fix sidebar workspace PR status display and false positives (#1636)
* test(sidebar): add failing PR checks regressions

* fix(sidebar): show workspace PR status

* refactor(sidebar): restore PR icon style

* refactor(sidebar): simplify PR check labels

* test(sidebar): cover focused workspace PR selection

* fix(sidebar): scope workspace PRs to current branch

* test(sidebar): cover stale PR after branch change

* fix(sidebar): clear stale PRs on branch changes

* test(sidebar): cover workspace PR false positives

* fix(sidebar): stop false-positive workspace PR badges

* test(cmuxTests): remove duplicate sidebar PR regressions
2026-03-17 22:57:12 -07:00
Austin Wang
bdd95902f2
Restore last-surface close preference toggle (#1679)
* test: cover last-surface close preference regression

* fix: restore last-surface close preference
2026-03-17 22:36:32 -07:00
Lawrence Chen
b64fb301c1
fix(terminal): execute Return after Korean IME commit (#1671)
* test(terminal): cover Return after Korean IME commit

* fix(terminal): execute Return after Korean IME commit

---------

Co-authored-by: Lawrence Chen <lawrencecchen@users.noreply.github.com>
2026-03-17 22:07:45 -07:00
Lawrence Chen
58de044f4f
Rename "Import From Browser" to "Import Browser Data" (#1672)
Co-authored-by: Lawrence Chen <lawrencecchen@users.noreply.github.com>
2026-03-17 22:07:19 -07:00
Lawrence Chen
3bca43d6b1
fix(command-palette): address follow-up review comments
PR: https://github.com/manaflow-ai/cmux/pull/1644
2026-03-17 18:59:13 -07:00
BillionToken
1fabe9f33c
fix(terminal): prevent doomscroll when reviewing scrollback (#1616)
The synchronizeScrollView() method was constantly resetting the scroll
position to match the terminal's scrollbar state, even when the user had
manually scrolled up to review scrollback. This caused the 'doomscroll'
bug where panes would fight the user's scroll position.

- Add userScrolledAwayFromBottom flag to track scroll intent
- Only auto-scroll when at bottom or when scrollbar indicates following
- Reset flag when user scrolls back to bottom
- Add 5-point threshold to tolerate minor float drift

Fixes #1577

Co-authored-by: BillionClaw <267901332+BillionClaw@users.noreply.github.com>
2026-03-17 17:52:59 -07:00
BillionToken
c0fd15cdd7
fix(terminal): prevent redundant focus events causing Powerlevel10k redraws (#1579)
Add lastFocusState tracking to TerminalSurface to avoid sending duplicate
focus events to the terminal surface. This fixes double prompt / extra redraw
issues when using zsh with Powerlevel10k and switching workspaces.

Fixes #1566

Co-authored-by: BillionClaw <267901332+BillionClaw@users.noreply.github.com>
2026-03-17 17:52:56 -07:00
Lawrence Chen
02286245ab
Move Japanese to second position in README language selectors (#1647)
Co-authored-by: Lawrence Chen <lawrencecchen@users.noreply.github.com>
2026-03-17 17:51:39 -07:00
Andrey Maltsev
c62956607d
feat: add web-browser entitlement for iCloud Passwords autofill (#1518)
Add the `com.apple.developer.web-browser` entitlement to enable native
password autofill from iCloud Passwords and third-party Credential
Provider Extensions (e.g. 1Password) in the browser panel's WKWebView.

This entitlement tells macOS that cmux functions as a web browser,
allowing the system to provide credential autofill suggestions on
password fields for any domain — the same mechanism Safari uses.

Note: this is a restricted entitlement that requires Apple's approval
via a provisioning profile. Until approved, the entitlement will be
present in the binary but inactive at runtime.
2026-03-17 17:50:16 -07:00
ddotz
6cca8c9264
Fix dark mode icon not applied in automatic mode (#1510)
ensureApplicationIcon() was explicitly loading and setting the light icon
via NSImage(named: NSImage.applicationIconName) even in automatic mode,
overriding the asset catalog's appearance-based icon selection.

Delegate to AppIconSettings.applyIcon() which correctly sets
applicationIconImage = nil for automatic mode, allowing macOS 15+ to
select the dark variant from the asset catalog automatically.

Fixes #1509
Related: #688
2026-03-17 17:50:13 -07:00
fvallenilla
aefb7767f6
fix: suppress socat stdout in _cmux_send to prevent "OK" leak (#1619)
The socat path in _cmux_send did not redirect stdout/stderr, causing
the cmux socket's "OK" response to print to the user's terminal on
every shell integration event (new tab, cd, precmd, preexec).

The ncat path avoids this via --send-only, and the nc path already
redirects to /dev/null. This aligns the socat path with both.

Fixes #1618

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 17:50:11 -07:00
FredrikSeidl
dfbd238e47
Add 'rc' and 'remote-control' to command passthrough (#1539) 2026-03-17 17:50:08 -07:00
Austin Wang
59901034bf
Merge pull request #1627 from manaflow-ai/issue-1623-devtools-x-close-state
Fix browser devtools X-close persistence
2026-03-17 17:48:01 -07:00
Austin Wang
392e98126a
Fix Option+Delete word delete on AZERTY (#1640) 2026-03-17 17:45:30 -07:00
Spark
4fcd7595c0 Add Vietnamese README 2026-03-17 17:42:15 -07:00
austinpower1258
48426bf1ec Tighten browser devtools close timing 2026-03-17 17:37:01 -07:00
Austin Wang
a42e6663c4
Fix layout follow-up spin loop (#1633) 2026-03-17 17:17:24 -07:00
Lawrence Chen
4162eccf66 Keep command palette empty state stable while typing 2026-03-17 17:15:33 -07:00
Lawrence Chen
018510d4ef Add failing command palette blink regression test 2026-03-17 17:15:33 -07:00
Lawrence Chen
f6d4229ec7 Show all open-in commands in the palette 2026-03-17 17:15:33 -07:00
Lawrence Chen
a22bfa9709 Fix command palette open target availability 2026-03-17 17:15:33 -07:00
Lawrence Chen
bb6dacf20d Add regression coverage for app lookup open targets 2026-03-17 17:15:33 -07:00
austinpower1258
8397b32067 Debounce browser devtools visibility-loss sync 2026-03-17 17:13:51 -07:00
Lawrence Chen
93d2245a97
fix(web): exclude PostHog proxy from i18n middleware (#1626)
* fix(web): exclude PostHog proxy path from i18n middleware

The next-intl middleware added in cf75da8f intercepts /cmuxterm/* requests
(the PostHog reverse proxy), causing analytics to break since March 12.
Add cmuxterm to the negative lookahead so proxy requests bypass i18n.

* refactor(web): rename middleware.ts to proxy.ts for Next.js 16

Next.js 16 renamed middleware.ts to proxy.ts. Migrate to the new
convention since we're on Next.js 16.1.6.

* feat(web): migrate PostHog to managed reverse proxy at r.cmux.dev

Replace the Next.js rewrites-based proxy (/cmuxterm -> us.i.posthog.com)
with PostHog's managed reverse proxy at r.cmux.dev. This removes the
rewrites from next.config.ts entirely and eliminates the proxy.ts
matcher conflict that caused the analytics regression.

---------

Co-authored-by: Lawrence Chen <lawrencecchen@users.noreply.github.com>
2026-03-17 17:02:42 -07:00
Lawrence Chen
43d1fd419e
Merge pull request #1582 from manaflow-ai/task-browser-import-followups
fix: browser import profile follow-up regressions
2026-03-17 16:49:31 -07:00
Lawrence Chen
f5d610e3ea
Merge remote-tracking branch 'origin/main' into task-browser-import-followups
# Conflicts:
#	Sources/Workspace.swift
2026-03-17 16:49:16 -07:00
Lawrence Chen
7f589bf15b
Merge pull request #1593 from manaflow-ai/task-browser-import-minimal-ui
Tighten browser import sheet UI
2026-03-17 16:46:25 -07:00
Lawrence Chen
c4742a4ba1
Refine browser import minimal UI 2026-03-17 16:46:10 -07:00
austinpower1258
79fade5add Sync browser devtools preference on surface focus loss 2026-03-17 16:32:59 -07:00
austinpower1258
fabcb06891 Fix browser devtools X-close persistence 2026-03-17 16:28:19 -07:00
leon leung
66f8f8b022
fix(Workspace): fix EXC_BAD_ACCESS caused by over-releasing ghostty font (#1496)
The ghostty_surface_quicklook_font function returns an unretained pointer to a font object. Using takeRetainedValue() transferred non-existent ownership to ARC, leading to an over-release and an eventual EXC_BAD_ACCESS (SIGSEGV) crash when creating new surfaces (like cmd+t or cmd+d) on certain systems such as Intel Macs.

Replaced takeRetainedValue() with takeUnretainedValue() to correctly manage memory.

Co-authored-by: LeonLeung <leonleung.tech@gmail.com>
2026-03-17 15:16:12 -07:00
Lawrence Chen
9b11a41de8
Merge pull request #1601 from manaflow-ai/task-bonsplit-empty-tab-bar-double-click-new-tab
Open a new terminal tab from empty tab bar double-click
2026-03-17 15:08:01 -07:00
Lawrence Chen
60d005b793
Update bonsplit after merge 2026-03-17 15:05:10 -07:00
Lawrence Chen
9484371d5f
Update bonsplit for empty tab bar double clicks 2026-03-17 05:01:38 -07:00
Lawrence Chen
d369778f7f
Scroll settings hint to import controls 2026-03-17 04:48:21 -07:00
Lawrence Chen
8d8fadbb27
Add hidden CLI command for live terminal debugging (#1599)
* Add hidden terminal debug CLI command

* Expand orphan terminal debug metadata

* Remove stray CLIProcessRunner test target wiring

* Tighten debug terminal diagnostics handling

---------

Co-authored-by: Lawrence Chen <lawrencecchen@users.noreply.github.com>
2026-03-17 04:03:49 -07:00
Lawrence Chen
c5ae8dc9eb
Defer browser import dialog presentation 2026-03-17 03:23:18 -07:00
Lawrence Chen
9807cb087b
Stabilize browser import hint UI tests 2026-03-17 03:14:23 -07:00
Austin Wang
e15825826f
fix: restore Sparkle automatic update checks (#1597) 2026-03-17 03:07:38 -07:00
Lawrence Chen
f585461868
Merge pull request #1596 from manaflow-ai/task-ssh-followup-review-fixes
Fix SSH remote CLI wrapper and proxy follow-ups
2026-03-17 03:02:02 -07:00
Lawrence Chen
b9de0f0446
Add browser import hint debug variants 2026-03-17 03:01:50 -07:00
Lawrence Chen
d8a968c623
Address SSH follow-up PR review comments 2026-03-17 03:01:02 -07:00
Lawrence Chen
6856c52765
Merge remote-tracking branch 'origin/main' into task-ssh-followup-review-fixes 2026-03-17 03:00:11 -07:00
Lawrence Chen
f97716939a
Add browser import UI test launch hook 2026-03-17 02:29:39 -07:00