From 25349e0fe5eb19b6bdd4f73d4d2f76aa19fecb78 Mon Sep 17 00:00:00 2001 From: Mohamed Boudra Date: Fri, 19 Jun 2026 11:08:49 +0700 Subject: [PATCH] Replay bracketed paste in terminal preamble --- packages/protocol/src/terminal-input-mode.test.ts | 2 ++ packages/protocol/src/terminal-input-mode.ts | 3 +++ 2 files changed, 5 insertions(+) diff --git a/packages/protocol/src/terminal-input-mode.test.ts b/packages/protocol/src/terminal-input-mode.test.ts index 39273c767..f17b6b7e7 100644 --- a/packages/protocol/src/terminal-input-mode.test.ts +++ b/packages/protocol/src/terminal-input-mode.test.ts @@ -106,6 +106,7 @@ describe("TerminalInputModeTracker", () => { applicationCursorKeys: false, bracketedPaste: true, }); + expect(tracker.getPreamble()).toBe("\x1b[?2004h"); expect(tracker.feed("\x1b[?2004l").changed).toBe(true); expect(tracker.getState()).toEqual({ @@ -114,6 +115,7 @@ describe("TerminalInputModeTracker", () => { applicationCursorKeys: false, bracketedPaste: false, }); + expect(tracker.getPreamble()).toBe(""); }); it("ignores encoded key input sequences", () => { diff --git a/packages/protocol/src/terminal-input-mode.ts b/packages/protocol/src/terminal-input-mode.ts index a7dc09c80..f35156eb5 100644 --- a/packages/protocol/src/terminal-input-mode.ts +++ b/packages/protocol/src/terminal-input-mode.ts @@ -156,6 +156,9 @@ export class TerminalInputModeTracker { if (this.applicationCursorKeys) { parts.push("\x1b[?1h"); } + if (this.bracketedPaste) { + parts.push("\x1b[?2004h"); + } return parts.join(""); }