🚀 Features
- (MCP) Introducing the OpenReplay MCP app, to replay sessions, build charts and more directly from any MCP-enabled host
- (Flutter)(Beta) New Flutter SDK for recording sessions on iOS and Android apps
- (Integrations) Added
Linearas an issue tracker integration
💪 Improvements
- (Replay) Support for native
<dialog>elements and page color schemes - (Replay) Native
<select>dropdowns are now shown when opened by the user - (Analytics) Breakdowns now support event properties and more session attributes (duration, screen size, browser version, metadata)
- (Analytics) Page titles are now displayed in user journeys
- (Tracker) Added
resanitize()for updating sanitization rules on the fly - (Tracker) Improved
privateModewithdata-openreplay-unmasknow applying to entire subtrees and sanitization of referrer URLs - (Tracker) Better compatibility with pages overriding core DOM methods (Prototype.js, MooTools, some polyfills)
- (Tracker) Full TypeScript definitions for all entry points
- (Assist) Ask for the user's permission before an agent can view their live session
- (React-Native) Support for v0.85 and fixes for the new architecture
- (Frontend) Faster dashboards thanks to a new charting library and lazy loading
- (Frontend) Localized the UI in Korean and Ukrainian
- (Backend) Fewer services to run as we merged
heuristicsintodb,assist-api,integrationsandassist-statsintoapiservice - (Backend) Reworked the message parser and the
dbandenderservices for higher throughput, lower memory usage and no data loss on restarts - (Backend) Reworked assets caching with smarter retries, per-host throttling and optional compression
- (Backend)(EE) Reworked metrics across all backend services
- (Spot) Refactored the extension's messaging and storage for better stability
- (DevOps) Replaced
MinIOwithRustFSas the default object storage - (DevOps) Self-contained Docker Compose setup with health checks, ordered startup and a new
docker-upgrade.sh - Minor UI/UX tweaks
- Security enhancements
🐞 Bugs
- Fixed filters on device type and OS version being ignored
- Fixed a bug causing zero-duration sessions to never end
- Fixed page titles being lost on location events
- Fixed a crash when displaying user initials with non-latin characters
- Fixed the player getting stuck in a loading state
- Fixed touch cursors drifting in mobile replays on unknown devices
- Fixed replays breaking when the page's root
<html>element is replaced - Fixed session reset between tabs in tracker
- Fixed JS error messages being cut in tracker
- Fixed Windows 11 detection in tracker
- Fixed UTC offset for half-hour time zones in tracker
- Fixed assist filter operators
- Fixed cards being clipped in dashboards
- Fixed missing sessions returning errors instead of 404 on replay endpoints
- Fixed Kafka topics using only half of the available partitions
- Tracker declarations fail strict TypeScript NodeNext resolution (#4910)
- Sprite icons blank in replay: #OPENREPLAY_SPRITES_MAP container missing (#4895)
- Tracker: People batcher drops user_id when merging same-type actions (#4879)
- Live co-browsing does not update input values in Firefox (#4858)
- Canvas replay is blank in Chrome (#4853)
- Session metadata chips overlap the session timestamp in the Sessions list (#4844)
- Early user input during tracker start produces a malformed batch, truncating the session to ~1s (#4836)
- Adding a custom Event filter never triggers a refetch (#4829)
- Tracker 18.1.2 sends visual batches without split that v1.27 rejects (#4826)
meta_url filter is broken (#4798)- Native
<dialog showModal()>not restored on session replay (#4797) - Heatmap filter doesn't change path to create card (#4792)
openreplay -sfails on Kubernetes version check (#4758)- Canvases ingress missing /ingest rewrite + CORS (#4706)
- Performance module able to hang entire page randomly (#4656)
- JWT refresh leeway default of 3 days allows extended token reuse after expiry (#4649)
- Typo in spot refresh token log message (#4648)
- Log injection in password reset (#4647)
- False positive "app_crash" issues (#4623)
- [React Native] Getting OOM crashes on production (#4581)
- Frontend requests non-existent /v2/api/* endpoints (#4558)
- Elements using conditional CSS not shown in session replays (#4328)
🙏 Special thanks
- @vitaliytv: Add Ukrainian interface translation (#4885)
- @vitaliytv: Improve Russian locale consistency (#4888)
- @moduvoice: Add Korean (ko) translation (#4763)
- @blender50: Fix kubectl version skew and removed --short flag in openreplay-cli (#4762)
- @mattconcord: Declare types entry for ESM consumers in tracker-assist (#4633)
- @joennlae: Add install CRDs to cert-manager (#4602)
- @Farizrmd and @jamesmortensen for reporting vulnerabilities