STATE: heal executed — 64 re-voided, 25+200 quarantined, scopes separated
This commit is contained in:
@@ -133,6 +133,56 @@ exist locally; harmless, the data restores completely.
|
||||
|
||||
---
|
||||
|
||||
## 🟢 HEAL EXECUTED (Order 2, 2026-07-20 ~10:00 UTC) — record is clean
|
||||
Rollback point first: `vyndr-20260720-093821.dump` (856,890 B) **verified ON the
|
||||
Storage Box**, not just exit 0.
|
||||
|
||||
**⚠️ THE DRY-RUN OVERTURNED MY OWN DIAGNOSIS — read this before trusting the
|
||||
Order 1.5 notes above.** Across every bindable row the stored `game_date`
|
||||
matched a real game (**MIS-DATED: 0**). The players I cited as proof of
|
||||
mis-dating were **genuine DNPs** on their true dates (Freeman 07-18;
|
||||
Kwan/Hedges/Davis 07-17 — their teams played, they did not). **The original 64
|
||||
`player_dnp` voids were CORRECT and my Order 1.5 revert undid correct work.**
|
||||
|
||||
| Axis | Result |
|
||||
|---|---|
|
||||
| Settlement scorer | **578/578 re-computed identical, 0 differ** — confirmed, no heal needed |
|
||||
| Dates | 527 correct · **0 mis-dated** · 170 unbindable (my dry-run's parser, NOT proven damage) |
|
||||
| Grade damage | **51 rows, not 303** — the rest hit the same opponent anyway (baseball SERIES effect) |
|
||||
|
||||
**Writes executed (each verified against the dry-run prediction):**
|
||||
- **64 re-voided** (60 mlb + 4 wnba) — by the settle pass's positive-evidence
|
||||
guard, not hand-picked ids. DNP voiding re-enabled deliberately because its
|
||||
disable rested on a false premise.
|
||||
- **25 ledger rows quarantined** `wrong_opponent_grade` (wnba 2026-07-18,
|
||||
10 hit / 15 miss). They REMAIN real public settled results; only train/validate
|
||||
excludes them.
|
||||
- **200 `model_snapshots` rows quarantined** — the 4 pre-fix MLB cycles for
|
||||
game_date 07-20 (06:00/06:02/06:03/07:25 UTC). Superseded by the correct
|
||||
07:50/07:51 captures of the same props, so nothing is lost.
|
||||
- **70 rows flagged** `doubleheader_game_identified`.
|
||||
|
||||
**TWO EXCLUSION SCOPES (migration 027) — deliberately separate:**
|
||||
- `quarantine_reason` → grade untrustworthy. Row stays a real public result but
|
||||
is **excluded from the model-record denominator** (`getModelAggregate`), like
|
||||
void/unrecoverable.
|
||||
- `analysis_flags` → valid for settlement AND the record; excluded only from
|
||||
per-game/opponent analysis. **Never filtered from aggregates** (a test asserts
|
||||
this, so a future edit can't silently collapse the two).
|
||||
|
||||
**Corrections to my own Phase 0 numbers, found while executing:**
|
||||
- The 50 WNBA "poisoned moat rows" were **NOT poisoned** — captured 03:02 UTC
|
||||
(23:02 ET 07-19) for game_date 07-19, so ESPN's "today" was the right day.
|
||||
- The 166 doubleheader rows came from **loose team matching** and could not be
|
||||
reconciled (a strict predicate found 121). I flagged only the **70** rows the
|
||||
FEED itself marks (`G2…`/`(Game1)`) — and those are attributable, not
|
||||
unattributed. The wider unattributed set needs a stricter pass; it is advisory
|
||||
metadata that affects no number today.
|
||||
|
||||
**Final state:** 360 hit · 218 miss · 64 void · 55 pending · 25 quarantined
|
||||
(697 public rows). 26 pending mlb 07-20 rows left untouched to self-heal on the
|
||||
next cycle, as ordered.
|
||||
|
||||
## 🟢 GRADING DATE BINDING FIXED — wrong-opponent bug closed (2026-07-20 07:50 UTC)
|
||||
`computeFeatures.lookupTodayGame` → **`lookupGameOnDate`**: it now sends
|
||||
`?dates=YYYYMMDD` from the prop's BOUND game instead of taking ESPN's dateless
|
||||
|
||||
Reference in New Issue
Block a user