processQualifyingEvent announced the full QP standings on every run. In a multi-season shared major (e.g. Wimbledon), syncTournamentResults re-scores each sibling window on every fan-out sync, so sibling-window leagues received a duplicate full-standings ping each run even when nothing changed — the same re-spam the primary tennis path already avoids. Snapshot each participant's awarded QP before reprocessing and, after the re-score, diff against the fresh rows to notify only participants whose QP changed (a differing value, or a first-time score). This centralizes the change-detection in the shared scoring path, so every sibling window and the admin scoring/bracket routes get the quiet-on-no-change behavior. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Hq3fG4Zn3unntbSQAGSqCq |
||
|---|---|---|
| .. | ||
| components | ||
| contexts | ||
| hooks | ||
| lib | ||
| models | ||
| routes | ||
| services | ||
| test | ||
| types | ||
| utils | ||
| welcome | ||
| app.css | ||
| entry.client.tsx | ||
| entry.server.tsx | ||
| root.tsx | ||
| routes.ts | ||