From 9ee5dfe18548b7251ed86beba1db21b3eb75a2f3 Mon Sep 17 00:00:00 2001 From: Vikhyath Mondreti Date: Mon, 26 Jan 2026 18:47:35 -0800 Subject: [PATCH] improvement(workflow): hide raw json childworkflow span (#3019) --- apps/sim/executor/execution/block-executor.ts | 28 ++++++++++++++++--- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/apps/sim/executor/execution/block-executor.ts b/apps/sim/executor/execution/block-executor.ts index b26f2175b..2cc37a77e 100644 --- a/apps/sim/executor/execution/block-executor.ts +++ b/apps/sim/executor/execution/block-executor.ts @@ -12,6 +12,7 @@ import { EDGE, isSentinelBlockType, isTriggerBehavior, + isWorkflowBlockType, } from '@/executor/constants' import type { DAGNode } from '@/executor/dag/builder' import { ChildWorkflowError } from '@/executor/errors/child-workflow-error' @@ -154,8 +155,8 @@ export class BlockExecutor { this.state.setBlockOutput(node.id, normalizedOutput, duration) if (!isSentinel) { - const filteredOutput = this.filterOutputForLog(block, normalizedOutput) - this.callOnBlockComplete(ctx, node, block, resolvedInputs, filteredOutput, duration) + const displayOutput = this.filterOutputForDisplay(block, normalizedOutput) + this.callOnBlockComplete(ctx, node, block, resolvedInputs, displayOutput, duration) } return normalizedOutput @@ -245,7 +246,8 @@ export class BlockExecutor { ) if (!isSentinel) { - this.callOnBlockComplete(ctx, node, block, input, errorOutput, duration) + const displayOutput = this.filterOutputForDisplay(block, errorOutput) + this.callOnBlockComplete(ctx, node, block, input, displayOutput, duration) } const hasErrorPort = this.hasErrorPortEdge(node) @@ -337,7 +339,9 @@ export class BlockExecutor { block: SerializedBlock, output: NormalizedBlockOutput ): NormalizedBlockOutput { - if (block.metadata?.id === BlockType.HUMAN_IN_THE_LOOP) { + const blockType = block.metadata?.id + + if (blockType === BlockType.HUMAN_IN_THE_LOOP) { const filtered: NormalizedBlockOutput = {} for (const [key, value] of Object.entries(output)) { if (key.startsWith('_')) continue @@ -360,6 +364,22 @@ export class BlockExecutor { return output } + private filterOutputForDisplay( + block: SerializedBlock, + output: NormalizedBlockOutput + ): NormalizedBlockOutput { + const filtered = this.filterOutputForLog(block, output) + + if (isWorkflowBlockType(block.metadata?.id)) { + const { childTraceSpans: _, ...displayOutput } = filtered as { + childTraceSpans?: unknown + } & Record + return displayOutput + } + + return filtered + } + private callOnBlockStart(ctx: ExecutionContext, node: DAGNode, block: SerializedBlock): void { const blockId = node.id const blockName = block.metadata?.name ?? blockId