handle test execution#203
Conversation
There was a problem hiding this comment.
Pull request overview
Implements handling of test executions in the NATS worker (issue #185): adds a test_executions.* queue subscription that runs the requested flow and replies to the requester with an ExecutionResult, including timing, input, and signal-derived result/error. Refactors the value store / executor to persist per-node NodeExecutionResults (so remote node results flow through the same store) and updates flow fixture format to the new sub_flow shape.
Changes:
- New
process_test_execution_messagepath in the worker, a unifiedexecute_flowreturning aFlowRunResult, andRuntimeError↔tucana::shared::Errorconversion helpers; tests rely on a real NATS service added to CI. - Remote runtime returns a
NodeExecutionResultinstead of a rawValue; executor commits results centrally for local/remote nodes and supportsSubFlowcompilation viaexecution_reference(with newT-CORE-000105/106compile errors). - Trace store now stores
NodeExecutionResultper node and renders started/finished timestamps; flow JSON fixtures updated to usesub_flow.startingNodeId.
Reviewed changes
Copilot reviewed 18 out of 19 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| crates/taurus/src/app/worker.rs | Adds test_executions subscription, response building, decode-error handling, and integration tests. |
| crates/taurus/Cargo.toml, Cargo.lock | Adds serde / serde_json dev-deps for fixture loading. |
| crates/taurus-provider/src/providers/remote/nats_remote_runtime.rs | Returns NodeExecutionResult; handles missing node_result. |
| crates/taurus-core/src/types/errors/runtime_error.rs | Adds as_tucana_error / from_tucana_error. |
| crates/taurus-core/src/runtime/remote/mod.rs | RemoteRuntime::execute_remote returns NodeExecutionResult. |
| crates/taurus-core/src/runtime/execution/value_store.rs | Stores per-node NodeExecutionResult; adds insert_node_result and ts helpers. |
| crates/taurus-core/src/runtime/execution/trace.rs | Replaces status enum with full NodeExecutionResult in store entries. |
| crates/taurus-core/src/runtime/execution/store.rs | Removes NodeOutcome; switches to node_results: HashMap<NodeId, NodeExecutionResult>. |
| crates/taurus-core/src/runtime/execution/render.rs | Renders started/finished from new result, plus empty case. |
| crates/taurus-core/src/runtime/engine/executor.rs | Centralizes commit of node results; handles remote NodeExecutionResult. |
| crates/taurus-core/src/runtime/engine/compiler.rs | Compiles SubFlow parameters with new compile-error variants. |
| flows/*.json | Updates fixtures to new sub_flow shape; tidies payload formatting. |
| .github/workflows/build-and-test.yml | Adds NATS service and runs ignored worker integration tests. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
GitLab Pipeline ActionGeneral informationLink to pipeline: https://gitlab.com/code0-tech/development/taurus/-/pipelines/2564029422 Status: Passed Job summariesdocs:previewDocumentation preview available at https://code0-tech.gitlab.io/-/development/telescopium/-/jobs/14615418550/artifacts/out/index.html |
f172ca5 to
680cbd5
Compare
680cbd5 to
99c3af9
Compare
Resolves: #185
failing actions are expected on this pr