Product pages

Releases

Every shipped Releases control: local range pills, KPI cards, table columns, empty copy, and how SDK release tagging feeds the page.

A release is a version string you stamp in the SDK (1.4.2, a git SHA, etc.). The Releases page answers: did this deploy introduce issues or crash more sessions?

Route: /projects/:id/releases
API: GET /api/projects/:id/releases?range={24h|7d|14d|30d|90d}

How data gets here

In SDK init:

HumanBehaviorTracker.init(apiKey, {
  release: "1.4.2",
  environment: "production",
  // dist / commitSha when you upload source maps
});

Without release, issues are not attributable to a version and the table stays empty for the window.

Page layout

RegionContents
Top barTitle Releases (rocket icon)
SubcopyRelease health from release-tagged errors and the issues introduced in each release.
Range pillsLocal React state (not Dashboard URL range=)
KPI gridFour cards
FootnoteCrash-free semantics
Table or emptyRows per release, or dashed empty state

Range pills (local state)

PillMeaning
24hLast 24 hours
7dLast 7 days
14dLast 14 days (default)
30dLast 30 days
90dLast 90 days

Gotcha: These pills do not sync with the shared Dashboard/Replays range= / startDate / endDate query params. Switching pills refetches; in-flight requests are aborted so a fast switch cannot paint stale numbers.

KPI cards

LabelValue
Crash-free sessionsProject-wide % to 2 decimals, or when null
Total sessionsLocale-formatted count
Crashed sessionsLocale-formatted count
ReleasesNumber of release rows returned for the window

Loading (no data yet): pulse skeleton inside each card.

Footnote (shipped copy)

Crash-free sessions is project-wide for the selected window. Per-release crash-free requires sessions tagged with a release (SDK + session schema) and is not yet available.

Do not document per-release crash-free % as shipped.

Table

Shown when releases.length > 0.

ColumnContents
ReleaseMonospace release string
New issuesCount of issues first seen in that release
EventsError/event volume
UsersAffected users
Crashed sessionsSessions with crashes attributed to the release
First seenRelative time (Nm ago / Nh ago / Nd ago); future timestamps clamped so the UI never shows negative “ago”
Last seenSame relative format

Rows are not click-through links in the current UI — use Issues and filter by release after investigating a spike.

Empty & loading

StateUI
Initial loadPulse block (h-64)
No rowsDashed panel: No releases with errors in this window. Stamp a release in the SDK init to attribute issues and health to releases.

Fetch errors are best-effort (silent); the page may show empty/previous data rather than a dedicated error banner.

Workflow after you ship

  1. Tag release (and ideally environment, commitSha, dist) in CI/build.
  2. Upload source maps for that release.
  3. Open Releases → compare New issues / Crashed sessions vs prior versions.
  4. Investigate spikes in Issues.