From 7c5a6bd2355aab1ce3da7954fc96f009cd8c1a4a Mon Sep 17 00:00:00 2001 From: Vikhyath Mondreti Date: Sat, 21 Feb 2026 07:48:43 -0800 Subject: [PATCH 1/2] fix(workflow-changes): change detection logic divergence --- .../deploy/hooks/use-change-detection.ts | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/deploy/hooks/use-change-detection.ts b/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/deploy/hooks/use-change-detection.ts index 529a4e2f92..7e4505c80b 100644 --- a/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/deploy/hooks/use-change-detection.ts +++ b/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/deploy/hooks/use-change-detection.ts @@ -57,17 +57,12 @@ export function useChangeDetection({ } } - if (block.triggerMode) { - const triggerConfigValue = blockSubValues?.triggerConfig - if ( - triggerConfigValue && - typeof triggerConfigValue === 'object' && - !subBlocks.triggerConfig - ) { - subBlocks.triggerConfig = { - id: 'triggerConfig', + for (const [subId, value] of Object.entries(blockSubValues)) { + if (!subBlocks[subId] && value !== null && value !== undefined) { + subBlocks[subId] = { + id: subId, type: 'short-input', - value: triggerConfigValue, + value, } } } From d042fbb92f68a792397d86c10241e38bb141cb50 Mon Sep 17 00:00:00 2001 From: Vikhyath Mondreti Date: Sat, 21 Feb 2026 07:49:46 -0800 Subject: [PATCH 2/2] use shared helper --- .../deploy/hooks/use-change-detection.ts | 34 ++----------------- 1 file changed, 3 insertions(+), 31 deletions(-) diff --git a/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/deploy/hooks/use-change-detection.ts b/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/deploy/hooks/use-change-detection.ts index 7e4505c80b..9a90c66332 100644 --- a/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/deploy/hooks/use-change-detection.ts +++ b/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/deploy/hooks/use-change-detection.ts @@ -1,5 +1,6 @@ import { useMemo } from 'react' import { hasWorkflowChanged } from '@/lib/workflows/comparison' +import { mergeSubblockStateWithValues } from '@/lib/workflows/subblocks' import { useVariablesStore } from '@/stores/panel/variables/store' import { useSubBlockStore } from '@/stores/workflows/subblock/store' import { useWorkflowStore } from '@/stores/workflows/workflow/store' @@ -42,39 +43,10 @@ export function useChangeDetection({ const currentState = useMemo((): WorkflowState | null => { if (!workflowId) return null - const blocksWithSubBlocks: WorkflowState['blocks'] = {} - for (const [blockId, block] of Object.entries(blocks)) { - const blockSubValues = subBlockValues?.[blockId] || {} - const subBlocks: Record = {} - - if (block.subBlocks) { - for (const [subId, subBlock] of Object.entries(block.subBlocks)) { - const storedValue = blockSubValues[subId] - subBlocks[subId] = { - ...subBlock, - value: storedValue !== undefined ? storedValue : subBlock.value, - } - } - } - - for (const [subId, value] of Object.entries(blockSubValues)) { - if (!subBlocks[subId] && value !== null && value !== undefined) { - subBlocks[subId] = { - id: subId, - type: 'short-input', - value, - } - } - } - - blocksWithSubBlocks[blockId] = { - ...block, - subBlocks, - } - } + const mergedBlocks = mergeSubblockStateWithValues(blocks, subBlockValues ?? {}) return { - blocks: blocksWithSubBlocks, + blocks: mergedBlocks, edges, loops, parallels,