Commit Graph

1 Commits

Author SHA1 Message Date
builtbykev 41ba38ed4e Master state board, repo-verified — and a live retention regression
Captures the complete position before the build-process pivot, derived from the
repo and live database checks rather than from any summary. Every claim is
marked VERIFIED / INFERRED / UNVERIFIED with the check shown.

THE HEADLINE IS A PRODUCTION REGRESSION FOUND WHILE VERIFYING.

model_snapshots stopped being written on ~2026-08-15: 14,718 rows on 08-12 ->
7,080 -> 378 -> 0 on 08-16 and 08-17. ledger_entries and closing_captures are
still writing normally, so this is one write path failing, not a dead cron.

Cause, verified three ways: retentionService.js:165 declares chain_shadow on
every row; migration 038 was never applied so the column does not exist; and
persist() catches the error because retention is best-effort by design. The
chain-v1 report flagged this exact sequence as a blocking precondition. The
commit was pushed and deployed; the migration was not applied.

Consequence: both pending verdicts are frozen. A8 sits at 623 complete pairs
(MIN_N 500 met) but only 20 of 40 distinct settled games, and has gained
nothing since 08-15. The chain-vs-counter head-to-head has never accrued a row,
because its column does not exist either.

Four premise corrections the verification forced:
- WNBA is BUILT, not ingested. All three WNBA tables are absent; the source is
  ESPN, not nba_api (WAF-blocked, package not installed); Basketball-Reference
  cannot serve as-of-date aggregates; wehoop has no lineup/on-off data.
- Lineup reconstruction is not pending. It works, 40/40 games to a complete
  5-a-side. What is missing is a column to store it in.
- WNBA footprint measures 42.6 MB/season, not ~475 MB. The Pro conclusion may
  still hold, but not from that number.
- The chain diagnostic is BOTH a difficulty-correlated component and an
  unexplained uniform offset, and the correlation is near-mechanical -- it shows
  the wiring reaches the number, not that the adjustment is right.

Also records the fix options for the regression without taking either, since
this order is documentation-only. Reverting retentionService.js:165 restores
retention immediately and needs no credentials; applying 038 is the complete
fix and needs DDL access this environment does not have.

Documentation only. No code, schema, served path or accrual changed.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Xcpku8k719mtCWqFKXg287
2026-08-17 01:41:33 -04:00