Commit graph

129 commits

Author SHA1 Message Date
Austin Wang
f72ce07ad5
Merge pull request #585 from manaflow-ai/fix/issue-552-trackpad-scroll-not-working
Fix trackpad scrolling in terminal panes
2026-02-27 11:44:51 -08:00
Cheul
8968f787ca
Fix Codex non-empty composer space tap starting transcription in cmux (#540)
* Fix space hold-to-talk by normalizing keyUp event metadata

* Add regression test for synthetic Space key release metadata
2026-02-27 03:42:09 -08:00
Lawrence Chen
dca8992901
Fix use-after-free in ghostty_surface_refresh after sleep/wake (#432) (#619)
Add nil guard in forceRefresh() to prevent dereferencing freed surface
pointer. Split else-if chains in Workspace.swift so
requestBackgroundSurfaceStartIfNeeded() runs if surface is freed during
the refresh call. Add regression test exercising the crash path.
2026-02-27 01:44:02 -08:00
Lawrence Chen
fa6a18c753
Add telemetry opt-out setting (#610)
Adds a "Send anonymous telemetry" toggle in Settings that lets users
disable Sentry crash reporting and PostHog analytics. The setting is
frozen at launch so toggling mid-session shows a restart hint. The hint
correctly clears if the user toggles back to the launch-time value.
2026-02-26 22:02:29 -08:00
austinpower1258
eeb6122e3c Fix terminal pane trackpad scroll routing 2026-02-26 14:43:13 -08:00
austinpower1258
501e893fba Fix use-after-free in ghostty_surface_refresh after wake (#432)
Prevent crash (KERN_INVALID_ADDRESS at ghostty_surface_refresh) during
geometry reconcile after wake-from-sleep by adding proper lifetime
guards for freed surfaces:

- Re-read self.surface before each ghostty C call in forceRefresh()
  instead of using a stale captured local that can outlive the surface
- Nil out self.surface in deinit before scheduling the async free Task,
  so in-flight closures see nil and bail out
- Re-check surface validity in reconcileTerminalGeometryPass() after
  reconcileGeometryNow() which can trigger AppKit layout that frees
  surfaces

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 11:28:24 -08:00
Lawrence Chen
f502e6afc9
Honor focus-follows-mouse on terminal hover (#519) 2026-02-25 18:43:41 -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
austinpower1258
de8c5120fa Fix terminal pane render loss during tab drag reorder 2026-02-25 17:54:28 -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
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
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
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
austinpower1258
93a7b9bc45 Add split items and shortcuts to terminal context menu 2026-02-24 22:20:09 -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
austinpower1258
15647ca4df fix ci/cd 2026-02-24 16:10:37 -08:00
Austin Wang
32b17e8926
Merge pull request #451 from manaflow-ai/cmux/terminal-render-z-order
Fix terminal blanking after full-surface horizontal tab drop
2026-02-24 16:03:41 -08:00
austinpower1258
f33d65f986 Fix terminal blanking after full-surface tab drops 2026-02-24 16:00:00 -08:00
austinpower1258
c01ecc4532 Guard terminal forceRefresh when surface is nil 2026-02-24 15:49:55 -08:00
Lawrence Chen
e8477131c1 Merge origin/main into issue-143-session-persistence 2026-02-24 14:41:27 -08:00
Lawrence Chen
6505f0c504 Fix tab drag blank state and preserve non-custom titles across window drops 2026-02-24 14:36:12 -08:00
Lawrence Chen
6c6f363e4b Guard terminal onFocus from re-entrant focus loops 2026-02-24 14:35:10 -08:00
Lawrence Chen
b0b73e8878 Prevent stale host visibility thrash after tab move 2026-02-24 14:35:09 -08:00
Austin Wang
79034540f9
Merge pull request #439 from manaflow-ai/cmux/terminal-fails-to-load-render-split
Fix terminal render recovery after split topology churn
2026-02-24 14:24:47 -08:00
Lawrence Chen
aeda5f827d Adopt custom blue accent across active UI states 2026-02-24 14:22:58 -08:00
austinpower1258
98cf07ce2a Stabilize terminal render recovery after split topology churn 2026-02-24 14:20:14 -08:00
Lawrence Chen
cd03073240 Fix tab drag blank state and preserve non-custom titles across window drops 2026-02-23 23:57:09 -08:00
Lawrence Chen
fb1802a54d Guard terminal onFocus from re-entrant focus loops 2026-02-23 20:20:55 -08:00
Lawrence Chen
1c3f8458ee Clear stale surface bg override on config changes 2026-02-23 19:54:54 -08:00
Lawrence Chen
66a9435da6 Add background source diagnostics for theme sync 2026-02-23 19:52:01 -08:00
Lawrence Chen
8736421e8c Prevent stale host visibility thrash after tab move 2026-02-23 19:50:09 -08:00
Lawrence Chen
946b0f28e6 Fix theme bg sync on appearance changes 2026-02-23 19:48:55 -08:00
Lawrence Chen
6eeca9c5da Merge remote-tracking branch 'origin/main' into pr-317-session-persistence
# Conflicts:
#	Sources/AppDelegate.swift
#	Sources/cmuxApp.swift
2026-02-23 14:58:16 -08:00
austinpower1258
4bc3da65b6 Fix terminal/web portal overflow during narrow pane resizing 2026-02-23 12:26:05 -08:00
Austin Wang
6598a38fe3
Fix terminal zoom inheritance for new splits/surfaces/workspaces (#384)
* Fix terminal Cmd zoom routing for Ghostty focus descendants (#383)

* Inherit new terminal zoom from last terminal context

Prefer pane-selected terminal as Ghostty config inheritance source when creating splits/new terminals, then focused/fallback terminals. This preserves runtime zoom/font size when opening the next terminal.

* Fix terminal zoom inheritance across split/tab/workspace creation
2026-02-23 11:26:11 -08:00
Lawrence Chen
2426590e91
Fix terminal focus when window loses key (#359)
* Fix terminal blur when window loses key

* Fix shortcut routing across multiple windows

* Fix shortcut window detection when identifiers change
2026-02-23 05:50:10 -08:00
Lawrence Chen
5070b137a4
Fix early Cmd+D then Ctrl+D split startup hang (#364)
* Harden early Ctrl+D child-exit callback routing

* Add Ctrl+D close-path tracing and suppress tiny-frame focus churn

* Suppress hidden-surface onFocus callbacks during portal churn
2026-02-23 05:19:58 -08:00
Lawrence Chen
0c970858ee Fix surface userdata lifetime during async free 2026-02-23 03:23:06 -08:00
Lawrence Chen
cb0efa3edd Fix early split child-exit close race 2026-02-23 02:59:59 -08:00
Lawrence Chen
4fb5da373d
Merge pull request #345 from manaflow-ai/feat-theme-switch-frame-sync
Keep chrome/theme updates in lockstep on theme switch
2026-02-23 02:46:08 -08:00
Lawrence Chen
eb1f0bdd43 Unify theme refresh path across workspace and titlebar 2026-02-23 02:44:28 -08:00
Lawrence Chen
e4379a136c Match terminal flash ring padding to browser 2026-02-23 02:37:48 -08:00
Lawrence Chen
a3f3e20d72 Unify Cmd+Shift+H flash path across panel types 2026-02-23 02:31:22 -08:00
Lawrence Chen
1b954f1d68 Sync theme updates in same frame on theme switch 2026-02-23 01:11:27 -08:00
Lawrence Chen
cd570dbab2 Unify runtime theme reload path and prioritize surface background updates 2026-02-23 01:03:16 -08:00
Lawrence Chen
afba0fb459 Coalesce Ghostty background notifications to latest value 2026-02-23 00:29:16 -08:00
Lawrence Chen
8f68ddb947 Add filesystem logs for theme resolution flow 2026-02-23 00:14:10 -08:00
Lawrence Chen
2428ae5dbd Respect browser link settings in open wrapper 2026-02-22 18:13:14 -08:00
Lawrence Chen
72791f32bc Break terminal find overlay retain cycle 2026-02-22 16:29:35 -08:00