Session 57: Phase 0 — Kill the Lies (2309 tests)
Work-order Phase 0 (Jul 10 live audit): every fabricated UI element deleted
or rewired to real data. Deletion sprint — no new product features.
0.1 Fake NBA game: root cause was scheduleService fetching the ESPN
scoreboard with no ?dates= param or date filter — off-season ESPN
returns the NEAREST slate (Jun 13 NYK@SA Finals rendered as tonight).
Now pinned to the requested ET date + defensive filter; undated events
dropped. Honest month-aware per-sport empty states (lib/emptyState.js).
0.2 Fake header counters: liveTick stripped to a bare 1s pulse (the
auto-incrementing "247 graded", sin-driven brain-%, aPlus/cascades are
dead). New GET /api/snapshot/summary (cache-only, before /:sport) +
Next proxy; HeartbeatBar shows the real graded count and SYNC =
elapsed since the last pipeline run (amber past 5 min).
0.3 Ticker: hardcoded fallback items deleted (real snapshot exhaust only);
MOVE kept — computeLineDeltas is real movement. <4 real items → no
ticker; bar publishes --ticker-h so the fixed header collapses cleanly.
0.4 /terminal retired: route redirects to /dashboard; VVI/injury-wire/
leaders layouts preserved unrouted as §12 content-engine templates.
Nav PRIMARY = Slate/Scan/Ledger; BottomTabBar Terminal→Explore; PWA
shortcut Terminal→Ledger; #terminal alias → /dashboard.
0.5 ›Query nav pill deleted (duplicate /scan link).
Backend 2289 → 2309 tests (199 suites), web build exit 0.
Spec: specs/phase-0-kill-the-lies.md. Next: work-order Phase 1 (ledger
persistence + settlement).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
+49
-3
@@ -4,9 +4,55 @@
|
||||
2026-07-10
|
||||
|
||||
## Current Phase
|
||||
SHIP BUILD v56.0 — The full data audit: PropLine/boxscore/pipeline inventory,
|
||||
rbis→rbi fix, +6 MLB markets, doubles/outs wired end-to-end, ntfy alerting +
|
||||
retry + missed-cron detection, master roadmap.
|
||||
SHIP BUILD v57.0 — Phase 0 "Kill the Lies" (work order, Jul 10 live audit):
|
||||
every fabricated UI element deleted or rewired to real data. Next: Phase 1
|
||||
(ledger persistence + settlement — the truth infrastructure).
|
||||
|
||||
## Session 57 (2026-07-10) — SHIPPED ✅ PHASE 0: KILL THE LIES
|
||||
|
||||
Backend 2289 → **2309 tests** (+20), 199 suites. Web build clean (exit 0).
|
||||
Spec: `specs/phase-0-kill-the-lies.md`. Work order: Phase 0 of the
|
||||
overhaul (audit-driven; Phases 1–6 queued).
|
||||
|
||||
### 0.1 — Fake NBA game (root cause found + fixed at the source)
|
||||
- `scheduleService.fetchScheduleFromEspn` hit ESPN with NO `?dates=` param and
|
||||
NO date filter → off-season ESPN returns the NEAREST slate (the Jun 13 NYK@SA
|
||||
Finals game rendered as "tonight" all July). Now pins `?dates=YYYYMMDD` AND
|
||||
filters events to the requested ET date; undated events dropped.
|
||||
- Honest per-sport empty states: `web/src/lib/emptyState.js` (month-aware —
|
||||
"NBA returns in October." vs in-season "No NBA games today."), used by the
|
||||
dashboard NO SLATE block + the Slate empty state.
|
||||
|
||||
### 0.2 — Fake header counters deleted
|
||||
- `liveTick.js` stripped to `{ tick }` (1s re-render pulse only). The fake
|
||||
auto-incrementing "247 graded", sin-driven brain-%, aPlus/cascades: DEAD.
|
||||
- New `GET /api/snapshot/summary` (public, cache-only, registered before
|
||||
`/:sport`) → `{ graded, updated_at, sports }`. Next proxy added.
|
||||
- `HeartbeatBar` shows the REAL graded count + SYNC = elapsed since the last
|
||||
pipeline run (amber past 5 min). No data → "SYNC —", nothing invented.
|
||||
|
||||
### 0.3 — Ticker: real items only
|
||||
- Nav's hardcoded fallback items (fake Wembanyama A+/"NYK vs SA Q3"/invented
|
||||
Tatum MOVE) deleted. MOVE stays — `computeLineDeltas` is real movement.
|
||||
- Spec §3 rule: <4 real items → ticker renders nothing. It publishes
|
||||
`--ticker-h` (32px/0px) on `<html>`; layout main paddingTop and Slate sticky
|
||||
top are now `calc(base + var(--ticker-h))` so the header collapses cleanly.
|
||||
|
||||
### 0.4 — /terminal retired (fabricated surface)
|
||||
- Route now `redirect('/dashboard')`. Layouts preserved UNROUTED at
|
||||
`web/src/components/intel/TerminalTemplates.tsx` (§12 content-engine
|
||||
templates — feed real data before ever routing them).
|
||||
- Nav PRIMARY = Slate/Scan/Ledger. BottomTabBar: Terminal→Explore. PWA
|
||||
manifest shortcut Terminal→Ledger. routes.js: `/terminal` out of
|
||||
OPEN_ROUTES; `#terminal` → `/dashboard`.
|
||||
|
||||
### 0.5 — ›Query nav pill deleted (duplicate /scan link)
|
||||
|
||||
### Next (work order Phase 1 — starts the settle clock)
|
||||
- `ledger_entries` table + write-on-grade (user scans AND pipeline pre-grades)
|
||||
- Settlement worker; populate /ledger (personal + MODEL tabs)
|
||||
- Degenerate scan output (model==line, +0% edge) → honest "INSUFFICIENT DATA"
|
||||
- Canonical player_key normalization (blocks 2.4, 4.1)
|
||||
|
||||
## Session 56 (2026-07-10) — SHIPPED ✅ THE FULL AUDIT
|
||||
|
||||
|
||||
Reference in New Issue
Block a user