- Finished matches show the STARTING XIs on the pitch (red markers with
the minute on everyone subbed off) with 'Subbed on' / 'Subbed off'
lists below, minutes and ratings included; live matches keep the
current-XI view that swaps substitutes in
- Title-race chart gets a sort toggle, defaulting to 'Biggest movers'
(the teams whose odds changed most at the latest update — what's
relevant now) with 'Title favorites' as the alternative
- Entering what-if on the bracket now pre-fills the model's most likely
tournament: group slots seeded from win-group/advance odds (best-
thirds assigned to their allowed slots via backtracking), every
pairing picked by the model — a complete overview to edit by tapping;
Reset returns to the projection
- Team fixtures drop the US 'vs/@' convention: always 'vs' plus an H/A
badge with a tooltip
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The chart looked broken because its data was: history lived in memory,
so every deploy wiped it (yesterday's points were gone), and each boot
plus the +5min refit appended a fresh point labeled with the same last
result — leaving two identical flat segments on an index axis.
- model_history table: every diary point persists with the finished-
result signature it was computed from; restored at boot
- points only append when the finished set actually changes — refit
and boot recomputes update the snapshot without spamming the diary
- one-time rebuild when nothing is persisted: replay finished results
in kickoff order, re-running the sim after each with later results
masked, so the historical points are recreated faithfully
- chart x-axis shows localized dates instead of raw indices
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>