Commit graph

710 commits

Author SHA1 Message Date
Lawrence Chen
2f4c81a96a Merge origin/main into issue-846-vim-indicator 2026-03-09 18:15:50 -07:00
Lawrence Chen
54c6a70c38
Merge pull request #1101 from gonzaloserrano/gsr/sidebar-state-color
Add color field to sidebar_state output
2026-03-09 18:10:41 -07:00
Lawrence Chen
10f85ef8c7
Merge pull request #1017 from atani/fix/cjk-font-fallback
fix: add CJK font fallback to prevent decorative font rendering
2026-03-09 18:10:12 -07:00
Austin Wang
b824147dcb
Fix notification ring dismissal on direct terminal clicks (#1126)
* Add regression test for terminal notification click dismissal

* Dismiss terminal notifications on direct clicks

* Add regression for focused terminal notification ring

* Keep focused terminal notifications unread until click

* Verify direct notification dismiss triggers flash

* Use focus-flash path for direct notification dismiss

* Align notification dismiss flash with ring geometry
2026-03-09 17:55:07 -07:00
Austin Wang
78b901617c
Fix browser panes reloading when switching workspaces (#1136)
* Add workspace browser portal regression test

* Preserve hidden browser portals across workspace switches
2026-03-09 17:54:32 -07:00
Austin Wang
8fa1ca3a4d
Hide browser portal when terminal tab is active (#1130) 2026-03-09 17:24:58 -07:00
Austin Wang
fc8142d61d
Fix pinned workspace notification reordering (#1116)
* test: cover pinned workspace notification reorder

* fix: keep pinned workspace order on notification
2026-03-09 16:05:24 -07:00
Austin Wang
c447bee602
Fix browser pane portal anchor sizing (#1094)
* Fix browser pane webview sizing

* Guard browser portal by pane ownership

* Keep browser portal frame during transient zero geometry

* Guard portal surfaces against duplicate hosts

* Defer terminal surface reflow during tab drags

* Fix browser panel pane ID unit tests
2026-03-09 13:28:05 -07:00
Gonzalo Serrano
3a3a2da6db Add color field to sidebar_state output
Expose workspace customColor in sidebar_state so external
tools can read it without a new API endpoint.
2026-03-09 15:01:02 +01:00
Brian Le
39f95db739
fix(terminal): tighten vim badge updates 2026-03-09 01:56:01 -04:00
Brian Le
d2c58c7707
fix(terminal): cap vim badge width 2026-03-09 01:44:02 -04:00
Brian Le
c3a8c2317f
fix(terminal): address vim badge review notes 2026-03-09 00:53:42 -04:00
Brian Le
ad8c57432c
fix(terminal): keep vim badge overlay passthrough 2026-03-09 00:39:14 -04:00
Brian Le
c62878ed61
fix(terminal): polish vim badge indicator 2026-03-09 00:33:19 -04:00
Brian Le
65bb81079b
feat(terminal): show vim key table badge 2026-03-09 00:07:00 -04:00
atani
cee109bab0 docs: clarify CJK font fallback comment with environment-dependent behavior
The fallback issue is caused by CTFontCollection scoring prioritizing
monospace fonts, not just CTFontCreateForString. The selected decorative
font varies by environment (e.g. AB_appare from Adobe CC, or LingWai).
2026-03-08 23:03:38 +09:00
austinpower1258
52bd8cf16a Keep browser webviews alive during drag reparenting 2026-03-08 03:04:12 -07:00
austinpower1258
a40c5af4b5 Merge branch 'main' of https://github.com/manaflow-ai/cmux into issue-968-browser-blank-after-drag-rearrange 2026-03-08 01:50:28 -08:00
cmux
7fc71fc7cc Merge remote-tracking branch 'origin/main' into fix-popover-arrow 2026-03-07 18:52:16 -08:00
cmux
0080ee791b Tighten help popover sizing 2026-03-07 18:51:46 -08:00
austinpower1258
58f1f34466 Fix browser reattach after pane reparenting 2026-03-07 18:49:42 -08:00
austinpower1258
e4d8002116 Rebind terminal portal when host entry goes missing 2026-03-07 11:36:58 -08:00
Austin Wang
0c11bc17cd
Merge pull request #1043 from manaflow-ai/issue-1036-tooltip-tracking-area-crash
Fix tooltip tracking lifetime and shortcut lag
2026-03-07 03:05:48 -08:00
Lawrence Chen
e680f1de55
Add DEBUG logging for browser omnibar/content focus handoff (#910)
* Add browser focus debug logging around omnibar/content handoff

* Avoid release-only unused-value warnings in focus debug logs

* Add omnibar focus writer trace logs

* Fix omnibar tap focus race

* Stabilize omnibar focus state transitions

* Propagate event context into responder guard

* Fix webview pointer hit testing in focus guard

* Stop omnibar reacquire on pointer blur intent

* Blur omnibar on webview click intent

* Preserve pointer intent through webview focus handoff

* Restore page input focus after omnibar escape

* Fix omnibar escape focus handoff and restore retry

* Track editable focus for omnibar restore and improve test diagnostics

* Add omnibar focus tracker telemetry to failing UI test

* Wait for page readiness before seeding focused input in UI test setup

* Strengthen omnibar escape focus regression with post-click assertion

* Use deterministic window offsets for post-escape web input click test

* Always enforce webview responder on omnibar escape

* Harden omnibar focus restore and address PR review feedback

---------

Co-authored-by: tiffanysun1 <tiffanysun8@gmail.com>
2026-03-07 03:05:13 -08:00
austinpower1258
01e9a05817 Merge remote-tracking branch 'origin/main' into issue-1036-tooltip-tracking-area-crash
# Conflicts:
#	Sources/ContentView.swift
2026-03-07 02:53:20 -08:00
Lawrence Chen
3432a4a941
Make missing markdown path selectable (#1042)
Co-authored-by: cmux <cmux@cmuxs-Mac-mini.local>
2026-03-07 02:15:55 -08:00
austinpower1258
9e8a401e3c Fix tooltip tracking lifetime and shortcut lag 2026-03-07 01:46:02 -08:00
Lawrence Chen
e7c3961489
Revert "Add workspace pages in the titlebar (#1030)" (#1040)
This reverts commit 4de975e6a4.
2026-03-07 00:05:58 -08:00
Lawrence Chen
4de975e6a4
Add workspace pages in the titlebar (#1030)
* Add workspace pages in the titlebar

* Add workspace pages UI test target entry

* Relax workspace pages UI test titlebar checks

* Use page close button in workspace pages UI test

* Stabilize workspace pages UI test interruptions

* Skip page close confirms in UI tests

* Clean up superseded workspace handoffs

* Tighten page hint UI assertions

---------

Co-authored-by: cmux <cmux@cmuxs-Mac-mini.local>
2026-03-06 21:23:11 -08:00
austinpower1258
72c0f564c8 works 2026-03-06 18:24:20 -08:00
Austin Wang
0e7c69521f
Merge pull request #1026 from manaflow-ai/issue-1024-terminal-drag-glitch
Fix drag hover redraw churn in hosted panes
2026-03-06 16:39:02 -08:00
Lawrence Chen
af2e5b2691
Merge pull request #989 from manaflow-ai/issue-668-command-palette-search-speed
Improve command palette search performance
2026-03-06 15:54:52 -08:00
Lawrence Chen
60b290cafc Fix palette refresh review follow-ups 2026-03-06 15:53:44 -08:00
Lawrence Chen
cc42ea434f Fix palette pending refresh selection and preview work 2026-03-06 15:51:28 -08:00
austinpower1258
d43d7d6a51 Fix drag hover redraw churn in hosted panes 2026-03-06 15:47:11 -08:00
Lawrence Chen
a6329d79ad
Fix titlebar controls clipped at bottom edge (#1016)
The NSTitlebarAccessoryViewController constrains the accessory view
height to the titlebar, which can be slightly shorter than the button
frames (especially with softButtons style). Disable masksToBounds on
the container view so the rounded-rectangle button backgrounds render
fully instead of being cut off at the bottom.
2026-03-06 15:36:51 -08:00
Lawrence Chen
03e1fcf6c5 Generalize command word fuzzy matching to one edit 2026-03-06 15:36:32 -08:00
Lawrence Chen
15080c931a Support omitted-character command word matches 2026-03-06 15:21:53 -08:00
cmux
ffa74d641c Hide help menu popover arrow
Replace the SwiftUI .popover with an NSPopover presented via
NSViewRepresentable that uses the shouldHideAnchor KVC trick to
hide the arrow. The positioning rect is shifted toward the
preferred edge to compensate for the hidden arrow's space.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 13:59:04 -08:00
atani
7236ba8d8a fix: strip trailing '?' before removing quotes in include path parsing
Reorder the trimming so that the optional include marker '?' is removed
before surrounding quotes are stripped. This prevents quoted paths like
"foo"? from being misparsed as foo".
2026-03-07 01:19:44 +09:00
atani
23202990df fix: scan app-support config paths for existing font-codepoint-map
Include ~/Library/Application Support/<bundle-id>/config(.ghostty)
paths in the codepoint-map detection scan. This ensures that
font-codepoint-map entries in the release app-support config (loaded
by loadReleaseAppSupportGhosttyConfigIfNeeded for debug builds) are
detected before injecting CJK font fallback defaults.
2026-03-07 01:08:51 +09:00
atani
a0ba82f8be fix: harden config-file include scanning
- Add cycle detection via visited path set to prevent infinite recursion
  on cyclic config-file includes.
- Resolve relative include paths against the parent directory of the
  including config file.
- Strip trailing '?' from optional include paths (Ghostty convention).
- Use UUID-based path for missing file test.
- Add tests for relative includes, optional includes, and cyclic includes.
2026-03-06 23:28:59 +09:00
atani
12e91aa4fe fix: address review feedback for CJK font fallback
- Split Unicode ranges by language to avoid mapping Hangul to Hiragino
  Sans or Kana to Apple SD Gothic Neo. Shared CJK ranges (ideographs,
  symbols, fullwidth forms) use the first CJK language's font, while
  script-specific ranges (Kana, Hangul) only map to their own font.
- Use UUID-based temp file path to prevent race conditions on concurrent
  launches.
- Move fallback injection after ghostty_config_load_recursive_files so
  that config-file includes are already loaded when checking for
  existing font-codepoint-map entries.
- Follow config-file directives when scanning for existing
  font-codepoint-map entries.
- Extract test helper withTempConfig to reduce duplication.
- Add tests for multi-language mappings and config-file includes.
- Replace placeholder issue URL with actual PR link.
2026-03-06 23:16:15 +09:00
atani
f5c2f2dd75 fix: add CJK font fallback to prevent decorative font rendering
On macOS, Core Text's CTFontCreateForString may pick an inappropriate
fallback font (e.g. LingWai, a decorative calligraphic font) for CJK
characters when the primary font (e.g. Menlo) does not cover them.

This adds automatic CJK font fallback based on the system's preferred
language:
- ja → Hiragino Sans
- ko → Apple SD Gothic Neo
- zh-Hant/zh-TW/zh-HK → PingFang TC
- zh → PingFang SC

The fallback is only applied when:
1. The user has not set any font-codepoint-map in their Ghostty config
2. A CJK language is detected in the system's preferred languages

This ensures CJK text renders with appropriate system fonts instead of
relying on Core Text's unpredictable fallback chain.
2026-03-06 22:52:26 +09:00
Lawrence Chen
def9310e7e Fix command preview search for new queries 2026-03-06 04:28:40 -08:00
Lawrence Chen
fdf2212c88 Add regression test for command preview corpus 2026-03-06 04:28:18 -08:00
Lawrence Chen
23910dea9a Reduce command palette typing lag 2026-03-06 04:13:30 -08:00
Lawrence Chen
5279e005f9 Fix stale command palette preview results 2026-03-06 03:59:41 -08:00
Lawrence Chen
b268b2fc8f Fix command palette async search review issues 2026-03-06 03:42:37 -08:00
Lawrence Chen
2c2da79138 Merge origin/main into issue-668-command-palette-search-speed 2026-03-06 03:36:39 -08:00