docs: corrected gate recorded + cache-busting verification lesson
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QJs13VsyiSKYQP6rj3NNmc
This commit is contained in:
@@ -742,3 +742,25 @@ grade, so nobody can tell which prop is the A.
|
||||
**Live anonymous fingerprint:** 25 grades → **5 settled free-full, 20 locked**, `live_locked
|
||||
{"count":20,"tiers":{"B":13,"C":7}}`, **judgment-field leak: NONE**. 319 suites / 3,971 tests green,
|
||||
web build exit 0.
|
||||
|
||||
---
|
||||
|
||||
# BUILD 1 CORRECTED — itemized grades are PAID, live AND settled (2026-07-31)
|
||||
|
||||
The resolution-flip shipped earlier the same day was **replaced**: freeing grades at settlement made
|
||||
the free tier a one-day-delayed feed of the whole product. No per-grade flip now — every itemized
|
||||
grade is Analyst+.
|
||||
|
||||
**Free:** data aggregator + the **aggregate record that already existed** (`/api/accuracy` n=937,
|
||||
byGrade, per-sport; `/api/ledger/accuracy`, both honoring the n≥20 hollow law with `pct:null`) + a
|
||||
**capped, day-rotated 3-call sample** (resolved only) + the locked shell of tonight's reads
|
||||
(`live_locked {count, tiers}`, aggregate-only, never joinable to a row).
|
||||
|
||||
**Live anonymous, cache-busted:** 25 grades, **judgment leak NONE**, every row `locked`, tease
|
||||
`{count:20, tiers:{B:13,C:7}}`, `free_sample` 3 of 5 settled — **exploit dead**. `outcome` is kept on
|
||||
gated rows because a result is a fact, not a judgment.
|
||||
|
||||
**Verification note:** the first post-deploy read was a CDN-cached pre-deploy body and falsely showed
|
||||
a leak; `max-age=30` on this endpoint means post-deploy checks must bust the cache.
|
||||
|
||||
319 suites / 3,970 tests green, web build exit 0.
|
||||
|
||||
Reference in New Issue
Block a user