Skip to content

2.0.4

Choose a tag to compare

@ernestdefoe ernestdefoe released this 31 May 03:21

What's Changed

Maintenance release — a full internal code audit. No user-facing feature changes; one scoring bug fixed and broad performance/quality improvements under the hood.

Fixed

  • Test-data scoring with confidence mode. The admin Testing tab's seeder computed point totals with a duplicate routine that ignored confidence_mode/confidence_penalty, so seeded leaderboards didn't match live scoring. Scoring now runs through a single shared ScoreAggregator used by both live scoring and the seeder.
  • Testing-tab buttons. The seed/clean/wipe endpoints were never routed and returned 404; they now work.

Performance

  • Admin stats no longer fire 260+ queries on a full FBS season — upset rate and consensus are computed from one aggregated pick-count query.
  • Profile history no longer fires 30+ rank-count queries — week/season/all-time ranks are batch-loaded and ranked in PHP.

Internal

  • All raw database access migrated from Capsule DB::table() to Eloquent across 7 controllers and the seeder.
  • Logo storage now writes through Flarum's asset filesystem disk (cloud/CDN-friendly) instead of native filesystem calls.
  • CFBD API and logo downloads use the Guzzle HTTP client instead of raw curl.
  • Exceptions in the leaderboard/history/scores endpoints are now logged instead of silently swallowed.
  • Settings, current-season lookup, and service dependencies are injected rather than resolved ad hoc.