brackt/drizzle/meta
Chris Parsons 81d063faa1
All checks were successful
🚀 Deploy / 🧪 Test (pull_request) Successful in 3m13s
🚀 Deploy / ʦ🔍 Typecheck & Lint (pull_request) Successful in 1m23s
🚀 Deploy / 🐳 Build (pull_request) Has been skipped
🚀 Deploy / 🚀 Deploy (pull_request) Has been skipped
Auto-populate & auto-score tennis Grand Slam brackets from Wikipedia
Add a per-event "Sync Draw" that pulls a tennis major's full 128-player
draw from its Wikipedia article, auto-creates/links participants (and
propagates them to every linked sibling season), builds the bracket, and
runs the qualifying-points scorer. Re-running advances the bracket and
scoring as matches complete.

Core
- match-sync: WikipediaTennisAdapter + wikitext bracket parser, DrawSync
  DTOs, syncTennisDraw orchestrator, pure draw->rows mapping
- playoff-match: populateBracketFromDraw (idempotent upsert on externalMatchId)
- scoring_events.externalSourceKey column (Wikipedia article; migration 0123)
- admin bracket "Sync Draw" card (accepts URL or title) + cron pass

Scoring fix
- deriveBracketQualifyingStates only floors players who have reached the
  scoring stage; for deep brackets (tennis_128) early-round losers earn 0 QP
  instead of a phantom 9th-place floor. CS2/simple_8 behavior preserved
  (gated on rounds[0].isScoring). Re-sync reconciles stale QP rows in a
  transaction.

Matching & parsing
- accent-folding in normalizeTeamName; strip Wikipedia "(tennis)"
  disambiguators; treat Bye/TBD/Qualifier as TBD; extract wikilink before
  template-stripping so {{nowrap}}-wrapped players parse

Admin UX
- dry-run preview (matched / will-create / possible duplicates / unfilled
  slots) with inline "rename existing" / "create as new" resolution via
  fetcher (no full reload)

