Release 4.113.0
6 Nov 2026 · pinned package [email protected]
- Bot API calls can be counted at ingest, not stored row by row.
AnalyticsTrackerPgtakescountBotApiAtIngest(off by default): a bot's API call incrementsanalytics_bot_api_hourlyandanalytics_bot_api_dailyby endpoint group, status class and bot family at flush instead of writing a rawanalytics_eventsrow. The hourly and daily rollups add those counters to raw rows, so a day'sapi_calls,bot_hitsanderror_countare what the raw rows gave before, and a day recomputed at close counts each call once. The admin's bot breakdown, status classes and sub-day summary include the counters; a raw page view by a bot still keeps its row, and the option off changes nothing. New tables are expand-only:analyticsSchema()creates them for a new install, and an existing service adds them in a migration.
- Phone minimums in the kit (the fleet phone sweep of 11-05/06):
.ovk-badgeis 12 px (was 11.2 px), and a room's own links (.ov-room > a) are 44 px tall on touch screens (were 40.6 px).
- Bot API calls can be counted at ingest, not stored row by row.
AnalyticsTrackerPgtakescountBotApiAtIngest(off by default): a bot's API call incrementsanalytics_bot_api_hourlyandanalytics_bot_api_dailyby endpoint group, status class and bot family at flush instead of writing a rawanalytics_eventsrow. The hourly and daily rollups add those counters to raw rows, so a day'sapi_calls,bot_hitsanderror_countare what the raw rows gave before, and a day recomputed at close counts each call once. The admin's bot breakdown, status classes and sub-day summary include the counters; a raw page view by a bot still keeps its row, and the option off changes nothing. New tables are expand-only:analyticsSchema()creates them for a new install, and an existing service adds them in a migration.
PagesThe kit
Rules20 Status is a word, never colour alone.43 A count means it is for you; a dot means there is something new.