Skip to content

Conversation

@pedroigorjs
Copy link
Contributor

This pull request introduces support for tracking and serializing child executions within the execution engine. The changes make it possible for each execution to maintain a record of its child executions, enhancing traceability and introspection of execution flows, especially for dynamic flow nodes.

Execution tracking and serialization:

  • Added a child_executions attribute to the Execution class, along with methods to add and serialize child executions, enabling hierarchical tracking of execution flows.
  • Updated the ExecutionSchema in schemas.py to include an optional child_executions field for serialization and API responses.

Flow execution enhancements:

  • Modified the executor logic to pass parent_execution and parent_node_id through the execution stack, and to record child executions when flows are invoked.
  • Updated the dynamic flow node's run method to accept and forward parent_execution and parent_node_id, ensuring proper registration of child executions during flow invocation.

@pedroigorjs pedroigorjs self-assigned this Dec 5, 2025
@pedroigorjs pedroigorjs added the enhancement New feature or request label Dec 5, 2025
@pedroigorjs pedroigorjs changed the title [WIP] Add Child Executions To FlowV0 [WIP] Add Child Executions From FlowV0 Dec 5, 2025
@gustavo-batista gustavo-batista marked this pull request as ready for review January 6, 2026 12:45
@github-actions
Copy link

github-actions bot commented Jan 6, 2026

coverage

Coverage Report
FileStmtsMissCoverMissing
retrack/engine
   base.py55493%37, 107, 114, 117
   executor.py1281092%62, 74–75, 157, 225, 271, 288, 292, 304, 317
   request_manager.py67790%17, 36, 55, 70–71, 154, 157
   rule.py50394%87, 109, 116
retrack/nodes
   check.py41393%23, 26, 89
   constants.py92397%122, 125, 170
   math.py43198%75
retrack/nodes/dynamic
   base.py16194%26
   csv_table.py43295%59, 62
   flow.py44198%18
retrack/utils
   component_registry.py1051883%77–78, 81–82, 85–86, 91–92, 101, 112–123
   exceptions.py28389%106–127
   graph.py60788%35, 46, 59, 61, 63, 84, 86
   registry.py34682%23–26, 38, 43, 51
retrack/validators
   base.py4175%14
   node_exists.py15287%36, 38
   node_validator.py33391%31, 56–57
TOTAL14187595% 

Tests Skipped Failures Errors Time
91 0 💤 0 ❌ 0 🔥 4.123s ⏱️

@github-actions
Copy link

github-actions bot commented Jan 6, 2026

coverage

Coverage Report
FileStmtsMissCoverMissing
retrack/engine
   base.py55493%37, 107, 114, 117
   executor.py1281092%62, 74–75, 157, 225, 271, 288, 292, 304, 317
   request_manager.py67790%17, 36, 55, 70–71, 154, 157
   rule.py50394%87, 109, 116
retrack/nodes
   check.py41393%23, 26, 89
   constants.py92397%122, 125, 170
   math.py43198%75
retrack/nodes/dynamic
   base.py16194%26
   csv_table.py43295%59, 62
   flow.py44198%18
retrack/utils
   component_registry.py1051883%77–78, 81–82, 85–86, 91–92, 101, 112–123
   exceptions.py28582%17–18, 106–127
   graph.py60788%35, 46, 59, 61, 63, 84, 86
   registry.py34682%23–26, 38, 43, 51
retrack/validators
   base.py4175%14
   node_exists.py15287%36, 38
   node_validator.py33391%31, 56–57
TOTAL14187795% 

Tests Skipped Failures Errors Time
91 0 💤 0 ❌ 0 🔥 4.996s ⏱️

…xecutions

* origin/main:
  Bump version to 3.3.3 in pyproject.toml
  Bump version to 3.3.3a1 in pyproject.toml
  Return empty Series for empty differences in DifferenceBetweenDates
  Add test for DifferenceBetweenDates with empty input Series
  bump version to 3.3.3
  Return empty Series for empty differences
