First feature release since the initial publish. Wire-compatible; adds reliability, extensibility, privacy, instrumentation, packaging, and tests.
Reliability
- Transport hardening: retry + backoff, localStorage offline buffer (drained on init +
online), queue caps, optional gzip (off by default). beforeSendhook;setUser()/setGlobalAttributes()/clearGlobalAttributes().
Replay privacy (behavior change)
- Session replay is now private by default (
replayPrivacy: 'mask'masks all text + inputs, blocks media). Tiered levels + allow/deny selectors + a replay scrub hook.
Instrumentation
- Long tasks + Long Animation Frames (LoAF) via PerformanceObserver (
trackLongTasks, default on). - Frustration signals: rage / dead / error clicks (with
trackInteractions).
Packaging & quality
- tsup dual build: minified ESM + a lean ~21KB CDN/IIFE bundle (replay-less; rrweb stays npm/ESM-only).
rrwebis now an optionalDependency. - Vitest suite (45 tests) + CI; the publish workflow is gated on typecheck + tests and publishes via OIDC trusted publishing with provenance.
Fixes
- Mobile OS detection: iPhone/iPad →
iOS, Android →Android(were misreported as macOS/Linux).