mirror-ghostty/macos
Mitchell Hashimoto 431364cf16
macos: disable NSAutoFillHeuristicController on macOS 26
Fixes #8616

macOS 26 (as of RC1) has some pathological performance bug where the
terminal becomes unusably slow after some period of time. We aren't 100%
sure what triggers the slowdown, but it is app-wide (new tabs or windows
don't resolve it) and Instruments traces point directly to
NSAutoFillHeuristicController. Specifically, to the `debounceTextUpdate`
selector.

This is all not documented as far as I can find and also not open
source, so I have no idea what's going on.

The best I can tell is that the NSAutoFillHeuristicController has
something to do with enabling heuristic-based autofill such as SMS auth
codes in text input fields. I don't know what is causing it to go
haywire.

SMS autofill is not desirable in a terminal app, nor is any of the other
automatic autofill in macOS I know of (contact info, passwords, etc.).
So, we can just disable it.

This default isn't documented but I found it via a strings dump of the
AppKit binary blob and comparing it to the disassembly to see how it is
used. In my limited testing, this seems to work around the problem.
2025-09-14 13:05:01 -07:00
..
Assets.xcassets macos: Ghostty Icon Update for macOS Tahoe 2025-06-21 12:34:49 -07:00
Ghostty.xcodeproj macos: update Sparkle to 2.7.3 2025-09-10 20:04:24 -07:00
Sources macos: disable NSAutoFillHeuristicController on macOS 26 2025-09-14 13:05:01 -07:00
Tests build: `zig build test` runs Xcode tests on macOS 2025-07-10 21:08:51 -07:00
.gitignore build: LipoStep 2023-02-19 10:44:53 -08:00
Ghostty-Info.plist macos: support configuration via CLI arguments 2025-07-05 21:31:23 -07:00
Ghostty.entitlements macos: add entitlements for basically everything so macos asks 2023-11-23 09:00:20 -08:00
GhosttyDebug.entitlements macos: add Sparkle via Swift PM 2023-12-18 19:09:38 -08:00
GhosttyReleaseLocal.entitlements fix(macos): ReleaseLocal build configuration with "Library Validation" disabled 2023-12-20 16:54:58 -05:00