builtbykev
|
0996320bd1
|
S3 (a1): affiliate + partner plumbing
Zero out-of-pocket; everything config-flip-ready but DISABLED/organic.
- BOOK IT deep links: web/src/lib/bookLinks.js + affiliateConfig.js
(all books enabled:false, Impact/Partnerize param shapes documented,
empty params skipped). Wired into StatStrip BookItTeaser (real anchor
now) + scan hand-off links. Every book anchor renders
rel="sponsored noopener noreferrer" (BOOK_LINK_REL).
- Best-price marker: slateAdapter.detectBestBook (only when >=2 books
post the SAME line and prices differ — absent beats wrong) + subtle
signal-green dot in StatStrip. Slate.groupByGame threads the grouped
per-book rows (books[]) onto PropRowProp instead of discarding them.
- Partner refs: ?ref=CODE -> vyndr_ref cookie (90d, first-touch,
PartnerRefCapture in layout) -> signup metadata partner_ref ->
internal GET /api/partners/report/:code (requireInternalAuth; honest
zeros + note until the TODO migration in docs/PARTNERS.md adds
user_profiles.partner_ref — NOT run). Stripe promo-code convention:
partner code == promotion code, verbatim.
- Tests: +41 (2398 -> 2439, 209 suites); bookItTeaser + vyndrCoreScreens
invariants updated to the new (stronger) rel contract. Web build exit 0.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-07-11 14:28:18 -04:00 |
|
builtbykev
|
f1956dc953
|
Session 50: Complete Parlay Lab (2215 tests)
Correlation-aware combined parlay grading — the Desk-tier differentiator.
- Correlation model (parlayService.js, added to S28 funcs): correlationScore
(game-aware 0.7/0.4/0.2/0.0), combinedGrade (avg penalized by avgCorr*0.5),
estimatedPayout (fair-odds product * (1-avgCorr) discount), correlationWarning,
gradeParlay.
- POST /api/parlay/grade (public, 2-6 legs) -> {combined,correlation,payout,legs}.
Fixed the Next proxy (was forwarding to /api/scan/parlay).
- ParlayContext: legs gained team/game/archetype; tier-aware maxLegs; auto-grades
the slip (debounced) when legs>=2 -> live combined/correlation/payout; hasLeg/
legKey/atCap.
- "+" button on every graded prop: StatStrip onAddLeg/isLegActive, wired by
vyndr/GameCard via useParlay (builds leg w/ team + game). GradeResultCard feeds
the same context from the scan page.
- ParlayPanel (replaces legacy ParlayTray): bottom slide-up w/ legs, combined
grade, correlation warning, est payout, CLEAR ALL + floating leg-count badge.
Tier-gated: free 2 legs (payout blurred -> Desk upsell), Analyst 4, Desk 6.
Backend 2185 -> 2215 tests (+30), 187 suites. Web build clean (exit 0).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-19 11:25:14 -04:00 |
|