Skip to content

Latest commit

 

History

History
106 lines (73 loc) · 4.17 KB

File metadata and controls

106 lines (73 loc) · 4.17 KB

BUG-2025-01-001: Reroute Nodes Return None in Execution

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

Summary

Reroute nodes are not properly passing data during graph execution, resulting in None values being propagated instead of the actual data values.

Description

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.

Steps to Reproduce

  1. Create a graph with nodes that produce data
  2. Insert a reroute node on a connection between data-producing and data-consuming nodes
  3. Execute the graph
  4. Observe that the data after the reroute node is None instead of the expected value

Expected Behavior

Reroute nodes should act as transparent pass-through points, forwarding the exact data received on their input pin to their output pin without modification.

Actual Behavior

Reroute nodes output None values during execution, effectively breaking the data flow chain.

Impact

  • 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

Related Issues

Undo/Redo System Interactions

Additional investigation needed for undo/redo operations involving reroute nodes:

  1. Execution State After Undo/Redo:

    • Need to verify that undo/redo operations maintain proper execution state
    • Ensure execution data integrity after command operations
  2. 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

Technical Notes

  • Issue likely in src/reroute_node.py execution 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

Investigation Areas

  1. RerouteNode Class: Check data passing implementation
  2. Graph Executor: Verify reroute node handling in execution pipeline
  3. Command System: Validate undo/redo operations maintain execution integrity
  4. Connection Restoration: Ensure connections work after reroute removal

Testing Requirements

  • 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

Resolution

Resolved: August 18, 2025
Resolution Method: Code fixes implemented prior to bug report creation

Fix Timeline

  1. August 7, 2025 - Initial reroute execution fix (commit d4224f7)

    • Implemented proper data passing in reroute nodes
    • Fixed graph executor integration with reroute nodes
  2. 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

Verification

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.