From 903f63e5d6622f92586aa20de9dcb0704c44ffbd Mon Sep 17 00:00:00 2001 From: OrcaWin <293788423+OrcaWin@users.noreply.github.com> Date: Thu, 6 Aug 2026 19:58:36 -0700 Subject: [PATCH] fix(terminal): reject conflicting Ctrl+Enter evidence --- .../terminal-pane/terminal-ctrl-enter.test.ts | 11 +++++++++++ .../components/terminal-pane/terminal-ctrl-enter.ts | 3 +++ 2 files changed, 14 insertions(+) diff --git a/src/renderer/src/components/terminal-pane/terminal-ctrl-enter.test.ts b/src/renderer/src/components/terminal-pane/terminal-ctrl-enter.test.ts index 2d2b4ff6569..27e0cce41bc 100644 --- a/src/renderer/src/components/terminal-pane/terminal-ctrl-enter.test.ts +++ b/src/renderer/src/components/terminal-pane/terminal-ctrl-enter.test.ts @@ -37,6 +37,17 @@ describe('hasCtrlEnterCsiUAuthorityForPane', () => { } expect(hasCtrlEnterCsiUAuthorityForPane(state, PANE_KEY, '⠋ Droid')).toBe(true) expect(hasCtrlEnterCsiUAuthorityForPane(state, PANE_KEY, 'C:\\work\\grok-project')).toBe(false) + expect( + hasCtrlEnterCsiUAuthorityForPane( + { + paneForegroundAgentByPaneKey: { + [PANE_KEY]: { agent: 'pi', shellForeground: false } + } + }, + PANE_KEY, + 'Droid' + ) + ).toBe(false) for (const foreground of [ { agent: 'grok' as const, routingRevoked: true, shellForeground: false }, diff --git a/src/renderer/src/components/terminal-pane/terminal-ctrl-enter.ts b/src/renderer/src/components/terminal-pane/terminal-ctrl-enter.ts index 34832ed5eda..457a1f51beb 100644 --- a/src/renderer/src/components/terminal-pane/terminal-ctrl-enter.ts +++ b/src/renderer/src/components/terminal-pane/terminal-ctrl-enter.ts @@ -24,5 +24,8 @@ export function hasCtrlEnterCsiUAuthorityForPane( return agentAcceptsCtrlEnterCsiU(foreground.agent) } const titleAgent = terminalTitle ? resolveCommittedTitleAgentType(terminalTitle) : null + if (foreground?.agent != null && foreground.agent !== titleAgent) { + return false + } return agentAcceptsCtrlEnterCsiU(titleAgent) }