Repository navigation
Update VOUCHED list - #12442
Merged
Merged
Update VOUCHED list#12442
Conversation
saeedvaziry
added a commit
to muxy-app/ghostty
that referenced
this pull request
Apr 29, 2026
* fix quick-terminal breaking when it is manually toggled while autohide is enabled * flatpak: terminate session if Ghostty disconnects from bus This makes sure that if Ghostty crashes, commands spawned are also terminated automatically by the Flatpak Session Helper. * surface: sync middle-click paste source with copy-on-select Middle-click paste previously always read from the selection clipboard (falling back to the standard clipboard on platforms without one). Now the paste source follows copy-on-select: - copy-on-select = true: paste from selection clipboard (unchanged) - copy-on-select = clipboard: paste from system clipboard - copy-on-select = false: paste from selection clipboard (unchanged) Fixes ghostty-org#9788. * config: use Config to check key binding instead of App Previously `ghostty_app_key_is_binding` (unlike Surface) is just using `config.keybind` to check whether a KeyEvent is in the set or not. After this, I can add unit tests for keybinding more easily, with dummy configs. * Update VOUCHED list (ghostty-org#12418) Triggered by [comment](ghostty-org#11461 (comment)) from @jcollie. Vouch: @seyoungjeong Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * libghostty: enable cross-compiling macOS from Linux/Windows This allows libghostty-vt to be cross-compiled for macOS from non-macOS platforms. I've updated pkg/apple-sdk to fallback to Zig's embedded macOS headers if the macOS SDK is not found. Additionally, CombineArchivesStep has been updated to use Linux tooling on Linux. * build: respect config.emit_xcframework for building libghostty-vt.xcframework on Darwin This fixes a hardcoded build issue on macOS where Zig unconditionally forces xcodebuild -create-xcframework to run during compilation, even when the caller explicitly specifies that they only want the raw standard C objects/headers (-Demit-lib-vt). The Bug: Around line 155 in build.zig, the libghostty-vt xcframework was being packaged unconditionally for Darwin builds. This caused developers (and wrappers like go-libghostty) attempting to natively build the vt library locally using only the minimal macOS Command Line Tools to experience an immediate crash, as xcodebuild -create-xcframework strictly demands a full Xcode application installation. The Fix: Guarded the GhosttyLibVt xcframework creation step with config.emit_xcframework. Because src/build/Config.zig intuitively forces emit_xcframework to default to false whenever emit_lib_vt is invoked, this structurally allows lightweight macOS builds to safely skip the xcodebuild invocation while still correctly compiling the standard .a object library files. * build: make libghostty-vt xcframework emission explicit via -Demit-lib-vt-xcframework * chore(fmt): zig fmt build.zig to pass test * build: gate lib-vt xcframework on emit-xcframework with xcodebuild detection * cleanups * ci: fix * Update VOUCHED list (ghostty-org#12425) Triggered by [discussion comment](ghostty-org#12308 (comment)) from @jcollie. Vouch: @alaviss Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * flatpak: update runtime to GNOME 50 * surface: respect semantic prompt boundaries for links Link detection currently expands the clicked location to a full line before running the configured regexes. When semantic prompt markers are present, this can cause prompt text and neighboring content to be matched together even though they are distinct semantic regions. Use semantic prompt boundaries when selecting the text to inspect for link matching. This keeps prompt text separate from the content beside it and avoids folding prompt text into double-click link/path selection. Add a regression test that models a prompt and command on the same line and verifies the prompt region and input region remain separate. * core: Acquire renderer state mutex before calling processLinks Holding the renderer state mutex is a documented precondition of `processLinks`, but `mouseButtonCallback` previously called the function without the mutex. This creates a race with the I/O thread's `processOutput`, which can prune scrollback pages while `processLinks` is reading them, resulting in a use-after-free segfault. See ghostty-org#12409 (Linux: crash while selecting text). https://github.com/ghostty-org/ghostty/blob/57b5e1e2507cd65ab8197d39baa4ce2505185510/src/Surface.zig#L4354-L4355 https://github.com/ghostty-org/ghostty/blob/57b5e1e2507cd65ab8197d39baa4ce2505185510/src/Surface.zig#L3822-L3824 995e4e3 (os: open) changed the body of `processLinks` to be non-trivial and documented the precondition, but the lock was not held at the call site. * Update VOUCHED list (ghostty-org#12436) Triggered by [discussion comment](ghostty-org#12409 (reply in thread)) from @00-kat. Vouch: @jmr Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Fix Korean IME committed text handling for arrow keys * gtk/SurfaceScrolledWindow: wrap root child with another Adw.Bin Due to a known Gtk issue, the scrolled_window at the root of the template is free-ed twice on dispose. This causes crashes when used with GNOME 49 platform (Gtk 4.20, libadwaita 1.8.5). Workaround this issue by wrapping the root child in another Adw.Bin, similar to widgets like ResizeOverlay. LLM was used to perform discovery against a manually recorded Valgrind trace, and helped tracking down known fixes for this problem. Fixes ghostty-org#12306 Assisted-by: OpenAI GPT-5.4 * Update VOUCHED list (ghostty-org#12437) Triggered by [discussion comment](ghostty-org#12295 (comment)) from @mitchellh. Vouch: @dobbylee Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Update VOUCHED list (ghostty-org#12438) Triggered by [discussion comment](ghostty-org#12354 (comment)) from @mitchellh. Vouch: @007hacky007 Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Update VOUCHED list (ghostty-org#12439) Triggered by [discussion comment](ghostty-org#12347 (comment)) from @mitchellh. Vouch: @rjwittams Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Update VOUCHED list (ghostty-org#12440) Triggered by [discussion comment](ghostty-org#11632 (comment)) from @mitchellh. Vouch: @ajiblock Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Update VOUCHED list (ghostty-org#12441) Triggered by [discussion comment](ghostty-org#11987 (comment)) from @mitchellh. Vouch: @nouritsu Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Update VOUCHED list (ghostty-org#12442) Triggered by [comment](ghostty-org#12435 (comment)) from @mitchellh. Vouch: @ZuBB Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Update VOUCHED list (ghostty-org#12444) Triggered by [discussion comment](ghostty-org#12305 (comment)) from @mitchellh. Vouch: @aaron-ang Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Update VOUCHED list ghostty-org#12263 (comment) * Update VOUCHED list (ghostty-org#12446) Triggered by [discussion comment](ghostty-org#12272 (comment)) from @mitchellh. Vouch: @dkinzler Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Update VOUCHED list (ghostty-org#12448) Triggered by [discussion comment](ghostty-org#12169 (comment)) from @mitchellh. Vouch: @knu Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Update VOUCHED list (ghostty-org#12449) Triggered by [discussion comment](ghostty-org#12141 (comment)) from @mitchellh. Vouch: @AkimioJR Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Update VOUCHED list (ghostty-org#12450) Triggered by [discussion comment](ghostty-org#12108 (comment)) from @mitchellh. Vouch: @lebdron Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Update VOUCHED list (ghostty-org#12451) Triggered by [discussion comment](ghostty-org#11993 (comment)) from @mitchellh. Vouch: @VoidNV Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Update VOUCHED list (ghostty-org#12452) Triggered by [discussion comment](ghostty-org#11975 (comment)) from @mitchellh. Vouch: @rightaditya Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Update VOUCHED list (ghostty-org#12453) Triggered by [discussion comment](ghostty-org#11882 (comment)) from @mitchellh. Vouch: @mpatankar6 Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Update VOUCHED list (ghostty-org#12454) Triggered by [discussion comment](ghostty-org#11858 (comment)) from @mitchellh. Vouch: @enzowilliam Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Update VOUCHED list (ghostty-org#12455) Triggered by [discussion comment](ghostty-org#11795 (comment)) from @mitchellh. Vouch: @bch Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Update VOUCHED list (ghostty-org#12456) Triggered by [discussion comment](ghostty-org#11685 (comment)) from @mitchellh. Denounce: @enkr1 Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * feat: add default GTK keybinds for move_tab Reassign jump_to_prompt from Ctrl+Shift+PageUp/PageDown to Ctrl+Shift+Arrow Up/Down on GTK, freeing the idiomatic Linux keybinds (Ctrl+Shift+PageUp/PageDown) for move_tab. This matches the tab-moving keybinds used by Firefox, GNOME Terminal, and VSCode. The new jump_to_prompt binding mirrors the macOS pattern (Cmd+Shift+Arrow Up/Down). Closes ghostty-org#4998 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Update VOUCHED list (ghostty-org#12457) Triggered by [discussion comment](ghostty-org#11628 (comment)) from @mitchellh. Denounce: @4RH1T3CT0R7 Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * fix: remove test as has been suggested in comment * macOS: make tab color optional * macOS: make terminal restorable state compatible with 1.2.3(v5) * macOS: add InternalState to cover migrations * macOS: add window restoration tests * macOS: move the restoration logs * macOS: remove manual invalidateRestorableState() * os: add randomTmpPath for allocating temp paths Factor TempDir's name generation into a reusable `randomBasename` (16 random bytes, url-safe base64) and add `randomTmpPath` on top, which composes `allocTmpDir` + `randomBasename` into a single allocated path in the form `{TMPDIR}/{prefix}{random}` (mktemp(1)-ish). This is convenient for callers who want a unique path under TMPDIR (for a temporary file, socket, etc.) without having to think about basename buffer sizing or path joining. Also, use `std.base64.url_safe_no_pad.Encoder` instead of the custom base64 alphabet, which is exactly equivalent. * os: RANDOM_BASENAME_LEN -> random_basename_len * flatpak: don't assume c_uint to be u32 Thanks pluie for the pointer. * os: use GetTempPathW for allocTmpDir on Windows `allocTmpDir` previously read `%TMP%` via `getenvW` and returned `null` if the variable wasn't set, requiring each caller to to deal with the nullable. Unfortunately, there isn't a platform-neutral default value that makes sense for those cases (i.e. `/tmp` is POSIX-y). We now use `GetTempPathW` on Windows, which is the official way to get this directory: `TMP` → `TEMP` → `USERPROFILE` → `GetWindowsDirectoryW`. With a real system call behind it, the function no longer needs to be nullable: the only remaining failure modes are OOM (propagated) and the syscall itself failing or returning data we can't decode. In those later cases, we use `C:\Windows\Temp` as a fallback, similar to how we use `/tmp` in the POSIX case. The Windows path always allocates so it still must be paired with `freeTmpDir`, which matches the existing contract. * test: only change themes in theme tests * test: always use temporary config when running ui tests * test: add test plan and override default config when running tests * feat: add middle-click action configuration * renderer: fix preedit range width * Update VOUCHED list (ghostty-org#12485) Triggered by [discussion comment](ghostty-org#12484 (comment)) from @jcollie. Vouch: @kylesower Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * fix: update Se terminfo entry to reset cursor to configured default * input: remove translated in capi Follow up for a3462dd * macOS: update keybind for end_search * macOS: fix ending search in menu bar does focus on surface * update zon2nix to 0.5.0 fix hash outputs for flatpak build with Zig 0.16 from nixpkgs (which required fixing prettier reference in devShell.nix) * switch back to older nixpkgs * Fix speedy high-resolution scrolling on Linux Enforcing an absolute minimum of 1 for scroll events causes differing scroll speeds between high-resolution and standard scroll wheels on Linux. Since this was added to handle MacOS's precision scrolling emulation, this patch alters the behaviour so that the absolute minimum is only enforced on MacOS. Fixes ghostty-org#11648. * zig-fmt cleanup --------- Co-authored-by: Daniel Kinzler <kinzler.daniel@gmail.com> Co-authored-by: Leorize <leorize+oss@disroot.org> Co-authored-by: 007hacky007 <007hacky007@users.noreply.github.com> Co-authored-by: Lukas <134181853+bo2themax@users.noreply.github.com> Co-authored-by: ghostty-vouch[bot] <262049992+ghostty-vouch[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Mitchell Hashimoto <m@mitchellh.com> Co-authored-by: 0xDVC <neilohene@gmail> Co-authored-by: N E I L O H E N E <54632119+0xDVC@users.noreply.github.com> Co-authored-by: Vasyl Zuziak <vasyl.zuziak@tietoevry.com> Co-authored-by: Jesse Rosenstock <jmr@google.com> Co-authored-by: dobbylee <leekw1245@gmail.com> Co-authored-by: Enzo William <enzowilliam99@gmail.com> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: Jon Parise <jon@indelible.org> Co-authored-by: Andrei Lebedev <14347159+lebdron@users.noreply.github.com> Co-authored-by: Kyle Sower <50718101+kylesower@users.noreply.github.com> Co-authored-by: Jeffrey C. Ollie <jeff@ocjtech.us> Co-authored-by: Aditya Bhargava <rightaditya@gmail.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Triggered by comment from @mitchellh.
Vouch: @ZuBB