1.0.2
29 Apr 2026
  • Page-view tracking is now dispatched as a queued job (RecordPageViewJob) and deferred to ->afterResponse(), so the HTTP response is no longer blocked by the per-request DB writes
  • Added composite indexes on stats_page_views(visitor_hash, viewed_at, path) and (visitor_hash, country_code, viewed_at) to back the unique-visitor subqueries
  • GeoIP lookups are now memoized per request and cached for stats.geoip_cache_minutes (default 60) so repeat visitors and bots skip the driver
  • The admin dashboard traffic widget caches its 14 aggregate queries for stats.widget_cache_minutes (default 5)
  • Hardened the stats:purge schedule with onOneServer() + withoutOverlapping() + runInBackground()
  • Added STATS_QUEUE_CONNECTION / STATS_QUEUE_NAME .env settings to control where the tracking job runs
1.0.1
05 Apr 2026
  • Added stats_referrer_urls table for per-URL referrer aggregation
  • Referrer domains now link to a drill-down page showing individual referring URLs
  • Domain drill-down available from both the overview card and the full referrers page