From 8efdcec7150e324be468053d30dd42a95ead609d Mon Sep 17 00:00:00 2001 From: shaohuzhang1 Date: Mon, 9 Feb 2026 16:16:17 +0800 Subject: [PATCH] fix: AI conversation nodes connected after parallel nodes have different contexts when they first arrive at AI conv ersation nodes in different branches #4778 (#4797) --- apps/application/flow/workflow_manage.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/apps/application/flow/workflow_manage.py b/apps/application/flow/workflow_manage.py index 943ccb00bb7..0bffd0c5b3d 100644 --- a/apps/application/flow/workflow_manage.py +++ b/apps/application/flow/workflow_manage.py @@ -665,15 +665,16 @@ def get_next_node_list(self, current_node, current_node_result): if next_node.properties.get('condition', "AND") == 'AND': if self.dependent_node_been_executed(edge.targetNodeId): up_nodes = self.flow.get_up_nodes(edge.targetNodeId) - up_node_id_list = current_node.up_node_id_list + up_node_id_list = [*current_node.up_node_id_list, current_node.node.id] if up_nodes and len(up_nodes) > 1: up_nodes.sort(key=lambda node: node.id) first = up_nodes[0] up_node_id_list = [n_c for n_c in self.node_context if n_c.node.id == first.id][ 0].up_node_id_list + up_node_id_list = [*up_node_id_list, first.id] node_list.append( self.get_node_cls_by_id(edge.targetNodeId, - [*up_node_id_list, current_node.node.id])) + up_node_id_list)) else: node_list.append( self.get_node_cls_by_id(edge.targetNodeId, @@ -686,15 +687,16 @@ def get_next_node_list(self, current_node, current_node_result): if next_node.properties.get('condition', "AND") == 'AND': if self.dependent_node_been_executed(edge.targetNodeId): up_nodes = self.flow.get_up_nodes(edge.targetNodeId) - up_node_id_list = current_node.up_node_id_list + up_node_id_list = [*current_node.up_node_id_list, current_node.node.id] if up_nodes and len(up_nodes) > 1: up_nodes.sort(key=lambda node: node.id) first = up_nodes[0] up_node_id_list = [n_c for n_c in self.node_context if n_c.node.id == first.id][ 0].up_node_id_list + up_node_id_list = [*up_node_id_list, first.id] node_list.append( self.get_node_cls_by_id(edge.targetNodeId, - [*up_node_id_list, current_node.node.id])) + up_node_id_list)) else: node_list.append( self.get_node_cls_by_id(edge.targetNodeId,