From 7658c92cf9038a74fafd5b8a4b3d8f196878832f Mon Sep 17 00:00:00 2001 From: zhsama Date: Fri, 7 Nov 2025 13:17:57 +0800 Subject: [PATCH] feat(trigger): improve trigger node in useOneStepRun for getting system variables --- .../nodes/_base/hooks/use-one-step-run.ts | 27 ++++++++++++++----- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/web/app/components/workflow/nodes/_base/hooks/use-one-step-run.ts b/web/app/components/workflow/nodes/_base/hooks/use-one-step-run.ts index fc377ed28e..77d75ccc4f 100644 --- a/web/app/components/workflow/nodes/_base/hooks/use-one-step-run.ts +++ b/web/app/components/workflow/nodes/_base/hooks/use-one-step-run.ts @@ -282,6 +282,11 @@ const useOneStepRun = ({ }, [isPaused]) const { eventEmitter } = useEventEmitterContextContext() + const isScheduleTriggerNode = data.type === BlockEnum.TriggerSchedule + const isWebhookTriggerNode = data.type === BlockEnum.TriggerWebhook + const isPluginTriggerNode = data.type === BlockEnum.TriggerPlugin + const isTriggerNode = isWebhookTriggerNode || isPluginTriggerNode || isScheduleTriggerNode + const setRunResult = useCallback(async (data: NodeRunResult | null) => { const isPaused = isPausedRef.current @@ -303,11 +308,24 @@ const useOneStepRun = ({ updateNodeInspectRunningState(id, false) if (data?.status === NodeRunningStatus.Succeeded) { invalidLastRun() - if (isStartNode) + if (isStartNode || isTriggerNode) invalidateSysVarValues() invalidateConversationVarValues() // loop, iteration, variable assigner node can update the conversation variables, but to simple the logic(some nodes may also can update in the future), all nodes refresh. } - }, [isRunAfterSingleRun, runningStatus, flowId, id, store, appendNodeInspectVars, updateNodeInspectRunningState, invalidLastRun, isStartNode, invalidateSysVarValues, invalidateConversationVarValues]) + }, [ + isRunAfterSingleRun, + runningStatus, + flowId, + id, + store, + appendNodeInspectVars, + updateNodeInspectRunningState, + invalidLastRun, + isStartNode, + isTriggerNode, + invalidateSysVarValues, + invalidateConversationVarValues, + ]) const { handleNodeDataUpdate }: { handleNodeDataUpdate: (data: any) => void } = useNodeDataUpdate() const setNodeRunning = () => { @@ -352,11 +370,6 @@ const useOneStepRun = ({ } }, []) - const isScheduleTriggerNode = data.type === BlockEnum.TriggerSchedule - const isWebhookTriggerNode = data.type === BlockEnum.TriggerWebhook - const isPluginTriggerNode = data.type === BlockEnum.TriggerPlugin - const isTriggerNode = isWebhookTriggerNode || isPluginTriggerNode || isScheduleTriggerNode - const startTriggerListening = useCallback(() => { if (!isTriggerNode) return