aboutsummaryrefslogtreecommitdiff
path: root/vendor/libghostty-vt.patches.md
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/libghostty-vt.patches.md')
-rw-r--r--vendor/libghostty-vt.patches.md42
1 files changed, 42 insertions, 0 deletions
diff --git a/vendor/libghostty-vt.patches.md b/vendor/libghostty-vt.patches.md
index 98b7569e..94bb998b 100644
--- a/vendor/libghostty-vt.patches.md
+++ b/vendor/libghostty-vt.patches.md
@@ -38,3 +38,45 @@ verification:
zig build test-lib-vt -Demit-lib-vt -Doptimize=ReleaseSafe -Dtest-filter="resize shrinks both axes with cursor at bottom"
zig build test-lib-vt -Demit-lib-vt -Doptimize=ReleaseSafe -Dtest-filter="PageList resize less rows and cols cursor at bottom"
```
+
+## 0002 expose kitty image transmit time in the C API
+
+status: active
+
+patch: `vendor/patches/libghostty-vt/0002-expose-kitty-image-transmit-time-ns.patch`
+
+herdr issue: https://github.com/ogulcancelik/herdr/issues/947
+
+upstream discussion: https://github.com/ghostty-org/ghostty/discussions/13177
+(proposes extending the kitty graphics inspection C API from
+https://github.com/ghostty-org/ghostty/pull/12145, which has no transmit
+time/serial accessor yet)
+
+introduced upstream: not yet
+
+vendored base: `0f7cd84b880b203c98683e520e84b9db0c5938d8`
+
+local files:
+
+- `vendor/libghostty-vt/include/ghostty/vt/kitty_graphics.h`
+- `vendor/libghostty-vt/src/terminal/c/kitty_graphics.zig`
+
+reason: herdr fingerprints kitty image data to decide when to re-encode an
+image for render clients. Hashing the full payload on every render is too
+expensive for multi-megabyte images, and sampling windows misses small
+changes, freezing streaming sources. The image's transmit time already
+refreshes on every (re)transmission, so exposing it as
+`GHOSTTY_KITTY_IMAGE_DATA_TRANSMIT_TIME_NS` gives herdr an exact, O(1) change
+serial to invalidate a cached full-data fingerprint.
+
+remove when: the vendored source commit exposes the image transmit time (or an
+equivalent transmission serial) in the C API and
+`ghostty::tests::kitty_image_fingerprint_refreshes_on_retransmission` passes
+without this patch.
+
+verification:
+
+```sh
+zig build test-lib-vt -Dtest-filter="image_get transmit_time_ns changes on retransmission"
+cargo nextest run kitty_image_fingerprint
+```