Add a propagation_run_timings table so the wall-clock duration of each (run_time, forecast_hour) step is queryable long after the run is over. Keyed by (run_time, forecast_hour) with a status column that captures whether the step succeeded or bailed out, and an error string on failure. PropagationGridWorker stamps every step (ok and failed) via Propagation.record_run_timing/1. Timing inserts are wrapped in rescue + changeset-error handling so the instrumentation can never brick the chain. |
||
|---|---|---|
| .. | ||
| agent-skills | ||
| backtest_reports | ||
| gettext | ||
| models | ||
| repo | ||
| static | ||