diff --git a/packages/frontend/editor-ui/src/components/CanvasChat/future/composables/useExecutionData.ts b/packages/frontend/editor-ui/src/components/CanvasChat/future/composables/useExecutionData.ts index 662dc9d90a..5febe89f5b 100644 --- a/packages/frontend/editor-ui/src/components/CanvasChat/future/composables/useExecutionData.ts +++ b/packages/frontend/editor-ui/src/components/CanvasChat/future/composables/useExecutionData.ts @@ -5,7 +5,6 @@ import { Workflow } from 'n8n-workflow'; import { useWorkflowsStore } from '@/stores/workflows.store'; import { useNodeHelpers } from '@/composables/useNodeHelpers'; import { useThrottleFn } from '@vueuse/core'; -import { IN_PROGRESS_EXECUTION_ID } from '@/constants'; import { createLogEntries, deepToRaw, @@ -58,13 +57,6 @@ export function useExecutionData() { }; }); const updateInterval = computed(() => ((execution.value?.tree.length ?? 0) > 10 ? 300 : 0)); - const runStatusList = computed(() => - workflowsStore.workflowExecutionData?.id === IN_PROGRESS_EXECUTION_ID - ? Object.values(workflowsStore.workflowExecutionData?.data?.resultData.runData ?? {}) - .flatMap((tasks) => tasks.map((task) => task.executionStatus ?? '')) - .join('|') - : '', - ); function resetExecutionData() { execData.value = undefined; @@ -78,7 +70,7 @@ export function useExecutionData() { () => workflowsStore.workflowExecutionData?.id, () => workflowsStore.workflowExecutionData?.workflowData.id, () => workflowsStore.workflowExecutionData?.status, - runStatusList, + () => workflowsStore.workflowExecutionResultDataLastUpdate, ], useThrottleFn( () => { diff --git a/packages/frontend/editor-ui/src/stores/assistant.store.ts b/packages/frontend/editor-ui/src/stores/assistant.store.ts index f64c92c2f6..e236b811b6 100644 --- a/packages/frontend/editor-ui/src/stores/assistant.store.ts +++ b/packages/frontend/editor-ui/src/stores/assistant.store.ts @@ -806,11 +806,11 @@ export const useAssistantStore = defineStore(STORES.ASSISTANT, () => { ); watch( - () => workflowsStore.workflowExecutionData?.data?.resultData ?? {}, + () => workflowsStore.workflowExecutionResultDataLastUpdate, () => { workflowExecutionDataStale.value = true; }, - { deep: true, immediate: true }, + { immediate: true }, ); return { diff --git a/packages/frontend/editor-ui/src/stores/workflows.store.ts b/packages/frontend/editor-ui/src/stores/workflows.store.ts index 8c5461f6b6..a6a83fbb4a 100644 --- a/packages/frontend/editor-ui/src/stores/workflows.store.ts +++ b/packages/frontend/editor-ui/src/stores/workflows.store.ts @@ -141,6 +141,7 @@ export const useWorkflowsStore = defineStore(STORES.WORKFLOWS, () => { const activeWorkflowExecution = ref(null); const currentWorkflowExecutions = ref([]); const workflowExecutionData = ref(null); + const workflowExecutionResultDataLastUpdate = ref(); const workflowExecutionPairedItemMappings = ref>>({}); const subWorkflowExecutionError = ref(null); const executionWaitingForWebhook = ref(false); @@ -866,6 +867,7 @@ export const useWorkflowsStore = defineStore(STORES.WORKFLOWS, () => { } workflowExecutionData.value = workflowResultData; workflowExecutionPairedItemMappings.value = getPairedItemsMapping(workflowResultData); + workflowExecutionResultDataLastUpdate.value = Date.now(); } function setWorkflowExecutionRunData(workflowResultData: IRunExecutionData) { @@ -874,6 +876,7 @@ export const useWorkflowsStore = defineStore(STORES.WORKFLOWS, () => { ...workflowExecutionData.value, data: workflowResultData, }; + workflowExecutionResultDataLastUpdate.value = Date.now(); } } @@ -1497,6 +1500,7 @@ export const useWorkflowsStore = defineStore(STORES.WORKFLOWS, () => { executionTime: 0, ...data.data, }); + workflowExecutionResultDataLastUpdate.value = Date.now(); } } @@ -1545,6 +1549,8 @@ export const useWorkflowsStore = defineStore(STORES.WORKFLOWS, () => { tasksData.push(data); } + workflowExecutionResultDataLastUpdate.value = Date.now(); + void trackNodeExecution(pushData); } } @@ -1830,6 +1836,7 @@ export const useWorkflowsStore = defineStore(STORES.WORKFLOWS, () => { currentWorkflowExecutions, workflowExecutionData, workflowExecutionPairedItemMappings, + workflowExecutionResultDataLastUpdate, activeExecutionId: readonlyActiveExecutionId, previousExecutionId: readonlyPreviousExecutionId, setActiveExecutionId,