From c607cd1833a1906b8faa1476adafe92b9a11f938 Mon Sep 17 00:00:00 2001 From: Lars Date: Sat, 4 Apr 2026 12:33:58 +0200 Subject: [PATCH] fix: Convert joined signals Dict to List for NodeExecutionState NodeExecutionState expects normalized_signals as List[NormalizedSignal], but join_evaluator returns Dict[str, NormalizedSignal]. Fix: Convert dict to list before returning NodeExecutionState. Co-Authored-By: Claude Opus 4.6 --- backend/workflow_executor.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/backend/workflow_executor.py b/backend/workflow_executor.py index 6a9cca2..511a142 100644 --- a/backend/workflow_executor.py +++ b/backend/workflow_executor.py @@ -481,12 +481,16 @@ def execute_join_node( f"Join node {node.id}: Consolidated {executed_count}/{total_count} paths" ) - # 5. Return NodeExecutionState + # 5. Convert consolidated_signals Dict → List[NormalizedSignal] + # (NodeExecutionState expects List, but join_evaluator returns Dict) + consolidated_signals_list = list(join_result.consolidated_signals.values()) + + # 6. Return NodeExecutionState return NodeExecutionState( node_id=node.id, status=NodeStatus.EXECUTED, analysis_core=consolidated_core_json, - normalized_signals=join_result.consolidated_signals, + normalized_signals=consolidated_signals_list, metadata=join_result.metadata, started_at=started_at, completed_at=datetime.utcnow().isoformat()