Releases
2.0.4
For you
- Nothing changes for you. The games stylesheet lost two rules that repeated another rule's declarations word for word, so every game page carries a few hundred fewer bytes of styling and looks exactly as it did.
- Games played at a neutral site, and postponed games, now show as such on their pages, because the published schedule has started to carry both. The game page could already show them; until now no game had the data. A postponed game says Postponed at the top of its page and on its card in the row of the week's games, whether or not we had published a call for it, and a game with no call says so.
Under the hood
- `games.css` dedupe, no value changed: `.g-form__chip` and `.g-inj__chip` (the recent form and injuries chips) became one grouped rule, and `.g-pl__name` joined `.g-inj__name`, which had the identical declarations. Each of those classes sits alone on its elements, so the rule order cannot change a computed style. The `games-shell` family goes from 26,997 to 26,825 of its 27,000 bytes. Board parity passes with no baseline re-recorded.
- The schedule fact (contract 1.2.0) writes each game's site, from nflverse's location and, for preseason games and any game nflverse does not locate, the scoreboard feed's neutral site flag. A game with neither carries no site and reads as home. It also writes a postponed result for a game the scoreboard feed reports as finished but not completed, which used to be published as a final with no real score. It does not write a cancelled status.
- The live Worker never turns a game the scoreboard feed reports as postponed or cancelled into a final: no confirmed time, no reprice, no deploy hook. A snapshot that already held such a final is corrected to a game that has not started. A finished event with no completed field is still a final.
- Neither the forecast run nor the track record absorbs a 0 to 0 final from the facts channel; both wait for nflverse to record the result. A postponed status was already skipped.
- The facts run keeps each week's injury report as injuries-week-NN.json beside injuries.json, written only when the injuries table was read and carries every column the report requires, so a missing or drifted table never freezes an empty report as that week's last good one.