Status: Resolved
Priority: High
Component: Execution Engine, Reroute Nodes
GitHub Issue: #35 (Closed)
Reporter: Development Team
Date: 2025-01-16
Last Sync: 2025-08-18
Reroute nodes are not properly passing data during graph execution, resulting in None values being propagated instead of the actual data values.
When executing graphs that contain reroute nodes, the data read from those nodes returns None instead of the expected values that should be passed through from the input connection. This breaks data flow continuity in graphs that use reroute nodes for visual organization.
- Create a graph with nodes that produce data
- Insert a reroute node on a connection between data-producing and data-consuming nodes
- Execute the graph
- Observe that the data after the reroute node is None instead of the expected value
Reroute nodes should act as transparent pass-through points, forwarding the exact data received on their input pin to their output pin without modification.
Reroute nodes output None values during execution, effectively breaking the data flow chain.
- Severity: High - Breaks core functionality for graphs using reroute nodes
- User Impact: Users cannot rely on reroute nodes for graph organization
- Workaround: Avoid using reroute nodes in executable graphs
Additional investigation needed for undo/redo operations involving reroute nodes:
-
Execution State After Undo/Redo:
- Need to verify that undo/redo operations maintain proper execution state
- Ensure execution data integrity after command operations
-
Reroute Creation/Deletion Undo:
- Creating a reroute node on an existing connection, then undoing the operation
- Need to verify the original connection is properly restored and functional
- Check that data flow works correctly after reroute removal via undo
- Issue likely in
src/reroute_node.pyexecution handling - May be related to how reroute nodes interface with
src/graph_executor.py - Could be a data serialization/deserialization issue in the execution pipeline
- Undo/redo commands in
src/commands/may need validation for execution state consistency
- RerouteNode Class: Check data passing implementation
- Graph Executor: Verify reroute node handling in execution pipeline
- Command System: Validate undo/redo operations maintain execution integrity
- Connection Restoration: Ensure connections work after reroute removal
- Unit tests for reroute node data passing
- Integration tests for execution with reroute nodes
- Undo/redo system tests with reroute operations
- Connection integrity tests after undo operations
Resolved: August 18, 2025
Resolution Method: Code fixes implemented prior to bug report creation
-
August 7, 2025 - Initial reroute execution fix (commit d4224f7)
- Implemented proper data passing in reroute nodes
- Fixed graph executor integration with reroute nodes
-
August 13, 2025 - Additional serialization fixes (commit 2636a60)
- Fixed reroute node save/load functionality
- Resolved GUI rendering issues
- Preserved is_reroute flag in markdown metadata
Test Results: All 13 reroute-related tests pass successfully
test_reroute_node_execution- Confirms execution data flow works correctly- GUI integration tests - Validates creation, deletion, undo/redo workflows
- Connection system tests - Verifies double-click creation and data passing
- Serialization tests - Confirms proper save/load with reroute state preservation
Technical Outcome:
- Reroute nodes now function as transparent pass-through points
- Data flow continuity maintained across reroute connections
- No more None values returned during execution
- Full integration with undo/redo system and file persistence
Note: This bug was retroactively documented after the fixes were already implemented and tested.