Summary
A run created via runs_create and marked completed is a bare record — it has no started_at/finished_at timestamps, no metrics payload, no time-series data, and no link to an external tracking system (trackio_run_uri, trackio_host_id). For a system that supports experiment dashboards and metric charts, the run object carries none of the data those views need to render.
Steps to reproduce
runs_create(project_id, config_json={...}) — creates a run with status: "pending"
runs_update(status="completed") — marks it done
runs_get(run) — inspect the result
Actual result
{
"id": "01KTH7GRFQ65B7XX74MA6K9YWG",
"project_id": "01KTAVZNCZGH1D9TJXAMWA636X",
"config_json": "{...}",
"status": "completed",
"created_at": "2026-06-07T14:24:18Z"
}
Missing fields:
started_at — null/absent
finished_at — null/absent
metrics — no metric series or summary
trackio_run_uri — no external tracker link
trackio_host_id — no host association
Expected behavior
A completed run should have:
started_at and finished_at timestamps (even if set manually or by the worker that executed it)
- A metrics payload or at minimum a
trackio_run_uri pointing to where metrics live
- If
runs_update sets status to completed, it should require or auto-set finished_at
Impact
- The
experiment_dash overview widget (used in experiment phase) has nothing to render — no charts, no metric summaries
- The mobile app's run detail page would show only config JSON and a "completed" badge, with no training curves or metrics
- Workers cannot attach trackio data to a run via the current API surface (no
runs_attach_artifact for metrics, no trackio_run_uri setter)
- The experiment phase is essentially unverifiable — you can mark a run "completed" with zero evidence
Proposed fix
- Auto-set
started_at when status transitions from pending → running, and finished_at when transitioning to a terminal status (completed, failed, cancelled)
- Add a
metrics_summary_json field or a trackio_run_uri field to the run model, settable via runs_update
- Consider a
runs_attach_metrics endpoint or allow runs_attach_artifact(kind="metrics") for structured metric blobs
- Validate that a run entering
completed status has either metrics data or an explicit override flag
Affected project
- Project:
test-code-migration (id: 01KTAVZNCZGH1D9TJXAMWA636X)
- Run:
01KTH7GRFQ65B7XX74MA6K9YWG (CartPole-v1 PPO, 100 steps, completed)
Summary
A run created via
runs_createand markedcompletedis a bare record — it has nostarted_at/finished_attimestamps, no metrics payload, no time-series data, and no link to an external tracking system (trackio_run_uri,trackio_host_id). For a system that supports experiment dashboards and metric charts, the run object carries none of the data those views need to render.Steps to reproduce
runs_create(project_id, config_json={...})— creates a run withstatus: "pending"runs_update(status="completed")— marks it doneruns_get(run)— inspect the resultActual result
{ "id": "01KTH7GRFQ65B7XX74MA6K9YWG", "project_id": "01KTAVZNCZGH1D9TJXAMWA636X", "config_json": "{...}", "status": "completed", "created_at": "2026-06-07T14:24:18Z" }Missing fields:
started_at— null/absentfinished_at— null/absentmetrics— no metric series or summarytrackio_run_uri— no external tracker linktrackio_host_id— no host associationExpected behavior
A
completedrun should have:started_atandfinished_attimestamps (even if set manually or by the worker that executed it)trackio_run_uripointing to where metrics liveruns_updatesets status tocompleted, it should require or auto-setfinished_atImpact
experiment_dashoverview widget (used inexperimentphase) has nothing to render — no charts, no metric summariesruns_attach_artifactfor metrics, notrackio_run_urisetter)Proposed fix
started_atwhen status transitions frompending→running, andfinished_atwhen transitioning to a terminal status (completed,failed,cancelled)metrics_summary_jsonfield or atrackio_run_urifield to the run model, settable viaruns_updateruns_attach_metricsendpoint or allowruns_attach_artifact(kind="metrics")for structured metric blobscompletedstatus has either metrics data or an explicit override flagAffected project
test-code-migration(id:01KTAVZNCZGH1D9TJXAMWA636X)01KTH7GRFQ65B7XX74MA6K9YWG(CartPole-v1 PPO, 100 steps, completed)