Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1013 commits
Select commit Hold shift + click to select a range
29cf007
font: handle CRLF line endings in octants.txt parsing
deblasis Mar 26, 2026
5ae7068
build: normalize line endings to LF across all platforms
deblasis Mar 26, 2026
335d7f0
build: fix ghostty.dll linking on Windows MSVC
deblasis Mar 25, 2026
a078571
windows: initialize MSVC C runtime in DLL mode
deblasis Mar 26, 2026
f764b16
windows: add DLL init regression tests and probe
deblasis Mar 26, 2026
6afc174
windows: remove .NET test infrastructure and CRT probe function
deblasis Mar 26, 2026
656700d
windows: remove unrelated changes from DLL CRT fix branch
deblasis Mar 26, 2026
5d92222
windows: address review feedback on DLL CRT init PR
deblasis Mar 27, 2026
ca08ab8
windows: simplify DLL init test and improve README
deblasis Mar 27, 2026
fead488
ci: add full test suite for Windows
deblasis Mar 26, 2026
650b9d4
font: handle CRLF line endings in octants.txt parsing
deblasis Mar 26, 2026
dc3db7b
build: normalize line endings to LF across all platforms
deblasis Mar 26, 2026
e90eebe
ci: switch to namespace image
mitchellh Mar 27, 2026
a1370d9
windows: initialize MSVC C runtime in DLL mode (#11856)
mitchellh Mar 27, 2026
b8b0896
ci: add full zig test suite for Windows (#11839)
mitchellh Mar 27, 2026
6491363
cli: +edit-config works properly when editor command contains arguments
jcollie Mar 27, 2026
cb3c20b
cli: escape path in +edit-config
jcollie Mar 27, 2026
947bfbe
blp and glsl files are source files, not binary
jcollie Mar 27, 2026
12458e3
blp and glsl files are source files, not binary (#11906)
mitchellh Mar 27, 2026
01abf4a
doc: clarify UTF-8 text handling in ghostty_key_event_get_composing
elias8 Mar 28, 2026
562e704
Update VOUCHED list (#11918)
ghostty-vouch[bot] Mar 28, 2026
0d1f77b
Update VOUCHED list (#11925)
ghostty-vouch[bot] Mar 28, 2026
f0badd3
fix: replace hardcoded locale.h constants with build-system TranslateC
i999rri Mar 28, 2026
60c7e76
benchmark: disable test on windows
jcollie Mar 28, 2026
3187b18
benchmark: disable test on windows (#11930)
mitchellh Mar 28, 2026
94d1398
doc: clarify utf8 text input contract for key event encoder (#11910)
mitchellh Mar 28, 2026
e20b506
fix: replace hardcoded locale.h constants with build-system Translate…
mitchellh Mar 28, 2026
608bc7d
cli: +edit-config works properly when editor command contains argumen…
mitchellh Mar 28, 2026
2b1ec5d
cli: dupe argument strings to retain their memory
jparise Mar 28, 2026
8813261
libghostty: expose version information via build options and C API
mitchellh Mar 28, 2026
bcb295d
build: read version from VERSION file if available
mitchellh Mar 28, 2026
8fa50f8
cli: dupe argument strings to retain their memory (#11931)
mitchellh Mar 28, 2026
73ce1cd
build: prep for separate lib version
mitchellh Mar 28, 2026
e2b9e8c
Update VOUCHED list (#11936)
ghostty-vouch[bot] Mar 28, 2026
baad0aa
Update VOUCHED list (#11938)
ghostty-vouch[bot] Mar 28, 2026
c0a124f
gtk: disable kinetic scrolling for trackpads until 4.20.1
viruslobster Mar 13, 2026
4903e28
gtk: disable kinetic scrolling for trackpads until 4.20.1 (#11793)
jcollie Mar 29, 2026
5421326
deps: Update iTerm2 color schemes
mitchellh Mar 29, 2026
a95bfdf
Update iTerm2 colorschemes (#11946)
mitchellh Mar 29, 2026
0f6e733
build: use VERSION file if present, expose via libghostty (#11932)
mitchellh Mar 29, 2026
741f1d1
example/c-vt-stream
mitchellh Mar 29, 2026
1fcd80d
libghostty: add cpp-vt-stream example and fix C++ header compatibility
mitchellh Mar 29, 2026
debcffb
libghostty: make headers C++ compatible (#11950)
mitchellh Mar 29, 2026
420de12
fix: ensure memory is zeroed in runtime safety modes for wasm/freesta…
elias8 Mar 29, 2026
1c14b96
fix(libghostty): ensure memory is zeroed in runtime safety modes for …
mitchellh Mar 29, 2026
10956bf
Update VOUCHED list (#11961)
ghostty-vouch[bot] Mar 29, 2026
d784600
terminal: update page_serial_min in erasePage
mitchellh Mar 29, 2026
cca4c78
terminal: update page_serial_min properly when erasing a page to avoi…
mitchellh Mar 29, 2026
3f6683d
macos: add support for middle-click tab close
nicholas-ochoa Mar 29, 2026
5540f5f
macos: add support for middle-click tab close for `macos-titlebar-sty…
mitchellh Mar 29, 2026
af36959
gtk: only trigger resize callbacks and overlay when size actually cha…
jcollie Mar 30, 2026
bd413cc
libghostty: add GHOSTTY_EXPORT for shared library symbol visibility
deblasis Mar 30, 2026
0c765c7
libghostty: add GHOSTTY_EXPORT to VT headers
deblasis Mar 30, 2026
32920b6
macOS: handle surface focus more gracefully
bo2themax Mar 28, 2026
013579c
macOS: fix initial focus of command palette when building with Xcode …
bo2themax Mar 29, 2026
5c5029b
Revert "macos: add support for middle-click tab close for `macos-titl…
bo2themax Mar 30, 2026
5de30c0
Revert "macOS: fix tab context menu opens on macOS 26 with titlebar t…
bo2themax Mar 30, 2026
51cd638
macos: passthrough right mouse down event to TabTitleEditor if needed…
bo2themax Mar 30, 2026
5c5f645
macOS: support reloading temporary config for testing
bo2themax Mar 30, 2026
65cd31d
macOS: add NormalizedMenuShortcutKeyTests
bo2themax Mar 30, 2026
1845dd2
macOS: extract menu shortcut syncing into MenuShortcutManager
bo2themax Mar 30, 2026
de8139b
macOS: move MenuShortcutManager to a separate file
bo2themax Mar 30, 2026
4a0cca1
cli: add pager support to +explain-config
jparise Mar 28, 2026
62f8a1c
cli: use a caller-provided write buffer
jparise Mar 29, 2026
11d45cd
cli: add pager support for +show-config
jparise Mar 30, 2026
840ab46
cli: also recognize $GHOSTTY_PAGER
jparise Mar 30, 2026
7ad3888
cli: add pager support to +explain-config (#11940)
jcollie Mar 30, 2026
3864fa5
build(deps): bump cachix/install-nix-action from 31.10.2 to 31.10.3
dependabot[bot] Mar 30, 2026
fdb914c
build(deps): bump cachix/install-nix-action from 31.10.2 to 31.10.3 (…
mitchellh Mar 30, 2026
f66cf17
gtk: only trigger resize callbacks and overlay when size actually cha…
mitchellh Mar 30, 2026
bf3f9b3
macOS: fix focus update when using search or command palette (#11978)
mitchellh Mar 30, 2026
1672e89
macOS: remove redundant tab event overrides (#11984)
mitchellh Mar 30, 2026
d643792
macOS: add keyboard shortcut test (#11986)
mitchellh Mar 30, 2026
a06350d
macOS: close search bar if needed when it loses focus
bo2themax Mar 28, 2026
80e35af
cmake: define GHOSTTY_STATIC for static library consumers
deblasis Mar 30, 2026
6d4528e
libghostty: add GHOSTTY_EXPORT for shared lib symbol visibility (#11977)
mitchellh Mar 30, 2026
8fab3ac
example/wasm-vt
mitchellh Mar 29, 2026
2e827cc
vt: add ghostty_type_json for struct layout metadata
mitchellh Mar 30, 2026
6479d90
example/wasm-vt: use ghostty_type_json for struct layouts
mitchellh Mar 30, 2026
0c38e8b
vt: simplify ghostty_type_json to return null-terminated string
mitchellh Mar 30, 2026
3c6e98c
vt: export the new API
mitchellh Mar 30, 2026
bd7415f
terminal: clean up some types tests
mitchellh Mar 30, 2026
53871e4
libghostty: WASM VT example, add `ghostty_type_json` (#11992)
mitchellh Mar 30, 2026
40d1085
lib: rename GHOSTTY_EXPORT to GHOSTTY_API
mitchellh Mar 30, 2026
7269fa7
lib: rename GHOSTTY_EXPORT to GHOSTTY_API (#11994)
mitchellh Mar 30, 2026
ee19c8f
wasm: binary patching wow
mitchellh Mar 30, 2026
624b488
Add build_table
mitchellh Mar 30, 2026
6c085e5
build: binary patch to add growable tables
mitchellh Mar 30, 2026
01a8ea7
build: binary patching with Zig
mitchellh Mar 30, 2026
500ab13
Update VOUCHED list (#12000)
ghostty-vouch[bot] Mar 30, 2026
a83a82b
build: normalize input archives before Darwin libtool merge
Mar 30, 2026
c75081b
build: normalize input archives before Darwin libtool merge (#11999)
jcollie Mar 30, 2026
8fc0c85
Update VOUCHED list (#12002)
ghostty-vouch[bot] Mar 30, 2026
f89195a
revert example/wasm-vt
mitchellh Mar 30, 2026
50f3b1d
libghostty: export function table and make it growable for wasm (#12003)
mitchellh Mar 30, 2026
3509ccf
Update VOUCHED list (#12005)
ghostty-vouch[bot] Mar 30, 2026
e993ded
ghostty.h: guard sys/types.h include for MSVC
deblasis Mar 31, 2026
ed6f058
feat: make version clickable depending on type
louisunlimited Mar 31, 2026
b29f261
chore: clean up versionConfig to be init-able
louisunlimited Mar 31, 2026
90d71dd
chore: clean up comments
louisunlimited Mar 31, 2026
183e2ce
chore: clean up switch statement
louisunlimited Mar 31, 2026
20cfaae
macOS: close search bar if needed when it loses focus (#11980)
mitchellh Mar 31, 2026
010880a
chore: make url computed property & rework enum signature
louisunlimited Mar 31, 2026
591dbd5
macOS: fix incorrect delete symbol mapping
bo2themax Mar 31, 2026
30c9dec
add all C struct layout metadata for WASM
elias8 Mar 31, 2026
1d0a247
sort map alphabetically
elias8 Mar 31, 2026
f827530
libghostty: add all C struct layout metadata for WASM (#12017)
mitchellh Mar 31, 2026
f140b14
macOS: fix incorrect delete symbol mapping (#12011)
mitchellh Mar 31, 2026
5fe876c
ghostty.h: guard sys/types.h include for MSVC (#12010)
mitchellh Mar 31, 2026
292bf13
macOS: Make version in about dialog clickable (#12007)
mitchellh Mar 31, 2026
b288063
Update VOUCHED list (#12022)
ghostty-vouch[bot] Mar 31, 2026
4803d58
apprt/embedded: fix ghostty_surface_free_text parameter mismatch
mitchellh Mar 31, 2026
f16d354
apprt/embedded: fix ghostty_surface_free_text parameter mismatch (#12…
mitchellh Mar 31, 2026
ff02ed1
core: add 64 bit unique ID to every core surface
jcollie Aug 14, 2025
f90180f
core: add 64 bit unique ID to every core surface (#12027)
jcollie Mar 31, 2026
dee8598
gtk: use surface id for notifications instead of pointer
jcollie Mar 23, 2026
4b5f2d6
core/gtk: ensure that first surface gets marked as focused surface by…
jcollie Mar 23, 2026
0f6836c
gtk: use surface id for notifications instead of pointer (#12028)
jcollie Mar 31, 2026
c2dd757
core/gtk: ensure that first surface gets marked as focused surface by…
jcollie Mar 31, 2026
b7e5604
Update VOUCHED list (#12031)
ghostty-vouch[bot] Apr 1, 2026
c8702ec
gtk(chore): fix typos
bo2themax Apr 1, 2026
702a2b4
macOS: fix upper cased letter is not correctly mapped to menu shortcut
bo2themax Apr 1, 2026
6d15b53
gtk(chore): fix typos (#12036)
pluiedev Apr 1, 2026
f6e6bb0
macOS: fix upper cased letter is not correctly mapped to menu shortcu…
mitchellh Apr 1, 2026
9ec5672
Revert "macOS: close search bar if needed when it loses focus (#11980)"
bo2themax Apr 1, 2026
c16cf0e
fix: Ensure snap paths come first in gio module loading
kenvandine Apr 1, 2026
92a4601
Revert "macOS: close search bar if needed when it loses focus (#11980…
mitchellh Apr 1, 2026
b8251de
fix: Ensure snap paths come first in gio module loading (#12045)
mitchellh Apr 1, 2026
48d3e97
Update VOUCHED list (#12052)
ghostty-vouch[bot] Apr 1, 2026
63372f8
Update VOUCHED list (#12066)
ghostty-vouch[bot] Apr 2, 2026
7747c96
Update VOUCHED list (#12069)
ghostty-vouch[bot] Apr 2, 2026
18f2702
macOS: fix Find Next/Previous button in the menu bar is not working a…
bo2themax Apr 2, 2026
0790937
macOS: fix Find Next/Previous button in the menu bar is not working a…
mitchellh Apr 2, 2026
4f825e8
add a nix package (with CI tests) for libghostty-vt
jcollie Apr 3, 2026
326178a
nix: address review comments
jcollie Apr 4, 2026
e3bbd54
Update VOUCHED list (#12094)
ghostty-vouch[bot] Apr 4, 2026
707cd57
add a nix package (with CI tests) for libghostty-vt (#12090)
mitchellh Apr 4, 2026
e157dd6
build: add pkg-config static linking support and fat archives to libg…
mitchellh Apr 4, 2026
0a492fd
build: add pkg-config static linking support and fat archives to libg…
mitchellh Apr 4, 2026
1bd7c19
nix: add option to disable simd in libghostty-vt package
jcollie Apr 4, 2026
0a4cf58
nix: add option to disable simd in libghostty-vt package (#12103)
jcollie Apr 4, 2026
06144d3
libghostty-vt: allow version to be customized from the Zig build command
jcollie Apr 4, 2026
cf8a240
Update VOUCHED list (#12113)
ghostty-vouch[bot] Apr 5, 2026
b9a241d
libghostty: add hyperlink URI accessor to grid_ref API
mitchellh Apr 5, 2026
757eff5
libghostty: add GhosttySelection type and selection support to formatter
mitchellh Apr 5, 2026
86554de
libghostty: add hyperlink URI accessor to grid_ref API (#12114)
mitchellh Apr 5, 2026
10696b5
libghostty: add GhosttySelection type and selection support to format…
mitchellh Apr 5, 2026
a8e92c9
terminal: add APC handler to stream_terminal
mitchellh Apr 5, 2026
c541ceb
terminal: add APC handler to stream_terminal (#12116)
mitchellh Apr 5, 2026
29e3de7
terminal: make wuffs runtime-swappable, enable Kitty graphics for libvt
mitchellh Apr 5, 2026
355aecb
macos: cancel deferred tab presentation on close
jamylak Apr 3, 2026
ba398df
Update VOUCHED list (#12123)
ghostty-vouch[bot] Apr 5, 2026
6a99c24
terminal/kitty: add Limits to restrict capabilities of image transfer
mitchellh Apr 5, 2026
64dcb91
terminal/kitty: add loading limits to kitty graphics protocol
mitchellh Apr 5, 2026
935d37f
terminal: add kitty image limits to Terminal.Options
mitchellh Apr 5, 2026
306acc4
terminal/kitty: use direct medium for tests if we're not using files
mitchellh Apr 5, 2026
e390937
macos: fix badge permission
KayLeung Apr 5, 2026
4f543ff
Update VOUCHED list (#12135)
ghostty-vouch[bot] Apr 5, 2026
841a49a
Update VOUCHED list (#12138)
ghostty-vouch[bot] Apr 6, 2026
13f7d23
macOS: force layout sync when frame size mismatches GeometryReader
fru1tworld Apr 6, 2026
810ebae
terminal: lower default kitty image storage limit for libghostty
mitchellh Apr 6, 2026
c9c3c70
terminal: make wuffs runtime-swappable, enable Kitty graphics for lib…
mitchellh Apr 6, 2026
3a52e0e
libghostty: expose kitty image options via terminal set/get
mitchellh Apr 6, 2026
fd884bc
macOS: force surface layout sync in updateOSView (#12143)
mitchellh Apr 6, 2026
8ae8089
macos: fix dock icon badge permission (#12133)
mitchellh Apr 6, 2026
d7fa920
libghostty: expose sys interface to C API
mitchellh Apr 6, 2026
64340c6
example: add c-vt-kitty-graphics
mitchellh Apr 6, 2026
f65fb3d
libghostty: expose Kitty image configs, decode png callback from C AP…
mitchellh Apr 6, 2026
e89b2c8
libghostty: introduce the kitty graphics opaque type
mitchellh Apr 6, 2026
9033f6f
libghostty: add kitty graphics placement iterator API
mitchellh Apr 6, 2026
46a69ea
libghostty: add kitty graphics image lookup API
mitchellh Apr 6, 2026
9ff4bb2
terminal/kitty: convert Format, Medium, Compression to lib.Enum
mitchellh Apr 6, 2026
7144204
libghostty: add placement_rect and centralize opaque typedefs
mitchellh Apr 6, 2026
03a6eed
libghostty: add placement pixel_size and grid_size, rename calculated…
mitchellh Apr 6, 2026
426dc40
example: update c-vt-kitty-graphics to use new APIs
mitchellh Apr 6, 2026
68a8cbb
libghostty: fix expected format in image_get test
mitchellh Apr 6, 2026
fc9299a
libghostty: rename ghostty_kitty_image_get to ghostty_kitty_graphics_…
mitchellh Apr 6, 2026
20b7fe0
libghostty: gate kitty graphics placement types on build option
mitchellh Apr 6, 2026
6b94c2d
libghostty: add ghostty_terminal_point_from_grid_ref
mitchellh Apr 6, 2026
800cc64
libghostty: C APIs for Kitty Graphics inspection (#12145)
mitchellh Apr 6, 2026
66bfdf8
libghostty: add z-layer filtered placement iterator
mitchellh Apr 6, 2026
b43d35b
libghostty: add viewport-relative placement positioning
mitchellh Apr 6, 2026
d712bef
libghostty: add resolved source rect for placements
mitchellh Apr 6, 2026
65e3265
libghostty: fix kitty graphics test failures
mitchellh Apr 6, 2026
fdb6e3d
libghostty: add z-layer filtering, viewport positioning, and source r…
mitchellh Apr 6, 2026
a977822
update kitty graphics docs
mitchellh Apr 6, 2026
f7a9e31
libghostty-vt: allow version to be customized from the Zig build comm…
mitchellh Apr 6, 2026
05fb57d
build: emit xcframework for libghostty-vt on macOS
mitchellh Apr 6, 2026
f567f7f
build: add GhosttyVt module map to xcframework and Swift example
mitchellh Apr 6, 2026
764ff18
ci: add Swift example builds on macOS
mitchellh Apr 6, 2026
90b706b
ci: publish lib-vt xcframework in tip releases
mitchellh Apr 6, 2026
e1a0e40
build: skip xcframework when cross-compiling
mitchellh Apr 6, 2026
9b281cd
build: add iOS slices to lib-vt xcframework
mitchellh Apr 6, 2026
249aee7
example/swift-vt-xcframework: fix buffer overflow
mitchellh Apr 6, 2026
445e194
ci: upload lib-vt source tarball to R2
mitchellh Apr 6, 2026
c12a0e3
libghostty: build universal xcframework and release it on tip (#12149)
mitchellh Apr 6, 2026
da83575
prettier: ignore swift outputs
mitchellh Apr 6, 2026
06340cd
libghostty-vt: add semver pre info to build info
jcollie Apr 6, 2026
5c45484
build(deps): bump flatpak/flatpak-github-actions from 6.6 to 6.7
dependabot[bot] Apr 7, 2026
8f376d8
Update VOUCHED list (#12156)
ghostty-vouch[bot] Apr 7, 2026
a1e75da
Update VOUCHED list (#12158)
ghostty-vouch[bot] Apr 7, 2026
1322d64
libghostty-vt: nix package updates and more nix tests
jcollie Apr 6, 2026
93a4470
libghostty-vt: require build-nix-macos
jcollie Apr 7, 2026
dedc3fc
libghostty-vt: build nix package on all platforms
jcollie Apr 7, 2026
95fb39a
chore: removed superfluous word
tbrundige Apr 7, 2026
4ae155b
flake: ensure that packages don't get lost
jcollie Apr 7, 2026
1d61e27
libghostty-vt: disable macOS CI nix build
jcollie Apr 7, 2026
28c75e2
libghostty-vt: fix nix package name
jcollie Apr 7, 2026
c2e2a3b
flake: make building package list more flexible
jcollie Apr 7, 2026
ee236e9
chore: removed superfluous word (#12160)
jcollie Apr 7, 2026
140ddd9
build(deps): bump flatpak/flatpak-github-actions from 6.6 to 6.7 (#12…
mitchellh Apr 7, 2026
2b62e3c
libghostty-vt: add semver pre info to build info (#12150)
mitchellh Apr 7, 2026
0043e66
macos: cancel deferred tab presentation on close (#12119)
mitchellh Apr 7, 2026
853183e
Update VOUCHED list (#12165)
ghostty-vouch[bot] Apr 7, 2026
363cb95
macOS: fix icon style not updating on Tahoe
bo2themax Apr 8, 2026
9897d6c
libghostty: add GHOSTTY_ENUM_MAX_VALUE sentinel to all C enums
mitchellh Apr 8, 2026
f282f13
libghostty: add GHOSTTY_ENUM_TYPED and GHOSTTY_ENUM_MAX_VALUE to all …
mitchellh Apr 8, 2026
a1c6f80
libghostty: add MAX_VALUE sentinels to all C enums for 32-bit sizing …
mitchellh Apr 8, 2026
e740f6f
macOS: fix icon style not updating properly on Tahoe (#12180)
mitchellh Apr 8, 2026
2897245
libghostty-vt: nix package updates and more nix tests (#12152)
mitchellh Apr 8, 2026
1855b3e
build(deps): bump cachix/install-nix-action from 31.10.3 to 31.10.4
dependabot[bot] Apr 9, 2026
4cfbdaf
build(deps): bump cachix/install-nix-action from 31.10.3 to 31.10.4 (…
mitchellh Apr 9, 2026
ad9225a
build: sanitize all invalid chars in branch name for version
mitchellh Apr 9, 2026
1a5bfbd
build: sanitize all invalid chars in branch name for version (#12206)
mitchellh Apr 9, 2026
a82e156
build: add libghostty-vt-static pkg-config module
mitchellh Apr 10, 2026
48a01b8
build: add libghostty-vt-static pkg-config module (#12210)
mitchellh Apr 10, 2026
1348e04
Update VOUCHED list (#12216)
ghostty-vouch[bot] Apr 10, 2026
e7f58ad
macOS: double click title to enlarge window
bo2themax Apr 10, 2026
41c872c
macOS: fix tab title editor frame update during winding resizing
bo2themax Apr 10, 2026
d51e94f
macOS: fix tab title editor frame update during winding resizing (#12…
mitchellh Apr 10, 2026
19b0ed2
macOS: double click title to enlarge window (#12219)
mitchellh Apr 10, 2026
85be3ca
build: skip ghostty-test graph when building libghostty-vt
kataokatsuki Apr 10, 2026
f2e299f
cmake: add ghostty_vt_add_target() for cross-compilation
mitchellh Apr 10, 2026
b5d54d8
Update VOUCHED list (#12225)
ghostty-vouch[bot] Apr 10, 2026
7127abf
cmake: add ghostty_vt_add_target() for cross-compilation (#12212)
mitchellh Apr 10, 2026
aa6943d
libghostty: add log callback configuration
mitchellh Apr 10, 2026
c34901d
libghostty: add log callback configuration (#12227)
mitchellh Apr 10, 2026
d3ce892
build: skip ghostty-test graph when building libghostty-vt (#12224)
jcollie Apr 10, 2026
3295bf4
libghostty: add convenience accessors for kitty graphics
mitchellh Apr 10, 2026
7421b4b
libghostty: add convenience accessors for kitty graphics (#12229)
mitchellh Apr 10, 2026
650cd96
macOS: fix memory leak of TerminalController
bo2themax Apr 11, 2026
2c1dad7
libghostty: add _get_multi to all _get APIs
mitchellh Apr 11, 2026
abf1332
macOS: fix memory leak of TerminalController (#12237)
mitchellh Apr 11, 2026
c36b458
libghostty: add _get_multi to all _get APIs (#12236)
mitchellh Apr 11, 2026
3e6a65f
pkg/highway: drop libc++ from vendored hwy
mitchellh Apr 11, 2026
fa2c3a1
pkg/highway: drop libc++ dependency from vendored hwy (#12238)
mitchellh Apr 11, 2026
5e102c9
build: stop linking libc++ for utfcpp
mitchellh Apr 11, 2026
557de7c
build: stop linking libc++ for utfcpp (#12239)
mitchellh Apr 11, 2026
a200d6a
Merge upstream/main into merge-upstream-ghostty
DevEstacion Apr 12, 2026
f918fdf
Merge pull request #1 from DevEstacion/merge-upstream-ghostty
DevEstacion Apr 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
64 changes: 0 additions & 64 deletions .agents/commands/gh-issue

This file was deleted.

62 changes: 62 additions & 0 deletions .agents/skills/writing-commit-messages/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
---
name: writing-commit-messages
description: >-
Writes Git commit messages. Activates when the user asks to write
a commit message, draft a commit message, or similar.
---

# Writing Commit Messages

Write commit messages that follow commit style guidelines for the project.

## Format

```
<subsystem>: <summary>

<reference issues/PRs/etc.>

<long form description>
```

## Rules

### Subject line

- **Subsystem prefix**: Use a short, lowercase identifier for the
area of code changed (e.g., `terminal`, `vt`, `lib`, `config`,
`font`). Determine this from the file paths in the diff. If
changes span the macOS app, use `macos`. For GTK, use `gtk`. For
build system, use `build`. Use nested subsystems with `/` when
helpful and exclusive (e.g., `terminal/osc`).
- **Summary**: Lowercase start (not capitalized), imperative mood,
no trailing period. Keep it concise—ideally under 60 characters
total for the whole subject line.

### References

- If the change relates to a GitHub issue, PR, or discussion, list
the relevant numbers on their own lines after the subject, separated
by a blank line. E.g. `#1234`
- If there are no references, omit this section entirely (no blank
line).

### Long form description

- Describe **what changed**, **what the previous behavior was**,
and **how the new behavior works** at a high level.
- Use plain prose, not bullet points. Wrap lines at ~72 characters.
- Focus on the _why_ and _how_ rather than restating the diff.
- Keep the tone direct and technical without no filler phrases.
- Don't exceed a handful of paragraphs; less is more.

## Workflow

- If `.jj` is present, use `jj` instead of `git` for all commands.
- Run a diff to see what changes are present since the last commit.
- Identify the subsystem from the changed file paths.
- Identify any referenced issues/PRs from the diff context or
branch name.
- Draft the commit message following the format above.
- Apply the commit
- Don't push the commit; leave that to the user.
44 changes: 44 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1,3 +1,47 @@
#--------------------------------------------------------------------
# Line endings
#--------------------------------------------------------------------
# Source code - always LF
*.zig text eol=lf
*.c text eol=lf
*.h text eol=lf
*.cpp text eol=lf
*.m text eol=lf
*.swift text eol=lf
*.py text eol=lf
*.sh text eol=lf
*.glsl text eol=lf
*.blp text eol=lf

# Config/build files - always LF
*.zon text eol=lf
*.nix text eol=lf
*.md text eol=lf
*.json text eol=lf
*.yml text eol=lf
*.yaml text eol=lf
*.toml text eol=lf
CMakeLists.txt text eol=lf
*.cmake text eol=lf
Makefile text eol=lf

# Text data files - always LF (embedded in Zig, parsed with \n split)
*.txt text eol=lf

# Windows resource files - preserve as-is (native Windows tooling)
*.rc -text
*.manifest -text

# Binary files
*.png binary
*.ico binary
*.icns binary
*.ttf binary
*.otf binary

#--------------------------------------------------------------------
# Linguist
#--------------------------------------------------------------------
build.zig.zon.nix linguist-generated=true
build.zig.zon.txt linguist-generated=true
build.zig.zon.json linguist-generated=true
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/flatpak.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ jobs:
runs-on: ${{ matrix.variant.runner }}
steps:
- name: Download Source Tarball Artifacts
uses: actions/download-artifact@70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3 # v8.0.0
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
run-id: ${{ inputs.source-run-id }}
artifact-ids: ${{ inputs.source-artifact-id }}
Expand All @@ -41,7 +41,7 @@ jobs:
mkdir dist
tar --verbose --extract --strip-components 1 --directory dist --file ghostty-source.tar.gz

- uses: flatpak/flatpak-github-actions/flatpak-builder@92ae9851ad316786193b1fd3f40c4b51eb5cb101 # v6.6
- uses: flatpak/flatpak-github-actions/flatpak-builder@401fe28a8384095fc1531b9d320b292f0ee45adb # v6.7
with:
bundle: com.mitchellh.ghostty
manifest-path: dist/flatpak/com.mitchellh.ghostty.yml
Expand Down
5 changes: 4 additions & 1 deletion .github/workflows/milestone.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,15 @@ on:

jobs:
update-milestone:
# Ignore bot-authored pull requests (dependabot, app bots, etc)
# and CI-only PRs.
if: github.event_name == 'issues' || (github.event.pull_request.user.type != 'Bot' && !startsWith(github.event.pull_request.title, 'ci:'))
runs-on: namespace-profile-ghostty-sm
name: Milestone Update
steps:
- name: Set Milestone for PR
uses: hustcer/milestone-action@ebed8d5daafd855a600d7e665c1b130f06d24130 # v3.1
if: github.event.pull_request.merged == true
if: github.event.pull_request.merged == true && !contains(github.event.pull_request.title, 'VOUCHED') && !startsWith(github.event.pull_request.title, 'ci:')
with:
action: bind-pr # `bind-pr` is the default action
github-token: ${{ secrets.GITHUB_TOKEN }}
Expand Down
19 changes: 13 additions & 6 deletions .github/workflows/nix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ concurrency:
jobs:
required:
name: "Required Checks: Nix"
runs-on: ubuntu-24.04
runs-on: namespace-profile-ghostty-sm
needs:
- check-zig-cache-hash
steps:
Expand All @@ -32,18 +32,25 @@ jobs:
exit 1

check-zig-cache-hash:
runs-on: ubuntu-24.04
if: github.repository == 'ghostty-org/ghostty'
runs-on: namespace-profile-ghostty-sm
env:
ZIG_LOCAL_CACHE_DIR: ${{ github.workspace }}/.zig-cache/local
ZIG_GLOBAL_CACHE_DIR: ${{ github.workspace }}/.zig-cache/global
ZIG_LOCAL_CACHE_DIR: /zig/local-cache
ZIG_GLOBAL_CACHE_DIR: /zig/global-cache
steps:
- name: Checkout code
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Setup Cache
uses: namespacelabs/nscloud-cache-action@a90bb5d4b27522ce881c6e98eebd7d7e6d1653f9 # v1.4.2
with:
path: |
/nix
/zig
- name: Setup Nix
uses: cachix/install-nix-action@19effe9fe722874e6d46dd7182e4b8b7a43c4a99 # v31.10.0
uses: cachix/install-nix-action@616559265b40713947b9c190a8ff4b507b5df49b # v31.10.4
with:
nix_path: nixpkgs=channel:nixos-unstable
- uses: cachix/cachix-action@3ba601ff5bbb07c7220846facfa2cd81eeee15a1 # v16
- uses: cachix/cachix-action@1eb2ef646ac0255473d23a5907ad7b04ce94065c # v17
with:
name: ghostty
authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}"
Expand Down
18 changes: 9 additions & 9 deletions .github/workflows/release-tag.yml
Original file line number Diff line number Diff line change
Expand Up @@ -89,11 +89,11 @@ jobs:
/nix
/zig
- uses: cachix/install-nix-action@19effe9fe722874e6d46dd7182e4b8b7a43c4a99 # v31.10.0
- uses: cachix/install-nix-action@616559265b40713947b9c190a8ff4b507b5df49b # v31.10.4
with:
nix_path: nixpkgs=channel:nixos-unstable

- uses: cachix/cachix-action@3ba601ff5bbb07c7220846facfa2cd81eeee15a1 # v16
- uses: cachix/cachix-action@1eb2ef646ac0255473d23a5907ad7b04ce94065c # v17
with:
name: ghostty
authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}"
Expand Down Expand Up @@ -147,13 +147,13 @@ jobs:
- uses: DeterminateSystems/nix-installer-action@main
with:
determinate: true
- uses: cachix/cachix-action@3ba601ff5bbb07c7220846facfa2cd81eeee15a1 # v16
- uses: cachix/cachix-action@1eb2ef646ac0255473d23a5907ad7b04ce94065c # v17
with:
name: ghostty
authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}"

- name: XCode Select
run: sudo xcode-select -s /Applications/Xcode_26.2.app
run: sudo xcode-select -s /Applications/Xcode_26.3.app

- name: Xcode Version
run: xcodebuild -version
Expand Down Expand Up @@ -299,7 +299,7 @@ jobs:
curl -sL https://sentry.io/get-cli/ | bash
- name: Download macOS Artifacts
uses: actions/download-artifact@70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3 # v8.0.0
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: macos

Expand All @@ -322,7 +322,7 @@ jobs:
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Download macOS Artifacts
uses: actions/download-artifact@70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3 # v8.0.0
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: macos

Expand Down Expand Up @@ -370,17 +370,17 @@ jobs:
GHOSTTY_VERSION: ${{ needs.setup.outputs.version }}
steps:
- name: Download macOS Artifacts
uses: actions/download-artifact@70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3 # v8.0.0
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: macos

- name: Download Sparkle Artifacts
uses: actions/download-artifact@70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3 # v8.0.0
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: sparkle

- name: Download Source Tarball Artifacts
uses: actions/download-artifact@70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3 # v8.0.0
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: source-tarball

Expand Down
Loading