James Chang
/
Work
/
The Fantastic Leagues
/
Changelog
Fantastic Leagues:
AI Insights
Under the hood
Product metrics
Changelog
Static snapshot showing the most recent five releases
(v0.53 → v0.57) as of April 2026. The live changelog is admin-only
inside the app. Public marketing site:
thefantasticleagues.com .
Fantastic Leagues · Changelog · Last Updated April 15, 2026
Recent releases.
v0.57.0 is the latest as of this snapshot. Releases ship every 1–3 days
depending on scope; each one carries a thematic title, 4–6 user-facing
highlights, and 10–30 detailed changes categorized by type.
v0.57.0 most recent (Apr 13, 2026)
63 total sessions since Nov 2025
732 tests passing, 0 failing
~2.5 h parallel-agent build (vs ~10h sequential)
Recent releases
v0.57.0
2026-04-13 · Session 63
feature
Launch readiness, admin IA, dashboard, error correlation, session tracking
Highlights
Admin dashboard rebuilt as a 5-row card grid — stat cards, league health, AI summary, Todo progress, activity feed, recent errors
Side nav reorganized: dedicated Admin section with 3 sub-groups (Operations / Planning / Reference)
Error correlation: every 500 returns an ERR- code + admin-only detail field; click-to-copy toast; in-memory ring buffer feeds /admin dashboard
Session tracking: UserSession + UserMetrics + UserDeletionLog tables, heartbeat hook (30s, BroadcastChannel, one-session-per-browser), /admin/users page with real data
Cross-linking: Roadmap phases and Concept cards now have stable anchor IDs, hash-scroll + reverse links to related todos
Parallel-agent execution cut combined Phase A + Phase B build time from ~10 hours sequential to ~2.5 hours elapsed
Key changes
feat: Admin dashboard: 5-row card grid at /admin with auto-refresh 60s, manual refresh button, graceful degradation
feat: Session tracking — UserSession, UserMetrics, UserDeletionLog Prisma models with HOT-update optimization (no lastSeenAt index, fillfactor 80, aggressive autovacuum)
feat: POST /api/sessions/start | /heartbeat | /end — ownership checks, 20/min heartbeat rate limit, concurrent-session cap 10, AuditLog LOGIN entries, credential-stuffing canary
feat: lib/ipHash.ts — HMAC-SHA256 IP hasher with fail-fast if IP_HASH_SECRET missing; IPv4 /24 + IPv6 /48 truncation
test: +30 tests (16 server session, 7 client hook, 7 admin users) — total suite 732 passing, 0 failing
v0.56.0
2026-04-12 · Session 62 (cont.)
feature
Admin system, draft report regen, waiver priority by period, YouTube fix
New /todo page — category-based micro-task tracker with cross-links to Roadmap/Concepts
Concepts page rebuilt with 4 tabs: Strategic / SEO Pages / Integrations / UX Mockups
Waiver priority UI now uses period-based standings (matches server processing logic)
Draft Report regenerated with admin bypass — all 8 teams graded A- to F
YouTube embeds switched to youtube-nocookie.com (fixes prod playback)
v0.55.0
2026-04-10 · Session 62
improvement
Auction player enrichment, add/drop error handling, position sort, standings verified
Auction nomination and force-assign now populate mlbTeam on Player records — no more "—" for newly drafted players
Add/drop claim errors return proper 400 with descriptive messages instead of opaque 500
Team page roster sorted by shared POS_SCORE constant; pitchers now sorted by position (SP before RP)
Scoring and standings verified: 8 teams, 7 periods, roto points computed correctly
v0.54.0
2026-04-09 · Session 61
feature
AI trade analyzer, insights cache, keeper recommender
Trade analyzer shipped — evaluates proposed trade for both sides with category-weighted analysis
Keeper recommender — surfaces value picks accounting for salary inflation + positional scarcity
Shared insights cache in SQLite (via MCP proxy) — duplicate prompts return in < 50ms instead of new inference
Google Gemini 2.5 Flash remains primary; Anthropic Claude Sonnet 4 now fully wired as fallback
v0.53.0
2026-04-07 · Session 60
security
CSP, HSTS, rate-limit tuning, retrospective
Full CSP header deployed in Cloudflare Worker — blocks inline script unless nonce matches, blocks unapproved CDN
HSTS with preload directive, 2-year max-age
Rate limiter tuned per-endpoint — auth 5/min, auction nominations 2/s, heartbeat 20/min
Six-month retrospective published internally — 62 sessions, 26 modules, 730 tests, ~100M tokens estimated
Pattern across releases
Each version includes a thematic title connecting to product
goals, 4–6 highlights (user-facing features), and
10–30 detailed changes categorized by type
(feat / fix / perf / refactor /
test / docs / security). Cross-links
to related docs and pages let someone jumping in mid-story find the context.