From 26ec677193ef7e207feaec19c3ed1504d6f23029 Mon Sep 17 00:00:00 2001 From: Can Celik Date: Sun, 5 Apr 2026 03:54:46 +0300 Subject: [PATCH] fix: silence embedded libghostty-vt logs --- .codex | 0 scripts/test_vendor_libghostty_vt.py | 8 ++++++++ vendor/libghostty-vt/src/lib_vt.zig | 23 +++++++++++++++++++---- 3 files changed, 27 insertions(+), 4 deletions(-) create mode 100644 .codex diff --git a/.codex b/.codex new file mode 100644 index 00000000..e69de29b diff --git a/scripts/test_vendor_libghostty_vt.py b/scripts/test_vendor_libghostty_vt.py index 9a9806b3..7fbea8ae 100644 --- a/scripts/test_vendor_libghostty_vt.py +++ b/scripts/test_vendor_libghostty_vt.py @@ -45,6 +45,14 @@ class VendorLibghosttyVtTests(unittest.TestCase): self.assertIn('"dist_archive"', text) self.assertIn('"extracted_dir"', text) + def test_embedded_libghostty_logging_is_silenced(self) -> None: + root = Path(__file__).resolve().parent.parent / "vendor" / "libghostty-vt" + lib_vt = root / "src" / "lib_vt.zig" + text = lib_vt.read_text() + self.assertIn("fn silentLog(", text) + self.assertIn(".log_level = .err", text) + self.assertIn(".logFn = silentLog", text) + if __name__ == "__main__": unittest.main() diff --git a/vendor/libghostty-vt/src/lib_vt.zig b/vendor/libghostty-vt/src/lib_vt.zig index adfb1147..9f5ee6c4 100644 --- a/vendor/libghostty-vt/src/lib_vt.zig +++ b/vendor/libghostty-vt/src/lib_vt.zig @@ -242,6 +242,18 @@ comptime { } } +fn silentLog( + comptime level: std.log.Level, + comptime scope: @Type(.enum_literal), + comptime format: []const u8, + args: anytype, +) void { + _ = level; + _ = scope; + _ = format; + _ = args; +} + pub const std_options: std.Options = options: { if (builtin.target.cpu.arch.isWasm()) break :options .{ // Wasm builds we specifically want to optimize for space with small @@ -256,10 +268,13 @@ pub const std_options: std.Options = options: { .logFn = @import("os/wasm/log.zig").log, }; - // For everything else we currently use defaults. Longer term I'm - // SURE this isn't right (e.g. we definitely want to customize the log - // function for the C lib at least). - break :options .{}; + // Embedded libghostty-vt runs inside herdr's TUI process. Writing logs to + // stdout/stderr corrupts the ratatui surface, so silence library-side Zig + // logging by default for the C library build. + break :options .{ + .log_level = .err, + .logFn = silentLog, + }; }; test {