|
| 1 | +# BUG-2025-01-001: Reroute Nodes Return None in Execution |
| 2 | + |
| 3 | +**Status**: Open |
| 4 | +**Priority**: High |
| 5 | +**Component**: Execution Engine, Reroute Nodes |
| 6 | +**Reporter**: Development Team |
| 7 | +**Date**: 2025-01-16 |
| 8 | + |
| 9 | +## Summary |
| 10 | + |
| 11 | +Reroute nodes are not properly passing data during graph execution, resulting in None values being propagated instead of the actual data values. |
| 12 | + |
| 13 | +## Description |
| 14 | + |
| 15 | +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. |
| 16 | + |
| 17 | +## Steps to Reproduce |
| 18 | + |
| 19 | +1. Create a graph with nodes that produce data |
| 20 | +2. Insert a reroute node on a connection between data-producing and data-consuming nodes |
| 21 | +3. Execute the graph |
| 22 | +4. Observe that the data after the reroute node is None instead of the expected value |
| 23 | + |
| 24 | +## Expected Behavior |
| 25 | + |
| 26 | +Reroute nodes should act as transparent pass-through points, forwarding the exact data received on their input pin to their output pin without modification. |
| 27 | + |
| 28 | +## Actual Behavior |
| 29 | + |
| 30 | +Reroute nodes output None values during execution, effectively breaking the data flow chain. |
| 31 | + |
| 32 | +## Impact |
| 33 | + |
| 34 | +- **Severity**: High - Breaks core functionality for graphs using reroute nodes |
| 35 | +- **User Impact**: Users cannot rely on reroute nodes for graph organization |
| 36 | +- **Workaround**: Avoid using reroute nodes in executable graphs |
| 37 | + |
| 38 | +## Related Issues |
| 39 | + |
| 40 | +### Undo/Redo System Interactions |
| 41 | + |
| 42 | +Additional investigation needed for undo/redo operations involving reroute nodes: |
| 43 | + |
| 44 | +1. **Execution State After Undo/Redo**: |
| 45 | + - Need to verify that undo/redo operations maintain proper execution state |
| 46 | + - Ensure execution data integrity after command operations |
| 47 | + |
| 48 | +2. **Reroute Creation/Deletion Undo**: |
| 49 | + - Creating a reroute node on an existing connection, then undoing the operation |
| 50 | + - Need to verify the original connection is properly restored and functional |
| 51 | + - Check that data flow works correctly after reroute removal via undo |
| 52 | + |
| 53 | +## Technical Notes |
| 54 | + |
| 55 | +- Issue likely in `src/reroute_node.py` execution handling |
| 56 | +- May be related to how reroute nodes interface with `src/graph_executor.py` |
| 57 | +- Could be a data serialization/deserialization issue in the execution pipeline |
| 58 | +- Undo/redo commands in `src/commands/` may need validation for execution state consistency |
| 59 | + |
| 60 | +## Investigation Areas |
| 61 | + |
| 62 | +1. **RerouteNode Class**: Check data passing implementation |
| 63 | +2. **Graph Executor**: Verify reroute node handling in execution pipeline |
| 64 | +3. **Command System**: Validate undo/redo operations maintain execution integrity |
| 65 | +4. **Connection Restoration**: Ensure connections work after reroute removal |
| 66 | + |
| 67 | +## Testing Requirements |
| 68 | + |
| 69 | +- Unit tests for reroute node data passing |
| 70 | +- Integration tests for execution with reroute nodes |
| 71 | +- Undo/redo system tests with reroute operations |
| 72 | +- Connection integrity tests after undo operations |
0 commit comments