From f1b1d54955370247d85a9528f076b29d68580d82 Mon Sep 17 00:00:00 2001 From: Sviatoslav Abakumov Date: Sun, 25 Jan 2026 22:20:51 +0400 Subject: [PATCH] fix(coding-agent): delegate extension shortcuts instead of copying (#947) Extension shortcuts registered via registerShortcut() were not firing when the extension also used setEditorComponent(). This happened because setEditorComponent() copied onExtensionShortcut from defaultEditor at creation time, capturing undefined if setupExtensionShortcuts() hadn't run yet. The fix is to delegate to defaultEditor.onExtensionShortcut at call time. --- packages/coding-agent/src/modes/interactive/interactive-mode.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/coding-agent/src/modes/interactive/interactive-mode.ts b/packages/coding-agent/src/modes/interactive/interactive-mode.ts index d815c7ae..bf256818 100644 --- a/packages/coding-agent/src/modes/interactive/interactive-mode.ts +++ b/packages/coding-agent/src/modes/interactive/interactive-mode.ts @@ -1575,7 +1575,7 @@ export class InteractiveMode { customEditor.onEscape = this.defaultEditor.onEscape; customEditor.onCtrlD = this.defaultEditor.onCtrlD; customEditor.onPasteImage = this.defaultEditor.onPasteImage; - customEditor.onExtensionShortcut = this.defaultEditor.onExtensionShortcut; + customEditor.onExtensionShortcut = (data: string) => this.defaultEditor.onExtensionShortcut?.(data); // Copy action handlers (clear, suspend, model switching, etc.) for (const [action, handler] of this.defaultEditor.actionHandlers) { (customEditor.actionHandlers as Map void>).set(action, handler);