@github-actions
Copy link

github-actions bot commented Jan 6, 2026

coverage

Coverage Report
FileStmtsMissCoverMissing
retrack/engine
   base.py55493%37, 107, 114, 117
   executor.py1281092%62, 74–75, 157, 225, 271, 288, 292, 304, 317
   request_manager.py67790%17, 36, 55, 70–71, 154, 157
   rule.py50394%87, 109, 116
retrack/nodes
   check.py41393%23, 26, 89
   constants.py92397%122, 125, 170
   math.py43198%75
retrack/nodes/dynamic
   base.py16194%26
   csv_table.py43295%59, 62
   flow.py44198%18
retrack/utils
   component_registry.py1051883%77–78, 81–82, 85–86, 91–92, 101, 112–123
   exceptions.py28582%17–18, 106–127
   graph.py60788%35, 46, 59, 61, 63, 84, 86
   registry.py34682%23–26, 38, 43, 51
retrack/validators
   base.py4175%14
   node_exists.py15287%36, 38
   node_validator.py33391%31, 56–57
TOTAL14187795% 

Tests Skipped Failures Errors Time
91 0 💤 0 ❌ 0 🔥 4.906s ⏱️

@github-actions
Copy link

github-actions bot commented Jan 6, 2026

coverage

Coverage Report
FileStmtsMissCoverMissing
retrack/engine
   base.py55493%37, 107, 114, 117
   executor.py1281092%62, 74–75, 157, 225, 271, 288, 292, 304, 317
   request_manager.py67790%17, 36, 55, 70–71, 154, 157
   rule.py50394%87, 109, 116
retrack/nodes
   check.py41393%23, 26, 89
   constants.py92397%122, 125, 170
   math.py43198%75
retrack/nodes/dynamic
   base.py16194%26
   csv_table.py43295%59, 62
   flow.py44198%18
retrack/utils
   component_registry.py1051883%77–78, 81–82, 85–86, 91–92, 101, 112–123
   exceptions.py28389%106–127
   graph.py60788%35, 46, 59, 61, 63, 84, 86
   registry.py34682%23–26, 38, 43, 51
retrack/validators
   base.py4175%14
   node_exists.py15287%36, 38
   node_validator.py33391%31, 56–57
TOTAL14187595% 

Tests Skipped Failures Errors Time
91 0 💤 0 ❌ 0 🔥 3.839s ⏱️

@github-actions
Copy link

github-actions bot commented Jan 6, 2026

coverage

Coverage Report
FileStmtsMissCoverMissing
retrack/engine
   base.py55493%37, 107, 114, 117
   executor.py1281092%62, 74–75, 157, 225, 271, 288, 292, 304, 317
   request_manager.py67790%17, 36, 55, 70–71, 154, 157
   rule.py50394%87, 109, 116
retrack/nodes
   check.py41393%23, 26, 89
   constants.py92397%122, 125, 170
   math.py43198%75
retrack/nodes/dynamic
   base.py16194%26
   csv_table.py43295%59, 62
   flow.py44198%18
retrack/utils
   component_registry.py1051883%77–78, 81–82, 85–86, 91–92, 101, 112–123
   exceptions.py28582%17–18, 106–127
   graph.py60788%35, 46, 59, 61, 63, 84, 86
   registry.py34682%23–26, 38, 43, 51
retrack/validators
   base.py4175%14
   node_exists.py15287%36, 38
   node_validator.py33391%31, 56–57
TOTAL14187795% 

Tests Skipped Failures Errors Time
91 0 💤 0 ❌ 0 🔥 4.999s ⏱️

@github-actions
Copy link

github-actions bot commented Jan 6, 2026

coverage

Coverage Report
FileStmtsMissCoverMissing
retrack/engine
   base.py55493%37, 107, 114, 117
   executor.py1281092%62, 74–75, 157, 225, 271, 288, 292, 304, 317
   request_manager.py67790%17, 36, 55, 70–71, 154, 157
   rule.py50394%87, 109, 116
