Skip to content

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

Open
AlexMikhalev wants to merge 1 commit into
mainfrom
task/2503-workflow-step-tracking
Open

Fix #2503: implement WorkflowStep tracking in workflow trace API#925
AlexMikhalev wants to merge 1 commit 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)

…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>
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