Changelog29 changes

The command line tool has a --strict option for sync and check that…

Fixed

  • Analytics processing is more reliable: unusual characters in event names, user ids or properties can no longer hold up the numbers for other projects.
  • General sign-in, registration and invite security hardening, including email addresses now being treated the same regardless of capitalisation.
  • A failure during Google or GitHub sign-in now brings you back to the sign-in page with a message instead of an error screen.
  • Disconnecting sign-in methods and saving feature settings are now safe when done at the same time from two places.
  • A feature that was first used partway through the previous period no longer shows a misleadingly large percentage change.
  • The command line tool for Vue, Svelte and Astro now reports a file it cannot read and skips it, instead of silently treating it as a file with no events.
  • Filters with an unrecognised value now return a clear error instead of being ignored.
  • Events that arrive late (from an offline device or a delayed upload) are now counted in the analytics instead of being missed.
  • Events with malformed names, user ids or timestamps are cleaned or set aside, and a failed batch is kept until it can be delivered, so they cannot stall incoming data.
  • The SDK flushes on SIGTERM and SIGINT without stopping your process (use the new `exitOnSignal` option to opt in to exiting), drops saved events older than 14 days, and has a configurable `shutdownTimeoutMs`.
  • `eventra watch` kept losing known events after a file failed to parse; it now keeps them until the file is fixed.
  • The date-range error screen keeps your chosen resolution and filters when you clear the range, and a failed "Load more" keeps the rows you already loaded.
  • The code comparison page keeps its search box on errors, and its tabs work with the keyboard.

Added

  • The command line tool has a `--strict` option for `sync` and `check` that fails when a file could not be read, and `eventra init` asks before overwriting an existing config (or takes `--yes`).
  • Lists that are cut off now say so ("Showing the first 100"), and failed pages show an error with a Retry button instead of a blank screen or a misleading "no data".

Changed

  • The command line tool scans large projects much faster and with far less memory, because folders such as `node_modules` and `dist` are now skipped at any depth. `watch` no longer restarts on its own output, and files that could not be read are summarised once at the end without losing the events already known.
  • The SDK is much lighter in the browser when the connection is down, no longer keeps a server process alive, sends the rest of its queue on shutdown and respects the server's retry hint.
  • Charts mark the current, unfinished period and say that days are in UTC. The adoption chart is now a set of bars on a 0-100% scale, and feature pages no longer show a "Dead" label for features that are not dead.
  • Users now show when they were really first and last seen, based on event time. Billing shows the end of a grace period.
  • Overview and usage pages load faster on projects with a lot of history, and analytics processing recovers from a long backlog and from an unclean shutdown.
  • The command line tool reports events with computed names at the right file and line, and changing many files at once is rebuilt in a fraction of the time.
  • Data is kept for 12 months to match the retention promise: per-user daily data older than that is removed, and users who have not been seen for 12 months are dropped from the users list. Unique users per month are kept as plain totals, so monthly charts still show them after the detailed data is gone; daily and weekly views show "n/a" for older periods instead of a wrong number. The unique users number on the overview now means users seen in the last 12 months.
  • Expired sign-in codes, reset links and old sessions are now cleaned up automatically.
  • New "Code vs data" page. It compares the features your code defines with the events that actually arrive, in five groups: working, never seen, gone quiet, not in your code (for example a typo or an old app version) and removed from code. It shows when your code was last scanned and warns when the scan is old or partial. Run `eventra send` from your main branch in CI to keep it current.
  • The same page shows delivery health: how many events the SDK reports it dropped or could not send in the last 30 days, and why. A client that is fully blocked (for example by an ad blocker) cannot report until a later delivery succeeds, so sending events through your own domain is recommended.
  • The overview loads noticeably faster, and changes to feature settings or thresholds still show up immediately.
  • `eventra watch` and `sync` handle changes in large projects faster, and `eventra send` tells the server whether the scan was complete.
  • The top users list on the project overview loads faster on projects with a lot of events. It now ranks users by active feature-days (a day with activity counts once per feature), and the list says so.
  • Faster user pages and date-range charts on large projects.