fix: Convert joined signals Dict to List for NodeExecutionState
All checks were successful
Deploy Development / deploy (push) Successful in 50s
Build Test / lint-backend (push) Successful in 0s
Build Test / build-frontend (push) Successful in 22s

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 <noreply@anthropic.com>
This commit is contained in:
Lars 2026-04-04 12:33:58 +02:00
parent e2a132353d
commit c607cd1833

View File

@ -481,12 +481,16 @@ def execute_join_node(
f"Join node {node.id}: Consolidated {executed_count}/{total_count} paths" 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( return NodeExecutionState(
node_id=node.id, node_id=node.id,
status=NodeStatus.EXECUTED, status=NodeStatus.EXECUTED,
analysis_core=consolidated_core_json, analysis_core=consolidated_core_json,
normalized_signals=join_result.consolidated_signals, normalized_signals=consolidated_signals_list,
metadata=join_result.metadata, metadata=join_result.metadata,
started_at=started_at, started_at=started_at,
completed_at=datetime.utcnow().isoformat() completed_at=datetime.utcnow().isoformat()