# What changed in @grafana/faro-web-sdk

> 37 changes in @grafana/faro-web-sdk 2 from its official release notes, upgrade guides and advisories: 2 security, 2 new APIs and options. Each one cited. Sources checked 2026-10-18. HTML: https://unstale.sh/npm/@grafana/faro-web-sdk/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## @grafana/faro-web-sdk 2

### Security

- Fetch keepalive handling was hardened. (2.8.1) — [release notes](https://github.com/grafana/faro-web-sdk/releases/tag/v2.8.1)
- Caps stack-frame line length to bound regex backtracking. (2.7.1) — [release notes](https://github.com/grafana/faro-web-sdk/releases/tag/v2.7.1)

### New APIs and options

- Expose controls for pausing session replay recording. (2.12.0) — [release notes](https://github.com/grafana/faro-web-sdk/releases/tag/v2.12.0)
- User actions gain a configurable initial activity timeout. (2.9.0) — [release notes](https://github.com/grafana/faro-web-sdk/releases/tag/v2.9.0)

### Performance

- FetchTransport now supports gzip request compression. (2.8.0) — [release notes](https://github.com/grafana/faro-web-sdk/releases/tag/v2.8.0)

### Behavior and default changes

- Reliable Fetch transport becomes the default transport. (2.12.0) — [release notes](https://github.com/grafana/faro-web-sdk/releases/tag/v2.12.0)
- Session replay uses Grafana privacy classes by default. (2.12.0) — [release notes](https://github.com/grafana/faro-web-sdk/releases/tag/v2.12.0)
- Preserve recording identity when handing off between tabs. (2.12.0) — [release notes](https://github.com/grafana/faro-web-sdk/releases/tag/v2.12.0)
- Reconcile session ownership before capturing telemetry. (2.12.0) — [release notes](https://github.com/grafana/faro-web-sdk/releases/tag/v2.12.0)
- Trace context is omitted for unsampled sessions. (2.11.0) — [release notes](https://github.com/grafana/faro-web-sdk/releases/tag/v2.11.0)
- Web vitals measurements now forward LCP resource details and LoAF-based INP attribution. (2.10.0) — [release notes](https://github.com/grafana/faro-web-sdk/releases/tag/v2.10.0)
- The SDK includes the git commit hash in app metadata. (2.7.0) — [release notes](https://github.com/grafana/faro-web-sdk/releases/tag/v2.7.0)

### Fixes and other changes

- Sessions start only after prerender activation. (2.12.1) — [release notes](https://github.com/grafana/faro-web-sdk/releases/tag/v2.12.1)
- Session sampling uses stronger randomness. (2.12.1) — [release notes](https://github.com/grafana/faro-web-sdk/releases/tag/v2.12.1)
- Sampling state is preserved when session metadata is updated. (2.12.1) — [release notes](https://github.com/grafana/faro-web-sdk/releases/tag/v2.12.1)
- Signals added during a BatchExecutor flush are no longer dropped. (2.12.0) — [release notes](https://github.com/grafana/faro-web-sdk/releases/tag/v2.12.0)
- Discard recorder attempts that have been invalidated. (2.12.0) — [release notes](https://github.com/grafana/faro-web-sdk/releases/tag/v2.12.0)
- Bind session invalidation to the identity of the request. (2.12.0) — [release notes](https://github.com/grafana/faro-web-sdk/releases/tag/v2.12.0)
- Page errors are no longer logged as session replay errors. (2.12.0) — [release notes](https://github.com/grafana/faro-web-sdk/releases/tag/v2.12.0)
- Clicks on nested child elements now trigger user actions. (2.12.0) — [release notes](https://github.com/grafana/faro-web-sdk/releases/tag/v2.12.0)
- Transient Faro delivery failures are retried. (2.11.0) — [release notes](https://github.com/grafana/faro-web-sdk/releases/tag/v2.11.0)
- Keeps config.paused in sync when pause and unpause are called. (2.10.0) — [release notes](https://github.com/grafana/faro-web-sdk/releases/tag/v2.10.0)
- The full set of fetch and xhr instrumentation options is now typed. (2.10.0) — [release notes](https://github.com/grafana/faro-web-sdk/releases/tag/v2.10.0)
- Input values are masked using a fixed-length mask. (2.10.0) — [release notes](https://github.com/grafana/faro-web-sdk/releases/tag/v2.10.0)
- The keepalive budget is measured in bytes. (2.10.0) — [release notes](https://github.com/grafana/faro-web-sdk/releases/tag/v2.10.0)
- Calling removeBeforeSendHooks now removes the hooks. (2.10.0) — [release notes](https://github.com/grafana/faro-web-sdk/releases/tag/v2.10.0)
- The href in rrweb Meta events no longer includes the query string or fragment. (2.10.0) — [release notes](https://github.com/grafana/faro-web-sdk/releases/tag/v2.10.0)
- Stack parsing no longer stalls on large error payloads. (2.10.0) — [release notes](https://github.com/grafana/faro-web-sdk/releases/tag/v2.10.0)
- Traceparent is no longer injected while Faro is paused. (2.10.0) — [release notes](https://github.com/grafana/faro-web-sdk/releases/tag/v2.10.0)
- Performance timestamps are derived from the wall clock so they remain usable after system suspend. (2.9.0) — [release notes](https://github.com/grafana/faro-web-sdk/releases/tag/v2.9.0)
- A background tab no longer emits an expired session ID. (2.8.2) — [release notes](https://github.com/grafana/faro-web-sdk/releases/tag/v2.8.2)
- The signal that triggers session rotation is now attributed to the new session. (2.8.2) — [release notes](https://github.com/grafana/faro-web-sdk/releases/tag/v2.8.2)
- BatchExecutor can now run in worker scopes. (2.8.0) — [release notes](https://github.com/grafana/faro-web-sdk/releases/tag/v2.8.0)
- Service worker time is reported as 0 when no service worker is used. (2.8.0) — [release notes](https://github.com/grafana/faro-web-sdk/releases/tag/v2.8.0)
- Uses crypto.getRandomValues to generate short IDs. (2.7.1) — [release notes](https://github.com/grafana/faro-web-sdk/releases/tag/v2.7.1)
- Fixes an incomplete regular expression for hostnames. (2.7.1) — [release notes](https://github.com/grafana/faro-web-sdk/releases/tag/v2.7.1)
- Metro bundle id resolution falls back to window when resolving the id. (2.7.0) — [release notes](https://github.com/grafana/faro-web-sdk/releases/tag/v2.7.0)
