diff --git a/outputs/VYNDR-COMPLETION-MATRIX.md b/outputs/VYNDR-COMPLETION-MATRIX.md index 8a97bf5..a9c3a25 100644 --- a/outputs/VYNDR-COMPLETION-MATRIX.md +++ b/outputs/VYNDR-COMPLETION-MATRIX.md @@ -389,6 +389,11 @@ dashboard every viewer receives the free-tier payload — correct order, no paid default (forwarding auth into a shared cache is how paid payloads leak); per-tier delivery through the proxy needs a tier-keyed cache and is NOT done here. -**Verified:** 311 suites / 3882 tests green (18 new, leak test on POPULATED p_win), web build exit 0, -and induced on real prod snapshot data — MLB 8 / WNBA 10 props, 0 paid-field leaks, render-contract -safe. Dashboard visual is auth-gated → tagged for the Chrome audit, not faked. +**Verified:** 311 suites / 3882 tests green (18 new, leak test on POPULATED p_win), web build exit 0. +**Post-deploy fingerprint (`72a14dc`) — the boundary proven in production:** 404→200 captured across the +deploy boundary; the anonymous live order is *1. Brionna Jones (edge 29.4) · 2. Rhyne Howard (edge 42.9)* +— an edge-only sort would lead with Howard (and the local induction over the stripped snapshot did), so +**server-side p_win ordered it** (Brionna .90 @−106 > Howard .745 @−120) while the payload carries +**PAID FIELDS: NONE**. A bogus bearer token also yields no paid fields (fail-closed proven in prod). +The board's proxy path now returns 10 props, so TOP GRADES **renders** instead of falling back to empty. +The rendered board is client-side → tagged for the Chrome audit, not faked. diff --git a/specs/STATE.md b/specs/STATE.md index c8f9fb2..11fa656 100644 --- a/specs/STATE.md +++ b/specs/STATE.md @@ -311,6 +311,23 @@ > market facts (book/fair) SURVIVE — the fair leg is never the paywall. Also locked: chalk (p_win .95 > @−300) never tops the board, nulls last but PRESENT, refusals excluded, unrenderable rows dropped, > thin slate → `200 {props:[]}` never a 404, and board-vs-hero differ by design yet agree within tier. +> ### ✅ POST-DEPLOY FINGERPRINT (commit `72a14dc`) — the boundary PROVEN IN PRODUCTION +> **404 → 200 captured across the deploy boundary** (polled every 15s: attempts 1-4 `HTTP 404`, +> attempt 5 `HTTP 200`). `Cache-Control: public, max-age=60` for the anonymous caller. +> **🔑 THE PROOF THAT THE STRIP-AFTER-RANK BOUNDARY WORKS, on live data, not a fixture.** The +> anonymous live order is **1. Brionna Jones (edge 29.4) · 2. Rhyne Howard (edge 42.9)** — both B/c69. +> An edge-only sort would put Rhyne Howard FIRST (42.9 > 29.4), and that is exactly what the local +> induction over the *stripped* public snapshot produced. Production ranks Brionna first because +> **server-side p_win ordered it** (Brionna 0.90 @−106 > Howard 0.745 @−120, both takeable — matching +> the ledger rows exactly). So the free caller received the **paid RANKING while the payload carries +> `PAID FIELDS: NONE`**. That is the acceptance criterion demonstrated end-to-end in prod. +> Also verified live: **bogus bearer token → still no paid fields** (`resolveTierFromRequest` fails +> closed, proven in prod, not just in test); render-contract safe on every row + `sport` uppercase; +> market facts (book/fair) survive; MLB 3 rows (Chandler Simpson B first); the no-sport merged call +> (gradeOfTheDay's shape) returns rows; and **the board's own proxy path `vyndr.app/api/props/top-graded` +> now returns 10 props → the TOP GRADES board RENDERS instead of falling back to empty.** +> The rendered board itself is a client-side render → TAGGED FOR THE CHROME AUDIT, not faked. + > **HELD:** edge_pct rescale/retirement (Order B) · board columns/contract unchanged · tier-keyed proxy > caching. Dashboard visual is auth-gated → TAGGED FOR THE CHROME AUDIT, not faked.