# libghostty-vt local patches This file tracks intentional local changes applied on top of the vendored `libghostty-vt` source. Remove a patch only when the vendored source commit contains the upstream behavior and the listed verification still passes. ## 0001 default lib-vt panes to grapheme clustering status: active patch: `vendor/patches/libghostty-vt/0001-default-grapheme-cluster-mode.patch` herdr issue: https://github.com/herdrdev/herdr/issues/243 upstream discussion: not opened; libghostty-vt currently exposes current mode mutation but no C API for configuring terminal default modes upstream pr: not opened vendored base: `c5a21edfcbc2d5b46540ad91b7980aca31f5f1f3` local files: - `vendor/libghostty-vt/src/terminal/c/terminal.zig` reason: Herdr renders terminal cells directly and requires DEC private mode 2027 to store flags, ZWJ emoji, and other multi-codepoint grapheme clusters in one cell. This patch makes clustering active for new terminals and keeps it as the reset default so RIS (`ESC c`) does not disable it. remove when: libghostty-vt exposes a C API for setting default mode 2027, or upstream makes grapheme clustering the lib-vt default, and the reset-survival regression passes without this patch. verification: ```sh cargo nextest run --locked grapheme_cluster_mode_is_default_and_survives_full_reset cargo nextest run --locked grapheme_cluster_mode_renders_flag_emoji_in_single_wide_cell cargo nextest run --locked grapheme_cluster_mode_renders_zwj_family_in_single_wide_cell ```