From 2f65d0439cfc2eb93e6a9746db155f4262fa5bf7 Mon Sep 17 00:00:00 2001 From: Joel Date: Fri, 27 Dec 2024 13:07:55 +0800 Subject: [PATCH] fix: not parall not group by branch --- .../components/workflow/run/tracing-panel.tsx | 2 -- .../run/utils/format-log/parallel/index.ts | 20 +++++++++++++++---- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/web/app/components/workflow/run/tracing-panel.tsx b/web/app/components/workflow/run/tracing-panel.tsx index f8af35219b..1d5f5459e8 100644 --- a/web/app/components/workflow/run/tracing-panel.tsx +++ b/web/app/components/workflow/run/tracing-panel.tsx @@ -30,7 +30,6 @@ const TracingPanel: FC = ({ hideNodeProcessDetail = false, }) => { const treeNodes = list - console.log(treeNodes) const [collapsedNodes, setCollapsedNodes] = useState>(new Set()) const [hoveredParallel, setHoveredParallel] = useState(null) @@ -84,7 +83,6 @@ const TracingPanel: FC = ({ setAgentResultList, } = useLogs() - const renderNode = (node: NodeTracing) => { const isParallelFirstNode = !!node.parallelDetail?.isParallelStartNode if (isParallelFirstNode) { diff --git a/web/app/components/workflow/run/utils/format-log/parallel/index.ts b/web/app/components/workflow/run/utils/format-log/parallel/index.ts index a5ec9412f4..6c276a1e05 100644 --- a/web/app/components/workflow/run/utils/format-log/parallel/index.ts +++ b/web/app/components/workflow/run/utils/format-log/parallel/index.ts @@ -65,10 +65,11 @@ const format = (list: NodeTracing[], t: any): NodeTracing[] => { // console.log(list) const result: NodeTracing[] = [...list] const parallelFirstNodeMap: Record = {} - // list to tree by parent_parallel_start_node_id and parallel_start_node_id + // list to tree by parent_parallel_start_node_id and branch by parallel_start_node_id. Each parallel may has more than one branch. result.forEach((node) => { const parallel_id = node.parallel_id ?? node.execution_metadata?.parallel_id ?? null const parent_parallel_id = node.parent_parallel_id ?? node.execution_metadata?.parent_parallel_id ?? null + const branchStartNodeId = node.parallel_start_node_id ?? node.execution_metadata?.parallel_start_node_id ?? null const parent_parallel_start_node_id = node.parent_parallel_start_node_id ?? node.execution_metadata?.parent_parallel_start_node_id ?? null const isNotInParallel = !parallel_id || node.node_type === BlockEnum.End if (isNotInParallel) @@ -100,10 +101,21 @@ const format = (list: NodeTracing[], t: any): NodeTracing[] => { return } - // append to parallel start node + // append to parallel start node and after the same branch const parallelStartNode = result.find(item => item.node_id === parallelFirstNodeMap[parallel_id]) - if (parallelStartNode && parallelStartNode.parallelDetail && parallelStartNode!.parallelDetail!.children) - parallelStartNode!.parallelDetail!.children.push(node) + if (parallelStartNode && parallelStartNode.parallelDetail && parallelStartNode!.parallelDetail!.children) { + const sameBranchNodesLastIndex = parallelStartNode.parallelDetail.children.findLastIndex((node) => { + const currStartNodeId = node.parallel_start_node_id ?? node.execution_metadata?.parallel_start_node_id ?? null + return currStartNodeId === branchStartNodeId + }) + if (sameBranchNodesLastIndex !== -1) { + parallelStartNode.parallelDetail.children.splice(sameBranchNodesLastIndex + 1, 0, node) + } + else { // new branch + parallelStartNode.parallelDetail.children.push(node) + } + } + // parallelStartNode!.parallelDetail!.children.push(node) }) const filteredInParallelSubNodes = result.filter((node) => {