fix: persist invalid draft forward routes

- Fix _validate_reachable_outcomes to skip unknown nodes (root cause)
- Add safety net in validate_workflow_draft for diagnostics exceptions
- Add test proving forward-route edits persist as invalid
This commit is contained in:
lda
2026-06-28 03:26:56 +07:00 Verified
parent dd3772b3df
commit 6259a05af0
3 changed files with 123 additions and 2 deletions
+3 -1
View File
@@ -192,7 +192,9 @@ def _validate_reachable_outcomes(
reachable = reachable_node_ids(workflow.start, workflow.edges, nodes_by_id)
for node_id in reachable:
node = nodes_by_id[node_id]
node = nodes_by_id.get(node_id)
if node is None:
continue
declared_outcomes = declared_outcomes_for_step(node, node_defs)
wired = outgoing.get(node_id, set())
missing = declared_outcomes - wired