diff --git a/apps/sim/hooks/queries/workflows.ts b/apps/sim/hooks/queries/workflows.ts index 97d3df0b2b5..cc9e7b0b696 100644 --- a/apps/sim/hooks/queries/workflows.ts +++ b/apps/sim/hooks/queries/workflows.ts @@ -113,10 +113,15 @@ export function useWorkflows( }) useEffect(() => { - if (syncRegistry && scope === 'active' && workspaceId && query.status === 'pending') { + if ( + syncRegistry && + scope === 'active' && + workspaceId && + (query.status === 'pending' || query.isPlaceholderData) + ) { beginMetadataLoad(workspaceId) } - }, [syncRegistry, scope, workspaceId, query.status, beginMetadataLoad]) + }, [syncRegistry, scope, workspaceId, query.status, query.isPlaceholderData, beginMetadataLoad]) useEffect(() => { if ( @@ -124,11 +129,20 @@ export function useWorkflows( scope === 'active' && workspaceId && query.status === 'success' && - query.data + query.data && + !query.isPlaceholderData ) { completeMetadataLoad(workspaceId, query.data) } - }, [syncRegistry, scope, workspaceId, query.status, query.data, completeMetadataLoad]) + }, [ + syncRegistry, + scope, + workspaceId, + query.status, + query.data, + query.isPlaceholderData, + completeMetadataLoad, + ]) useEffect(() => { if (syncRegistry && scope === 'active' && workspaceId && query.status === 'error') { diff --git a/apps/sim/hooks/queries/workspace.ts b/apps/sim/hooks/queries/workspace.ts index a3eb1bf5e6d..b4722aca3af 100644 --- a/apps/sim/hooks/queries/workspace.ts +++ b/apps/sim/hooks/queries/workspace.ts @@ -86,14 +86,9 @@ export function useCreateWorkspace() { const data = await response.json() return data.workspace as Workspace }, - onSuccess: (data) => { - queryClient.invalidateQueries({ queryKey: workspaceKeys.all }) - if (data?.id) { - queryClient.removeQueries({ queryKey: workspaceKeys.detail(data.id) }) - queryClient.removeQueries({ queryKey: workspaceKeys.settings(data.id) }) - queryClient.removeQueries({ queryKey: workspaceKeys.permissions(data.id) }) - queryClient.removeQueries({ queryKey: workspaceKeys.members(data.id) }) - } + onSuccess: () => { + queryClient.invalidateQueries({ queryKey: workspaceKeys.lists() }) + queryClient.invalidateQueries({ queryKey: workspaceKeys.adminLists() }) }, }) } diff --git a/apps/sim/lib/copilot/client-sse/handlers.ts b/apps/sim/lib/copilot/client-sse/handlers.ts index 0330853d69c..7705e1cf3dd 100644 --- a/apps/sim/lib/copilot/client-sse/handlers.ts +++ b/apps/sim/lib/copilot/client-sse/handlers.ts @@ -3,6 +3,7 @@ import { STREAM_STORAGE_KEY } from '@/lib/copilot/constants' import { asRecord } from '@/lib/copilot/orchestrator/sse/utils' import type { SSEEvent } from '@/lib/copilot/orchestrator/types' import { + abortAllInProgressTools, isBackgroundState, isRejectedState, isReviewState, @@ -956,7 +957,7 @@ export const sseHandlers: Record = { })) context.streamComplete = true }, - stream_end: (_data, context, _get, set) => { + stream_end: (_data, context, get, set) => { if (context.pendingContent) { if (context.isInThinkingBlock && context.currentThinkingBlock) { appendThinkingContent(context, context.pendingContent) @@ -967,6 +968,7 @@ export const sseHandlers: Record = { } finalizeThinkingBlock(context) updateStreamingMessage(set, context) + abortAllInProgressTools(set, get) }, default: () => {}, }