From 05e689bc60798f1e1dc1f5ad6c2020452dda7d3e Mon Sep 17 00:00:00 2001 From: Siddharth Ganesan <33737564+Sg312@users.noreply.github.com> Date: Wed, 6 Aug 2025 11:28:34 -0700 Subject: [PATCH] fix(agent): export waits for complete workflow state (#889) * Fix yaml export race condition * Fix env.ts dev --- .../components/export-controls/export-controls.tsx | 4 ++-- apps/sim/stores/workflows/yaml/store.ts | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/control-bar/components/export-controls/export-controls.tsx b/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/control-bar/components/export-controls/export-controls.tsx index 9551dd4ec8..540d607526 100644 --- a/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/control-bar/components/export-controls/export-controls.tsx +++ b/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/control-bar/components/export-controls/export-controls.tsx @@ -37,7 +37,7 @@ export function ExportControls({ disabled = false }: ExportControlsProps) { } } - const handleExportYaml = () => { + const handleExportYaml = async () => { if (!currentWorkflow || !activeWorkflowId) { logger.warn('No active workflow to export') return @@ -45,7 +45,7 @@ export function ExportControls({ disabled = false }: ExportControlsProps) { setIsExporting(true) try { - const yamlContent = getYaml() + const yamlContent = await getYaml() const filename = `${currentWorkflow.name.replace(/[^a-z0-9]/gi, '-')}.yaml` downloadFile(yamlContent, filename, 'text/yaml') diff --git a/apps/sim/stores/workflows/yaml/store.ts b/apps/sim/stores/workflows/yaml/store.ts index 294a2e1ca5..afe8929bb0 100644 --- a/apps/sim/stores/workflows/yaml/store.ts +++ b/apps/sim/stores/workflows/yaml/store.ts @@ -13,7 +13,7 @@ interface WorkflowYamlState { interface WorkflowYamlActions { generateYaml: () => Promise - getYaml: () => string + getYaml: () => Promise refreshYaml: () => void } @@ -151,7 +151,7 @@ export const useWorkflowYamlStore = create()( } }, - getYaml: () => { + getYaml: async () => { // Initialize subscriptions on first use initializeSubscriptions() @@ -160,7 +160,7 @@ export const useWorkflowYamlStore = create()( // Auto-refresh if data is stale (older than 1 second) or never generated if (!lastGenerated || currentTime - lastGenerated > 1000) { - get().generateYaml() + await get().generateYaml() return get().yaml }