retrack/nodes
   check.py41393%23, 26, 89
   constants.py92397%122, 125, 170
   math.py43198%75
retrack/nodes/dynamic
   base.py16194%26
   csv_table.py43295%59, 62
   flow.py44198%18
retrack/utils
   component_registry.py1051883%77–78, 81–82, 85–86, 91–92, 101, 112–123
   exceptions.py28389%106–127
   graph.py60788%35, 46, 59, 61, 63, 84, 86
   registry.py34682%23–26, 38, 43, 51
retrack/validators
   base.py4175%14
   node_exists.py15287%36, 38
   node_validator.py33391%31, 56–57
TOTAL14187595% 

Tests Skipped Failures Errors Time
91 0 💤 0 ❌ 0 🔥 4.034s ⏱️

@gustavo-batista gustavo-batista changed the title [WIP] Add Child Executions From FlowV0 Add Child Executions From FlowV0 Jan 7, 2026
@github-actions
Copy link

github-actions bot commented Jan 7, 2026

coverage

Coverage Report
FileStmtsMissCoverMissing
retrack/engine
   base.py55493%37, 107, 114, 117
   executor.py1281092%62, 74–75, 157, 225, 271, 288, 292, 304, 317
   request_manager.py67790%17, 36, 55, 70–71, 154, 157
   rule.py50394%87, 109, 116
retrack/nodes
   check.py41393%23, 26, 89
   constants.py92397%122, 125, 170
   math.py43198%75
retrack/nodes/dynamic
   base.py16194%26
   csv_table.py43295%59, 62
   flow.py44198%18
retrack/utils
   component_registry.py1051883%77–78, 81–82, 85–86, 91–92, 101, 112–123
   exceptions.py28582%17–18, 106–127
   graph.py60788%35, 46, 59, 61, 63, 84, 86
   registry.py34682%23–26, 38, 43, 51
retrack/validators
   base.py4175%14
   node_exists.py15287%36, 38
   node_validator.py33391%31, 56–57
TOTAL14187795% 

Tests Skipped Failures Errors Time
91 0 💤 0 ❌ 0 🔥 4.902s ⏱️

@github-actions
Copy link

github-actions bot commented Jan 7, 2026

coverage

Coverage Report
FileStmtsMissCoverMissing
retrack/engine
   base.py55493%37, 107, 114, 117
   executor.py1281092%62, 74–75, 157, 225, 271, 288, 292, 304, 317
   request_manager.py67790%17, 36, 55, 70–71, 154, 157
   rule.py50394%87, 109, 116
retrack/nodes
   check.py41393%23, 26, 89
   constants.py92397%122, 125, 170
   math.py43198%75
retrack/nodes/dynamic
   base.py16194%26
   csv_table.py43295%59, 62
   flow.py44198%18
retrack/utils
   component_registry.py1051883%77–78, 81–82, 85–86, 91–92, 101, 112–123
   exceptions.py28389%106–127
   graph.py60788%35, 46, 59, 61, 63, 84, 86
   registry.py34682%23–26, 38, 43, 51
retrack/validators
   base.py4175%14
   node_exists.py15287%36, 38
   node_validator.py33391%31, 56–57
TOTAL14187595% 

Tests Skipped Failures Errors Time
91 0 💤 0 ❌ 0 🔥 3.675s ⏱️

@gustavo-batista gustavo-batista merged commit fcc8fd9 into main Jan 7, 2026
3 checks passed
@gustavo-batista gustavo-batista deleted the f/add-flow-v0-child-executions branch January 7, 2026 12:35
gustavo-batista added a commit that referenced this pull request Jan 7, 2026
gustavo-batista added a commit that referenced this pull request Jan 7, 2026
* Revert "Add Child Executions From FlowV0 (#50)"

This reverts commit fcc8fd9.

* Update version to 3.3.5
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants