brackt/app
Claude 8990bf4281
Condition CS2 Major simulator on already-known results
The CS2 Major projected-points simulator re-simulated outcomes that had
already happened, so its projections drifted from reality as a major
played out. Specifically it ignored the Champions Stage bracket entirely
(re-simulating the whole 8-team playoff each iteration), only locked in
Swiss stages all-or-nothing once 8 eliminations were recorded, seeded the
bracket by world rank rather than real Stage 3 performance, and read
qualifying points only from fully-completed events.

This conditions each simulation on whatever is already known and only
randomizes the undecided remainder:

- Champions Stage now honors the real bracket (playoffMatches): actual QF
  pairings supply the seeding, and any completed QF/SF/Final result is used
  verbatim instead of re-simulated. Falls back to Elo seeding when no
  bracket exists.
- Swiss stages reconstruct each team's current W-L from real match results
  (seasonMatches) so partly-played stages lock in their decided games and
  only the remaining teams are simulated; generalize simulateSwiss to start
  from seeded records.
- Provisional QP already written to event_results for settled (eliminated)
  teams is used verbatim.
- reconcileAdvancers keeps each stage at exactly 8 advancers so ragged
  mid-stage snapshots can't produce malformed downstream stages.

Adds unit coverage for bracket honoring (full and partial), partial-stage
locking, and recorded-QP override.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018zMG6JFng8bMqZYweffVuE
2026-06-20 02:14:49 +00:00
..
components claude/sweet-carson-46j5k6 (#100) 2026-06-19 06:15:32 +00:00
contexts feat: implement middleware and context provider for Express integration 2025-10-11 20:56:00 -07:00
hooks Fix SSR/hydration timezone flip in event date and time display (#95) 2026-06-17 06:09:29 +00:00
lib claude/practical-newton-4v041g (#98) 2026-06-18 02:33:05 +00:00
models claude/bracket-wins-minimum-qp-el8z14 (#99) 2026-06-19 01:25:17 +00:00
routes claude/bracket-wins-minimum-qp-el8z14 (#99) 2026-06-19 01:25:17 +00:00
services Condition CS2 Major simulator on already-known results 2026-06-20 02:14:49 +00:00
test claude/sweet-carson-46j5k6 (#100) 2026-06-19 06:15:32 +00:00
types Redesign standings page with sortable table, 7-day change, and chart repositioned (#205) 2026-03-22 11:05:13 -07:00
utils claude/sports-templates-conversion-ILWAM (#71) 2026-06-04 21:31:49 +00:00
welcome Redesign to dark-mode-only with navy palette and accent colors (#13) 2026-02-20 19:26:11 -08:00
app.css Add electric flash + fade animation for draft picks, fixes #381 (#407) 2026-05-10 23:17:29 -07:00
entry.client.tsx Filter unnecessary sentry css and js errors. 2026-03-15 10:24:57 -07:00
entry.server.tsx Replace console.* with structured logger, fix no-inferrable-types (closes #98) (#199) 2026-03-21 13:41:39 -07:00
root.tsx fix: resolve all 48 WCAG 2.2 AA accessibility issues (#439) 2026-05-17 20:11:38 -07:00
routes.ts claude/beautiful-hawking-a72ilq (#92) 2026-06-16 14:11:51 +00:00