From 124da277679fd4d5f501d4c04582ec5466c942c7 Mon Sep 17 00:00:00 2001 From: Gille <4317663+helix4u@users.noreply.github.com> Date: Tue, 28 Apr 2026 13:30:08 -0600 Subject: [PATCH] fix(tui): handle empty bracketed paste fallback (#15594) --- ui-tui/src/components/textInput.tsx | 4 ++-- ui-tui/src/types/hermes-ink.d.ts | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ui-tui/src/components/textInput.tsx b/ui-tui/src/components/textInput.tsx index e5d21a4893..216c89b78b 100644 --- a/ui-tui/src/components/textInput.tsx +++ b/ui-tui/src/components/textInput.tsx @@ -927,8 +927,8 @@ export function TextInput({ } else { v = v.slice(0, c) } - } else if (inp.length > 0) { - const bracketed = inp.includes('[200~') + } else if (event.keypress.isPasted || inp.length > 0) { + const bracketed = event.keypress.isPasted || inp.includes('[200~') const text = inp.replace(BRACKET_PASTE, '').replace(/\r\n/g, '\n').replace(/\r/g, '\n') if (bracketed && emitPaste({ bracketed: true, cursor: c, text, value: v })) { diff --git a/ui-tui/src/types/hermes-ink.d.ts b/ui-tui/src/types/hermes-ink.d.ts index 5c3d85697d..7bd436bd1c 100644 --- a/ui-tui/src/types/hermes-ink.d.ts +++ b/ui-tui/src/types/hermes-ink.d.ts @@ -28,7 +28,7 @@ declare module '@hermes/ink' { export type InputEvent = { readonly input: string readonly key: Key - readonly keypress: { readonly raw?: string } + readonly keypress: { readonly isPasted?: boolean; readonly raw?: string } } export type InputHandler = (input: string, key: Key, event: InputEvent) => void