From 97e00fc45d809eeeb5961e99f7c0cf34a90858bf Mon Sep 17 00:00:00 2001 From: Mario Zechner Date: Tue, 11 Nov 2025 20:29:38 +0100 Subject: [PATCH] Fix Escape key to cancel autocomplete before interrupting agent --- packages/coding-agent/src/tui-renderer.ts | 5 +++-- packages/tui/src/components/editor.ts | 4 ++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/coding-agent/src/tui-renderer.ts b/packages/coding-agent/src/tui-renderer.ts index abd77a49..66e56d5d 100644 --- a/packages/coding-agent/src/tui-renderer.ts +++ b/packages/coding-agent/src/tui-renderer.ts @@ -21,8 +21,9 @@ class CustomEditor extends Editor { public onCtrlC?: () => void; handleInput(data: string): void { - // Intercept Escape key - if (data === "\x1b" && this.onEscape) { + // Intercept Escape key - but only if autocomplete is NOT active + // (let parent handle escape for autocomplete cancellation) + if (data === "\x1b" && this.onEscape && !this.isShowingAutocomplete()) { this.onEscape(); return; } diff --git a/packages/tui/src/components/editor.ts b/packages/tui/src/components/editor.ts index 92c28f54..61437a5d 100644 --- a/packages/tui/src/components/editor.ts +++ b/packages/tui/src/components/editor.ts @@ -749,6 +749,10 @@ export class Editor implements Component { this.autocompletePrefix = ""; } + public isShowingAutocomplete(): boolean { + return this.isAutocompleting; + } + private updateAutocomplete(): void { if (!this.isAutocompleting || !this.autocompleteProvider) return;