Skip to content

Fix #2503: implement WorkflowStep tracking in workflow trace API#925

Merged
AlexMikhalev merged 2 commits into
mainfrom
task/2503-workflow-step-tracking
Jun 29, 2026
Merged

Fix #2503: implement WorkflowStep tracking in workflow trace API#925
AlexMikhalev merged 2 commits into
mainfrom
task/2503-workflow-step-tracking

Conversation

@AlexMikhalev

Copy link
Copy Markdown
Contributor

Summary

The `/api/workflow/:id/trace` endpoint was returning an empty `steps: []` array (hardcoded TODO). This PR implements proper step tracking so callers can diagnose workflow failures.

Changes:

  • Add `WorkflowStep` struct with `id`, `name`, `status`, `started_at`, `completed_at`, `output`
  • Add `StepStatus` enum (`Running`, `Completed`, `Failed`)
  • Add `steps: Vec` to `WorkflowStatus` (initialised empty in `create_workflow_session`)
  • Add `record_workflow_step()` public helper for workflow handlers to push step records
  • Fix `get_execution_trace()` to serialise `status.steps` instead of `[]`
  • Update `simple_workflow_test.rs` to include the new `steps` field
  • Add 3 unit tests covering: empty initial state, single-step round-trip, multi-step ordering

Verification

```bash
cargo test -p terraphim_server --lib # 3 new unit tests pass
cargo test -p terraphim_server # all 11 integration tests pass
cargo clippy -p terraphim_server -- -D warnings # clean
cargo fmt -p terraphim_server -- --check # clean
```

Refs terraphim/terraphim-ai#2503 (Gitea)

@AlexMikhalev AlexMikhalev force-pushed the task/2503-workflow-step-tracking branch 2 times, most recently from 9cf558c to 086a06b Compare June 25, 2026 03:31
Test User and others added 2 commits June 26, 2026 10:28
…Refs #2503

Add WorkflowStep and StepStatus types to the workflow module so that
individual execution steps can be recorded against a running workflow.
The /api/workflow/:id/trace endpoint now returns the accumulated steps
instead of a hardcoded empty array.

Changes:
- Add WorkflowStep struct (id, name, status, started_at, completed_at, output)
- Add StepStatus enum (Running, Completed, Failed)
- Add steps: Vec<WorkflowStep> to WorkflowStatus
- Add record_workflow_step() public helper for handlers to push step records
- Fix get_execution_trace() to serialise status.steps instead of []
- Update create_workflow_session() to initialise steps: vec![]
- Fix existing simple_workflow_test.rs to include the new field
- Add 3 unit tests: empty initial state, single step round-trip, ordering

Co-Authored-By: Terraphim AI <noreply@anthropic.com>
…xecutor Refs #2503

Call record_workflow_step() after each step in execute_prompt_chain so
WorkflowStatus.steps is populated during real workflow execution.  Also
replace the hardcoded duration_ms with the actual elapsed time.
@AlexMikhalev AlexMikhalev force-pushed the task/2503-workflow-step-tracking branch from 52e914e to 4a81b9a Compare June 26, 2026 08:29
@AlexMikhalev AlexMikhalev merged commit e3231f8 into main Jun 29, 2026
@AlexMikhalev AlexMikhalev deleted the task/2503-workflow-step-tracking branch June 29, 2026 18:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant