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.
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>
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".
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.
- 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.
- 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.
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.
Move "Copy Update Logs" and "Copy Focus Logs" from a standalone
top-level "Update Logs" menu into the existing Debug menu. Remove
the now-unused menu.updateLogs.title localization key.
Co-authored-by: cmux <cmux@cmuxs-Mac-mini.local>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* Add sidebar help menu
* Fix help menu test wiring
* Fix help menu accessibility
* Use native popup for help menu
* Use icon button for sidebar help
* Add feedback composer and feedback API
* Allow preview builds without feedback env
* Tighten feedback upload limits
* Adjust sidebar footer padding
* Tighten sidebar footer spacing
* Add link affordances to help menu
* Polish sidebar feedback composer
* Move feedback icon to trailing edge
* Normalize help menu trailing icon sizes
* Enlarge help menu trailing icons
* Reduce help menu link icon size
* Shrink help menu link arrow
* Reduce help menu link arrow again
* Fix feedback message editor focus
* Add send feedback keyboard shortcut
* Polish feedback launch and delivery