max / makenotwork
| 1 | -- Drop the shadow `passed` and `detail` columns on `gate_runs`. |
| 2 | -- |
| 3 | -- These were retained for one release after migration 003 (per the |
| 4 | -- observability plan's "shadow for one release" decision) so any consumer |
| 5 | -- still on the pre-typed schema kept working through a rollback window. |
| 6 | -- That window has elapsed: prod has been running typed outcomes since |
| 7 | -- 0.9.x, and every reader (sandod's /state, TUI, gate runners) now |
| 8 | -- consults `status` / `outcome_json`. |
| 9 | -- |
| 10 | -- After this migration: |
| 11 | -- - `gate_runs.status` is the high-level word for filtering |
| 12 | -- - `gate_runs.outcome_json` is the source of truth (typed GateOutcome) |
| 13 | -- - `gate_runs.log_ref` points to on-disk stdout/stderr |
| 14 | -- |
| 15 | -- Routes, runners, and the TUI no longer reference the dropped columns. |
| 16 | |
| 17 | gate_runs DROP COLUMN passed; |
| 18 | gate_runs DROP COLUMN detail; |
| 19 |