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()