v0.4.0-beta.1 — Custom date ranges, full referrer URLs, and a more resilient dashboard
Pre-release
Pre-release
AG Analytics v0.4.0-beta.1
A large update since v0.3.1-beta.1 — a custom calendar-based date range picker,
referrers grouped by full URL instead of just domain, a custom site-picker
dropdown, and a handful of real bugs found and fixed along the way.
Added
- Custom date range picker. A new "Custom range" period option opens an
always-visible calendar (built from scratch, no library) styled to match
the dashboard's own design system. Click a start day, then an end day —
the range between them highlights, and a summary line shows what's
selected. Nothing on the dashboard changes until you click Apply. - Referrers panel now shows the full linking URL, not just the domain —
each row is a distinct page that linked to you, with its own count, and
clicking it opens that exact page (previously it only linked to the
domain's homepage). Note: many browsers only ever send the bare origin for
cross-site navigations (Referrer-Policy: strict-origin-when-cross-origin,
the modern default everywhere) — that's the browser's own privacy
behavior, not something this or any analytics tool can see past. - Custom site-picker dropdown, replacing the native
<select>. Some
browsers had a real, reproducible bug where a click on a site could
silently reselect the first one instead — a custom-rendered list sidesteps
that entirely and matches the sidebar's design instead of looking like a
bare system control. - Edit site modal now edits the name too, not just the domain (the
backend already supported renaming — it just wasn't wired up to the UI). - Per-panel error states. If one panel's data fails to load, the other
panels still update normally instead of the whole dashboard silently
freezing on stale data with no indication anything went wrong. - Dashboard footer now has a small mail icon for contact/bug reports.
Fixed
- A failed request to any one breakdown panel used to silently freeze
every panel. All 11 panels were fetched withPromise.all, which
aborts entirely if even one request fails — nowPromise.allSettled, so
one bad response only affects that one panel. - Switching sites didn't reset the period selector. Picking "12 months"
on one site and then switching to another kept showing 12 months there
too, instead of resetting to a sensible default ("Today"). - The empty "No data yet" placeholder lost its muted styling to a CSS
cascade bug (a same-specificity rule declared later in the stylesheet was
silently winning), making it hard to tell an empty panel from a real one
at a glance. non_web_requestevents (seev0.3.0-beta.1's changelog) now show a
plain-English label in the Custom events panel instead of the raw
internal event name.- Removed the unused
descriptionfield from the "Add site" form — it was
never shown anywhere after creation, just dead weight in the form. - Removed
APP_RELEASE_DATE, unused since the version tag stopped showing
a date.
Upgrading from v0.3.1-beta.1
No new migration — the schema is unchanged. Just deploy the new Worker code
and static assets as usual.
Full Changelog: v0.3.1-beta.1...v0.4.0-beta.1