Skip to content

Commit b0c1862

Browse files
waleedlatif1claude
andcommitted
fix(logs): audit follow-ups — render side-effect, stats invalidation, enhanced spread order
- Move onActiveTabChange call from render into useEffect to avoid side-effects during render (StrictMode safety). - Re-add logKeys.stats() invalidation to cancel/retry mutations so the dashboard reflects status flips immediately. - Reorder enhanced: true after ...execData spread in detail and by-execution routes so the literal discriminator is never overwritten by stale execData. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
1 parent 3bbf9f2 commit b0c1862

4 files changed

Lines changed: 8 additions & 8 deletions

File tree

apps/sim/app/api/logs/[id]/route.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -139,8 +139,8 @@ export const GET = withRouteHandler(
139139
hasPendingPause: false,
140140
executionData: {
141141
totalDuration: jobLog.totalDurationMs,
142-
enhanced: true as const,
143142
...execData,
143+
enhanced: true as const,
144144
},
145145
files: null,
146146
}
@@ -191,8 +191,8 @@ export const GET = withRouteHandler(
191191
hasPendingPause,
192192
executionData: {
193193
totalDuration: log.totalDurationMs,
194-
enhanced: true as const,
195194
...((log.executionData as Record<string, unknown> | null) ?? {}),
195+
enhanced: true as const,
196196
},
197197
files: log.files ?? null,
198198
}

apps/sim/app/api/logs/by-execution/[executionId]/route.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -147,8 +147,8 @@ export const GET = withRouteHandler(
147147
hasPendingPause: false,
148148
executionData: {
149149
totalDuration: jobLog.totalDurationMs,
150-
enhanced: true as const,
151150
...execData,
151+
enhanced: true as const,
152152
},
153153
files: null,
154154
}
@@ -199,8 +199,8 @@ export const GET = withRouteHandler(
199199
hasPendingPause,
200200
executionData: {
201201
totalDuration: log.totalDurationMs,
202-
enhanced: true as const,
203202
...((log.executionData as Record<string, unknown> | null) ?? {}),
203+
enhanced: true as const,
204204
},
205205
files: log.files ?? null,
206206
}

apps/sim/app/workspace/[workspaceId]/logs/components/log-details/log-details.tsx

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -313,11 +313,9 @@ export function LogDetailsContent({ log, onActiveTabChange }: LogDetailsContentP
313313

314314
const resolvedTab: LogDetailsTab = activeTab === 'trace' && !showTraceTab ? 'overview' : activeTab
315315

316-
const prevResolvedTabRef = useRef<LogDetailsTab>(resolvedTab)
317-
if (prevResolvedTabRef.current !== resolvedTab) {
318-
prevResolvedTabRef.current = resolvedTab
316+
useEffect(() => {
319317
onActiveTabChange?.(resolvedTab)
320-
}
318+
}, [resolvedTab, onActiveTabChange])
321319

322320
const workflowOutput = useMemo(() => {
323321
const executionData = log.executionData as { finalOutput?: Record<string, unknown> } | undefined

apps/sim/hooks/queries/logs.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -346,6 +346,7 @@ export function useCancelExecution() {
346346
onSettled: () => {
347347
queryClient.invalidateQueries({ queryKey: logKeys.lists() })
348348
queryClient.invalidateQueries({ queryKey: logKeys.details() })
349+
queryClient.invalidateQueries({ queryKey: logKeys.stats() })
349350
},
350351
})
351352
}
@@ -374,6 +375,7 @@ export function useRetryExecution() {
374375
onSettled: () => {
375376
queryClient.invalidateQueries({ queryKey: logKeys.lists() })
376377
queryClient.invalidateQueries({ queryKey: logKeys.details() })
378+
queryClient.invalidateQueries({ queryKey: logKeys.stats() })
377379
},
378380
})
379381
}

0 commit comments

Comments
 (0)