New features
Dashboard
Timeline annotations: pin notes on the overview chart, pick hour and minute, any emoji as icon (#1164, #1173, #1168)
Saved segments: named, reusable filter sets in the Filter popover (#1165, #1166)
Date selector overhaul: two-pane picker with typed dates/times, ten-preset rail with hotkeys, and a choice of comparison window (previous period, matching weekdays, same period last year) (#1148, #1151, #1152, #1167)
Past-minutes navigation; period chart axes no longer end a bucket early (#1130)
Optimistic dashboard edits, no waiting on save
Identify User dialog: add, edit, remove user traits
Dashboard embed: revoke the private embed link
Frog avatars replace boring-avatars (#1127, #1128, #1138)
Organizations table shows subscription source with icons
Bot detection
Detection runs for every site even with blocking off; catches paced distributed crawlers (#1123)
Site flood detection with per-site traffic baselines refreshed every 15 min
Bots dashboard names the bot and splits AI crawlers from AI agents (#1147)
New viewport and screen-dimension signals; single Bot Signal contract module (#1116)
API and auth
Organization API usage endpoint and Usage cards; clearer rate-limit feedback
Better Auth 1.7.3 with OAuth provider support
Fixes
Goals honor page filters and first non-empty UTM attribution (#1177)
list_sites 401 for org-owned API keys (#1172)
Previous-period line aligned on week/month buckets (#1169)
Sub-second event ordering preserved (#1144)
Untitled pages included in pages table (#1143)
Event names filtered at row level (#1096)
Custom UTM traffic without referrer falls back to Referral, not Unknown (#1102)
Replay click labels resolved per snapshot (#1146)
Site access cache invalidated after creation (#1142)
CARTO basemap replaced with OpenFreeMap (#1145)
Long URLs no longer hide the timestamp (#1100)
Empty region input in geo lookup; whitespace/non-finite strings preserved in query results
GSC and PDF export ranges correct in past-minutes mode
.well-known forwarded to backend in custom Nginx config (#1107)
Performance
Cut mutation-driven parts-lock contention on the ClickHouse ingest path (#1131)