diff --git a/src/core/assistant-message/presentAssistantMessage.ts b/src/core/assistant-message/presentAssistantMessage.ts index 693327a022e..df97eccab79 100644 --- a/src/core/assistant-message/presentAssistantMessage.ts +++ b/src/core/assistant-message/presentAssistantMessage.ts @@ -516,9 +516,11 @@ export async function presentAssistantMessage(cline: Task) { const toolCallId = (block as any).id const toolProtocol = toolCallId ? TOOL_PROTOCOL.NATIVE : TOOL_PROTOCOL.XML - // Multiple native tool calls feature is on hold - always disabled - // Previously resolved from experiments.isEnabled(..., EXPERIMENT_IDS.MULTIPLE_NATIVE_TOOL_CALLS) - const isMultipleNativeToolCallsEnabled = false + // Check experimental setting for multiple native tool calls + const isMultipleNativeToolCallsEnabled = experiments.isEnabled( + state?.experiments ?? {}, + EXPERIMENT_IDS.MULTIPLE_NATIVE_TOOL_CALLS, + ) // Store approval feedback to merge into tool result (GitHub #10465) let approvalFeedback: { text: string; images?: string[] } | undefined diff --git a/src/core/task/Task.ts b/src/core/task/Task.ts index 2ad2ca10b3c..768ce83fc1c 100644 --- a/src/core/task/Task.ts +++ b/src/core/task/Task.ts @@ -4215,9 +4215,11 @@ export class Task extends EventEmitter implements TaskLike { allowedFunctionNames = toolsResult.allowedFunctionNames } - // Parallel tool calls are disabled - feature is on hold - // Previously resolved from experiments.isEnabled(..., EXPERIMENT_IDS.MULTIPLE_NATIVE_TOOL_CALLS) - const parallelToolCallsEnabled = false + // Resolve parallel tool calls setting from experiment (will move to per-API-profile setting later) + const parallelToolCallsEnabled = experiments.isEnabled( + state?.experiments ?? {}, + EXPERIMENT_IDS.MULTIPLE_NATIVE_TOOL_CALLS, + ) const metadata: ApiHandlerCreateMessageMetadata = { mode: mode, diff --git a/webview-ui/src/components/settings/ExperimentalSettings.tsx b/webview-ui/src/components/settings/ExperimentalSettings.tsx index 4ca2b119aa4..f5f2d57c22f 100644 --- a/webview-ui/src/components/settings/ExperimentalSettings.tsx +++ b/webview-ui/src/components/settings/ExperimentalSettings.tsx @@ -51,8 +51,6 @@ export const ExperimentalSettings = ({
{Object.entries(experimentConfigsMap) .filter(([key]) => key in EXPERIMENT_IDS) - // Hide MULTIPLE_NATIVE_TOOL_CALLS - feature is on hold - .filter(([key]) => key !== "MULTIPLE_NATIVE_TOOL_CALLS") .map((config) => { // Use the same translation key pattern as ExperimentalFeature const experimentKey = config[0]