The workflows table has three tracking columns that are never populated:
last_run_at (timestamptz)
last_run_status (text, constrained to: success, partial, failed, skipped)
last_run_error (text)
All 14 active workflows currently show NULL for all three fields. The schema is ready — including a CHECK constraint on valid status values — but Conductor never writes to them.
Expected behavior
When Conductor executes a workflow:
- On start:
UPDATE workflows SET last_run_at = now(), last_run_status = NULL, last_run_error = NULL WHERE id = <wf_id>;
- On completion:
UPDATE workflows SET last_run_status = '<outcome>', last_run_error = <error_or_null> WHERE id = <wf_id>;
Why it matters
- D100 audit and operational dashboards can't show "last ran X days ago" or detect stale workflows
- No way to distinguish "never run" from "ran successfully but long ago"
- The
last_run_error field is valuable for diagnosing failed runs without digging through logs
Scope
Two UPDATE calls in Conductor's workflow execution path — minimal change.
The
workflowstable has three tracking columns that are never populated:last_run_at(timestamptz)last_run_status(text, constrained to: success, partial, failed, skipped)last_run_error(text)All 14 active workflows currently show NULL for all three fields. The schema is ready — including a CHECK constraint on valid status values — but Conductor never writes to them.
Expected behavior
When Conductor executes a workflow:
UPDATE workflows SET last_run_at = now(), last_run_status = NULL, last_run_error = NULL WHERE id = <wf_id>;UPDATE workflows SET last_run_status = '<outcome>', last_run_error = <error_or_null> WHERE id = <wf_id>;Why it matters
last_run_errorfield is valuable for diagnosing failed runs without digging through logsScope
Two UPDATE calls in Conductor's workflow execution path — minimal change.