diff --git a/src/core/webview/ClineProvider.ts b/src/core/webview/ClineProvider.ts index 3e054ce7d2..377f10bf64 100644 --- a/src/core/webview/ClineProvider.ts +++ b/src/core/webview/ClineProvider.ts @@ -1905,6 +1905,7 @@ export class ClineProvider terminalCompressProgressBar, historyPreviewCollapsed, reasoningBlockCollapsed, + requireCtrlEnterToSend, cloudUserInfo, cloudIsAuthenticated, sharingEnabled, @@ -2058,6 +2059,7 @@ export class ClineProvider hasSystemPromptOverride, historyPreviewCollapsed: historyPreviewCollapsed ?? false, reasoningBlockCollapsed: reasoningBlockCollapsed ?? true, + requireCtrlEnterToSend: requireCtrlEnterToSend ?? false, cloudUserInfo, cloudIsAuthenticated: cloudIsAuthenticated ?? false, cloudOrganizations, @@ -2287,6 +2289,7 @@ export class ClineProvider maxConcurrentFileReads: stateValues.maxConcurrentFileReads ?? 5, historyPreviewCollapsed: stateValues.historyPreviewCollapsed ?? false, reasoningBlockCollapsed: stateValues.reasoningBlockCollapsed ?? true, + requireCtrlEnterToSend: stateValues.requireCtrlEnterToSend ?? false, cloudUserInfo, cloudIsAuthenticated, sharingEnabled, diff --git a/src/shared/ExtensionMessage.ts b/src/shared/ExtensionMessage.ts index 2535a78832..e892c72075 100644 --- a/src/shared/ExtensionMessage.ts +++ b/src/shared/ExtensionMessage.ts @@ -131,6 +131,7 @@ export interface ExtensionMessage { | "interactionRequired" | "browserSessionUpdate" | "browserSessionNavigate" + | "requireCtrlEnterToSend" text?: string payload?: any // Add a generic payload for now, can refine later // Checkpoint warning message @@ -138,6 +139,7 @@ export interface ExtensionMessage { type: "WAIT_TIMEOUT" | "INIT_TIMEOUT" timeout: number } + bool?: boolean action?: | "chatButtonClicked" | "settingsButtonClicked" @@ -239,7 +241,6 @@ export type ExtensionState = Pick< | "alwaysAllowFollowupQuestions" | "alwaysAllowExecute" | "alwaysAllowUpdateTodoList" - | "requireCtrlEnterToSend" | "followupAutoApproveTimeoutMs" | "allowedCommands" | "deniedCommands" @@ -289,6 +290,7 @@ export type ExtensionState = Pick< | "includeCurrentTime" | "includeCurrentCost" | "maxGitStatusFiles" + | "requireCtrlEnterToSend" > & { version: string clineMessages: ClineMessage[] diff --git a/webview-ui/src/context/ExtensionStateContext.tsx b/webview-ui/src/context/ExtensionStateContext.tsx index c96d0541e9..af80d4b174 100644 --- a/webview-ui/src/context/ExtensionStateContext.tsx +++ b/webview-ui/src/context/ExtensionStateContext.tsx @@ -275,7 +275,7 @@ export const ExtensionStateContextProvider: React.FC<{ children: React.ReactNode alwaysAllowUpdateTodoList: true, includeDiagnosticMessages: true, maxDiagnosticMessages: 50, - requireCtrlEnterToSend: false, + requireCtrlEnterToSend: false, // Default to expected value openRouterImageApiKey: "", openRouterImageGenerationSelectedModel: "", includeCurrentTime: true, @@ -425,6 +425,10 @@ export const ExtensionStateContextProvider: React.FC<{ children: React.ReactNode } break } + case "requireCtrlEnterToSend": { + setState((prevState) => ({ ...prevState, requireCtrlEnterToSend: message.bool ?? false })) + break + } } }, [setListApiConfigMeta],