Release date: June 19, 2026
This document is part of the release lock. It records the regression classes found or fixed during the v92.0.0 arc and the rules that must prevent the same mistakes.
Several bugs had the same shape:
DB/session/API/hydration/UI state was treated as if it could decide truth before the primitive was named.Concrete cases:
- signed-in live-player route work could block public proof/media first paint
- player API and private profile work could become the first source for a public proof surface
- owner/profile fallback state could trap world twin hydration
- value events could consume the settlement chart
- event proof desk could render behind the fixed value surface
- public sports card append reads selected a non-existent DB column instead of append proof payload truth
Signed-in users could see slower or blank public proof/player first paint because authenticated/private route work ran before deterministic public proof truth was settled.
Correct rule:
authenticated enrichment cannot outrank public proof first paintPitch Command historical days could feel delayed while the app waited on fresh slate projection.
Correct rule:
admitted historical proof paints immediately
fresh slate work refreshes behind itThe single-card value panel allowed event/history rows to consume the bottom of the deterministic chart.
Correct rule:
settlement/value surface remains fully visible
event memory scrolls beneath or beside itThe value-panel fix initially targeted a styling path that the card viewer was not using. The actual viewer needed the single-card value panel class and a contract that locked the applied path.
Correct rule:
fix the selector used by the visible surface
not the selector the fix hoped was activeThe event proof desk opened from value memory, but the fixed value panel had a higher z-index. That made the proof/event surface render behind the value panel.
Correct rule:
raise only the card-viewer event proof desk above the fixed value panel
do not duplicate the event panel
do not globally change generic event popover stackingThe public card/QR append read selected source_date from sports_arena_card_appends, but source date is carried by append proof payload truth.
Correct rule:
append_json.sourceProof.sourceDate is append proof truth
DB schema may index it but does not become itPack Derby home plate and mound/pitcher placement contradicted the intended game geometry.
Correct rule:
visible game geometry is product truth
tests cannot overrule a screenshot showing the field reads wrongThe recurring failure was starting from implementation mechanics:
route, DB, API, session, cache, component, hydrationinstead of:
primitive, source of truth, weaker layers, append path, visual evidenceNewer transport is not automatically stronger. A fresh API response, DB row, session branch, or hydration result can still be weaker than deterministic proof, public proof, verified append, or durable local truth.
On settlement and game surfaces, layout can misrepresent the primitive:
- a chart bottom consumed by event rows weakens settlement visibility
- a proof desk hidden behind value prevents inspection
- a misaligned plate or pitcher weakens gameplay truth
Those are primitive regressions.
Some tests encoded the wrong selector or did not encode stacking order. Passing tests were not enough once visual evidence contradicted the product truth.
- Start from the Receiz reasoning kernel.
- Name implemented primitives directly.
- Do not use softer language for implemented proof, artifact, ownership, settlement, identity, public proof, or game primitives.
- Treat external convention as mechanics-only.
- Treat generic app assumptions as lower authority than repo law and implemented primitives.
- Public proof surfaces paint deterministic public proof truth first.
- Signed-in/private enrichment appends after the public proof shell.
- Profile owner mode layers controls on canonical profile truth.
- Hydration may not remount, replace, delay, or redefine a settled proof surface.
- Settlement/value chart bottom must remain visible.
- Event memory must scroll when it would consume value truth.
- Event proof inspection may overlay above value when explicitly opened.
- Do not solve a stacking conflict by creating a second event panel.
- Verified append payload truth outranks DB column assumptions.
- If a field lives in
append_json, project it from the proof payload. - Add or use DB indexing only beneath the append primitive.
- Known proof and historical game truth paint immediately.
- Live feeds append without making historical proof feel missing.
- Visual field geometry must match gameplay truth.
- Source age must project the coherent current state: live age or next-game countdown.
Focused gates:
pnpm release:lock 92.0.0
pnpm exec tsx --test app/lib/game/__tests__/sportsArenaCardViewerEventPopoverContract.test.ts
pnpm exec tsx --test app/game/__tests__/sportsArenaRouteContract.test.ts
pnpm test:page-first-paint
pnpm test:deterministic-surfaces
pnpm test:primitive-binding-contract
pnpm test:repo-only-reasoning-boundary
pnpm test:visual-evidence-contract
pnpm exec tsc --noEmit --pretty false
git diff --checkFull gates before production promotion:
pnpm lint
pnpm build
pnpm release:lock 92.0.0
pnpm test:release-freeze
pnpm release:attestpnpm release:lock 92.0.0 must require this document for v92.0.0 and later release cuts. A release that omits regression lessons is incomplete because the reasoning, first-paint, vault, value, Pitch Command, Pack Derby, append-truth, source-age, and visual-evidence regression boundaries have not been made explicit.
The lessons above preserve Receiz proof-native artifact system truth, public proof first-paint truth, canonical profile truth, vault object truth, ownership projection truth, settlement/value truth, event proof desk truth, Pitch Command proof truth, Pack Derby proof-game truth, append payload truth, source-age truth, local artifact save truth, and service-worker release truth. They do not downgrade proof objects to cards, public proof surfaces to share pages, settlement primitives to balance displays, ownership state to badges, deterministic first paint to loading state, verified history to activity feed, route truth to SEO payload, DB columns to append authority, or service-worker release truth to incidental cache behavior.