From e7abcd34df5d77e395d057a60b0b159a28a098e8 Mon Sep 17 00:00:00 2001 From: Siddharth Ganesan Date: Thu, 12 Feb 2026 12:05:53 -0800 Subject: [PATCH] Fix --- apps/sim/lib/copilot/client-sse/handlers.ts | 12 +++++------- .../lib/copilot/client-sse/subagent-handlers.ts | 12 +++++------- apps/sim/lib/copilot/client-sse/tool-effects.ts | 17 +++++++++++++++-- 3 files changed, 25 insertions(+), 16 deletions(-) diff --git a/apps/sim/lib/copilot/client-sse/handlers.ts b/apps/sim/lib/copilot/client-sse/handlers.ts index cd462bd8b..13a4f5fc2 100644 --- a/apps/sim/lib/copilot/client-sse/handlers.ts +++ b/apps/sim/lib/copilot/client-sse/handlers.ts @@ -332,13 +332,11 @@ export const sseHandlers: Record = { } } - if (targetState === ClientToolCallState.success) { - applyToolEffects({ - effectsRaw: eventData.effects, - toolCall: updatedMap[toolCallId], - resultPayload, - }) - } + applyToolEffects({ + effectsRaw: eventData.effects, + toolCall: updatedMap[toolCallId], + resultPayload, + }) } for (let i = 0; i < context.contentBlocks.length; i++) { diff --git a/apps/sim/lib/copilot/client-sse/subagent-handlers.ts b/apps/sim/lib/copilot/client-sse/subagent-handlers.ts index 5a215c75d..9b494ac3e 100644 --- a/apps/sim/lib/copilot/client-sse/subagent-handlers.ts +++ b/apps/sim/lib/copilot/client-sse/subagent-handlers.ts @@ -358,13 +358,11 @@ export const subAgentSSEHandlers: Record = { }) } - if (targetState === ClientToolCallState.success) { - applyToolEffects({ - effectsRaw: resultData.effects, - toolCall: updatedSubAgentToolCall, - resultPayload, - }) - } + applyToolEffects({ + effectsRaw: resultData.effects, + toolCall: updatedSubAgentToolCall, + resultPayload, + }) } updateToolCallWithSubAgentData(context, get, set, parentToolCallId) diff --git a/apps/sim/lib/copilot/client-sse/tool-effects.ts b/apps/sim/lib/copilot/client-sse/tool-effects.ts index 81508d867..4dfd48eac 100644 --- a/apps/sim/lib/copilot/client-sse/tool-effects.ts +++ b/apps/sim/lib/copilot/client-sse/tool-effects.ts @@ -119,7 +119,21 @@ export function applyToolEffects(params: { resultPayload?: Record }): void { const effects = parseToolEffects(params.effectsRaw) - if (effects.length === 0) return + if (effects.length === 0) { + if (params.toolCall?.name === 'workflow_change' && params.resultPayload) { + const workflowState = resolveWorkflowState({}, params.resultPayload) + if (!workflowState) return + useWorkflowDiffStore + .getState() + .setProposedChanges(workflowState) + .catch((error) => { + logger.error('Failed to apply fallback workflow diff from result payload', { + error: error instanceof Error ? error.message : String(error), + }) + }) + } + return + } for (const effect of effects) { switch (effect.kind) { @@ -159,4 +173,3 @@ export function applyToolEffects(params: { } } } -