Tests: parser vs real 2025 Wimbledon fixture, draw mapping, tennis_128
scoring, accent/disambiguator/nowrap parsing, URL parsing.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 21:48:00 -07:00
..
0000_snapshot.json
0001_snapshot.json
0002_snapshot.json
0003_snapshot.json
0004_snapshot.json
0005_snapshot.json
0006_snapshot.json
0007_snapshot.json
0008_snapshot.json
0009_snapshot.json
0010_snapshot.json
0011_snapshot.json
0012_snapshot.json
0013_snapshot.json
0014_snapshot.json
0015_snapshot.json
0016_snapshot.json
0017_snapshot.json feat: add draft pick, queue, and timer models with database schema updates 2025-10-16 00:32:48 -07:00
0018_snapshot.json feat: add public draft board and simplify draft speed settings 2025-10-20 15:03:11 -07:00
0019_snapshot.json feat: add autodraft status and team connection indicators to draft grid 2025-10-21 23:22:17 -07:00
0020_snapshot.json feat: Add comprehensive scoring system database schema 2025-10-28 23:40:11 -07:00
0021_snapshot.json feat: Implement bracket expansion plan to support various tournament structures 2025-11-03 09:36:16 -08:00
0022_snapshot.json feat: Implement bracket expansion plan to support various tournament structures 2025-11-03 09:36:16 -08:00
0023_snapshot.json Refactor code structure for improved readability and maintainability 2025-11-03 13:16:37 -08:00
0024_snapshot.json feat: implement Expected Value System with ICM probability calculator 2025-11-17 22:19:46 -08:00
0035_snapshot.json User/chris/ev f1 framework (#93) 2026-03-09 15:34:31 -07:00
0038_snapshot.json feat: progressive floor scoring for playoff brackets (#100) 2026-03-10 10:27:58 -07:00
0040_snapshot.json Add playoff match game scheduling and odds management (#135) 2026-03-11 14:17:43 -07:00
0041_snapshot.json Add event_starts_at timestamp to scoring events for sub-day ordering (#146) 2026-03-15 10:22:42 -07:00
0043_snapshot.json Add per-event configurable region config for NCAA-style brackets (#149) (#149) 2026-03-15 21:52:47 -07:00
0048_snapshot.json Add Discord webhook notifications for standings updates (#157) 2026-03-17 11:16:36 -07:00
0050_snapshot.json Add NHL playoff simulator and fix simulator dropdown (#166) 2026-03-18 01:23:53 -07:00
0052_snapshot.json Add isDraftable toggle to sport seasons (#165) (#178) 2026-03-18 22:40:19 -07:00
0053_snapshot.json Add standard draft clock mode (#67) (#189) 2026-03-20 21:36:39 -07:00
0054_snapshot.json Add regular season standings for NBA/NHL (fixes #89) (#192) 2026-03-21 00:12:01 -07:00
0055_snapshot.json Add regular season standings for NBA/NHL (fixes #89) (#192) 2026-03-21 00:12:01 -07:00
0056_snapshot.json Add AFL season + finals simulator (closes #126) (#204) 2026-03-22 01:57:39 -07:00
0057_snapshot.json Add snooker bracket simulator and Elo ratings admin UI, fixes #119 2026-03-23 08:24:28 -07:00
0058_snapshot.json Add snooker bracket simulator and Elo ratings admin UI, fixes #119 2026-03-23 08:24:28 -07:00
0059_snapshot.json Add tennis Grand Slam simulator with surface Elo ratings, fixes #116 (#216) 2026-03-23 23:59:35 -07:00
0060_snapshot.json Add tennis Grand Slam simulator with surface Elo ratings, fixes #116 (#216) 2026-03-23 23:59:35 -07:00
0061_snapshot.json Add golf qualifying points simulator (Plackett-Luce Monte Carlo) (#223) 2026-03-24 21:46:02 -07:00
0063_snapshot.json Add WNBA playoff simulator with SRS-based Elo ratings, fixes #125 (#231) 2026-03-26 00:34:51 -07:00
0064_snapshot.json Prevent duplicate participants within a sports season, fixes #69 (#236) 2026-03-27 01:09:04 -07:00
0065_snapshot.json Add FIFA World Cup 2026 support with group stage display and Monte Carlo simulator (#242) 2026-03-29 10:27:47 -07:00
0066_snapshot.json Add FIFA World Cup 2026 support with group stage display and Monte Carlo simulator (#242) 2026-03-29 10:27:47 -07:00
0067_snapshot.json Clean up migration chain and add verification migration (#268) 2026-04-06 10:53:51 -04:00
0068_snapshot.json Clean up migration chain and add verification migration (#268) 2026-04-06 10:53:51 -04:00
0069_snapshot.json Clean up migration chain and add verification migration (#268) 2026-04-06 10:53:51 -04:00
0070_snapshot.json Clean up migration chain and add verification migration (#268) 2026-04-06 10:53:51 -04:00
0071_snapshot.json Add NFL season + playoffs Monte Carlo simulator (#272) 2026-04-07 09:39:34 -04:00
0072_snapshot.json Add NCAA Football CFP simulator (12-team bracket) (#278) 2026-04-08 09:48:32 -04:00
0073_snapshot.json Add LLWS bracket Monte Carlo simulator (#280) 2026-04-08 16:52:10 -04:00
0074_snapshot.json feat: add vorp_value column to participants table 2026-04-09 01:57:22 +00:00
0075_snapshot.json Add audit logging for commissioner actions (#293) 2026-04-13 15:45:39 -07:00
0076_snapshot.json fix: league settings sports swap and audit log detail improvements (#294) 2026-04-14 21:41:05 -07:00
0077_snapshot.json New design (#309) 2026-04-23 13:14:55 -07:00
0078_snapshot.json New design (#309) 2026-04-23 13:14:55 -07:00
0079_snapshot.json New design (#309) 2026-04-23 13:14:55 -07:00
0080_snapshot.json New design (#309) 2026-04-23 13:14:55 -07:00
0081_snapshot.json Migrate authentication from Clerk to BetterAuth (#324) 2026-04-24 22:00:49 -07:00
0082_snapshot.json Migrate authentication from Clerk to BetterAuth (#324) 2026-04-24 22:00:49 -07:00
0083_snapshot.json Add overnight pause for draft timers (#335) 2026-04-26 22:31:52 -07:00
0084_snapshot.json Migrate auth from Clerk to BetterAuth (#354) 2026-04-29 10:03:50 -07:00
0085_snapshot.json Mobile draft room improvements: watchlist, collapsible picks feed, autodraft controls (#355) 2026-04-29 11:49:26 -07:00
0086_snapshot.json Add draft room closure after completion (#359) 2026-04-30 10:14:14 -07:00
0087_snapshot.json Canonical tournament layer: schema + backfill (1/2) (#365) 2026-05-01 20:13:18 -07:00
0088_snapshot.json Canonical tournament layer: schema + backfill (1/2) (#365) 2026-05-01 20:13:18 -07:00
0089_snapshot.json Canonical tournament layer: 2026-05-01 21:04:48 -07:00
0090_snapshot.json Canonical tournament layer: 2026-05-01 21:04:48 -07:00
0091_snapshot.json Canonical golf skills migration + copy participants feature (#369) 2026-05-02 10:29:28 -07:00
0092_snapshot.json Add sports season ↔ tournament linking with admin UI (#372) 2026-05-02 12:45:53 -07:00
0093_snapshot.json Remove sports_season_tournaments junction table — derive from scoring_events (#373) 2026-05-02 22:19:59 -07:00
0094_snapshot.json Add Brackt as a league-private meta-sport (#200) (#377) 2026-05-04 20:31:44 -07:00
0095_snapshot.json Add Cloudinary-backed avatar system (#385) 2026-05-06 14:47:37 -07:00
0096_snapshot.json Deduplicate soccer simulator helpers (#391) 2026-05-07 11:48:57 -07:00
0097_snapshot.json Add Cloudinary sports icon uploads (#393) 2026-05-07 16:07:34 -07:00
0098_snapshot.json Fix college hockey bracket resolution (#396) 2026-05-08 12:29:39 -07:00
0099_snapshot.json Remove first and last name from user profiles (#399) 2026-05-09 09:18:50 -07:00
0100_snapshot.json Refactor user profile to comprehensive settings page (#403) 2026-05-10 17:26:14 -07:00
0101_snapshot.json Refactor user profile to comprehensive settings page (#403) 2026-05-10 17:26:14 -07:00
0102_snapshot.json Formalize simulator system with manifest, input-policy, runner, and admin UI (#409) 2026-05-11 21:09:53 -07:00
0103_snapshot.json Add NLL box lacrosse simulator implementation plan and preseason-draftability guidance (#417) 2026-05-12 14:22:34 -07:00
0104_snapshot.json Add MLS sport simulator (mls_bracket) (#422) 2026-05-14 12:45:53 -07:00
0105_snapshot.json Add opt-in Discord pings to standings notifications (#429) 2026-05-15 10:06:54 -07:00
0106_snapshot.json Add user onboarding flow with username selection (#430) 2026-05-15 11:17:15 -07:00
0107_snapshot.json Add user onboarding flow with username selection (#430) 2026-05-15 11:17:15 -07:00
0108_snapshot.json Add auto-start draft at scheduled time (#437) (#438) 2026-05-16 23:37:29 -07:00
0109_snapshot.json Add not-participating exclusion support for event results (#446) 2026-05-19 11:13:32 -07:00
0110_snapshot.json Add public sports overview page (#451) 2026-05-19 23:02:58 -07:00
0111_snapshot.json Add draft email notifications feature (#459) 2026-05-20 15:35:43 -07:00
0112_snapshot.json Add Discord draft pick announcements (#460) 2026-05-20 19:55:48 -07:00
0113_snapshot.json Enforce unique team names within a season 2026-05-23 16:55:08 -07:00
0115_snapshot.json claude/sports-templates-conversion-ILWAM (#71) 2026-06-04 21:31:49 +00:00
0116_snapshot.json Fix draft timer: broadcasts, increments, reconnect sync, overnight pause (#72) 2026-06-06 05:57:46 +00:00
0117_snapshot.json Add idempotent migration for picks_expires_at / picks_started_at columns 2026-06-05 23:44:49 -07:00
0118_snapshot.json Phase A: external HTTP cron jobs for snapshots, standings sync, and simulation (#79) 2026-06-08 07:42:14 +00:00
0119_snapshot.json sync racing standings (#80) 2026-06-10 04:25:48 +00:00
0120_snapshot.json claude/great-lovelace-r3bznh (#88) 2026-06-12 22:35:35 +00:00
0121_snapshot.json claude/great-lovelace-r3bznh (#88) 2026-06-12 22:35:35 +00:00
0122_snapshot.json Unify majors: score once, fan out across windows + tennis bracket EV 2026-06-22 20:32:22 -07:00
0123_snapshot.json Auto-populate & auto-score tennis Grand Slam brackets from Wikipedia 2026-06-26 21:48:00 -07:00
_journal.json Auto-populate & auto-score tennis Grand Slam brackets from Wikipedia 2026-06-26 21:48:00 -07:00