Releases: openreplay/openreplay
Releases · openreplay/openreplay
v1.18.0
🚀 Features
- (Android)(Beta) Support for —
Android
andReact Native
— apps for replaying mobile sessions with full-fledged DevTools (crashlytics/network payloads/performance metrics) - (iOS/Android)(EE) Limit the number of recorded sessions by capturing only those that meet certain conditions
- (Connectors)(EE) Introducing S3, Elastic and OpenSearch data connectors
💪 Improvements
- (Replayer) Play and sync an audio track with the session recording
- (Replayer) View tabs that were closed by the user during a multi-tab session
- (Replayer) Added keyboard shortcuts for easier navigation
- (Replayer) Prefetch the first part of the recording’s file for faster time-to-replay
- (OmniSearch) Find sessions using UTM parameters (
source
,medium
orcampaign
) - (Assist) Support of compression (gzip) for large batches in cobrowsing sessions
- (Assist) Initiate the Peer socket only upon starting a webRTC call
- (Plugins) Rewrote both GraphQL plugin and the Redux actions and state tracking logic
- (Plugins) Better TypeScript support in Zustand
- (DevTools) Redesigned the Redux state view into logs (
prevState
,action
,nextState
) - (Backend) Improved the canvas pipeline by getting rid of videos (ffmpeg) and therefore reducing CPU and storage
- (Backend) New logging format and tracing in all ingestion services
- (Backend) Added support for IAM Roles in AWS
- (Tracker)(EE) Ability to run in a co-browser (assist) mode only
- (Postgres)(EE) Support of partitioning for all tables related to sessions and events
- Minor UI/UX improvements
- Security enhancements
🐞 Bugs
- Fixed an issue in tags preventing it from rendering right after applying changes
- Assist reports were broken and unusable
- Resolved a bug in frontend not sending the refreshToken to the API leading to disconnections
- Fixed an issue in clickmap causing filters to be ignored
- Fixed a rendering bug in clickmap card
- Removed duplicate filters in clickmap card
- Resolved an issue preventing notes from opening during replay
- Platform filter was being ignored in table card
- Couldn’t replay sessions from the funnel card
- Fixed crash happening in Chrome (code 11)
- Fixed a crash in replayer caused by iFrame node onload
- Fixed usability test description check
- Fixed a bug when streaming multiple canvases in assist
- Fixed a bug in ClickHouse preventing URL parameters and CSS selectors from being inserted
- TypeError: Cannot read properties of undefined (reading 'createdAt') (#1884)
- Paging issue in sessions list (#1891)
- Srcset value is not saved correctly if the URLs contain commas (#1895)
- Minio. Access denied for assets in sessions-assets bucket (#1911)
- Assets are not loading (#1915)
- Building React Native app crashes (#1918)
- Video player issue loading images (#1947)
- Tracker - Aborted request raise exception (#1980)
- Network Sanitizer type does not allow to return null (#1992)
- Error while caching asset "NotImplemented: Header 'x-amz-tagging' with value 'retention=default' not implemented" (#2018)
- XhrProxy silently failing when passed URL object (#2035)
v1.17.0
🚀 Features
- (Tag and Watch) Tag a particular element in your web app (e.g. popup) and search for sessions where it’s been displayed for users
- (DevTools) Ability to capture and troubleshoot websocket messages
- (Offline Mode) Record sessions even when your web app is offline
- (Conditional Recording)(EE) Limit the number of recorded sessions by capturing only those that meet certain conditions
💪 Improvements
- (React-Native)(iOS) Support of network payloads in DevTools
- (Assist) Improved search and reviewed the way we manage WebSockets
- (Backend) Reworked the canvas processing pipeline and reduced resource consumption
- (Tracker) Better handling of pages with multiple canvas elements
- (Plugins)(Assist) Changed the WebSocket reconnection policy by adding exponential waits
- Minor UI/UX improvements
- Security enhancements
🐞 Bugs
- Fixed a bug preventing dead clicks and errors from appearing in X-Ray
- Added method to restart canvas capture in case of context recreation
- Fixed an issue preventing iOS sessions from being returned to frontend
- Fixed an issue in sessions list not properly resetting its pagination
- Fixed a display issue with multiple canvases in session replay
- Fixed a bug in frontend related to enabling the Elastic integration
- Fixed the display of events for mobile recordings
- Fixed a bug in CLI when installing k9s
- Console.log shows as coming from console.js in devtools (#1842)
- Receiving emails with blank body (#1829)
- Error during clean install - command not found (#1818)
- Error Occurs in Tracker when Aborting XHR Calls (#1813)
- Remove console.log Statements from Tracker (#1810)
- Fix invitation password set (#1795)
- Cannot reset password or accept invitation (#1794)
v1.14.0
🚀 Features
- (Feature Flags) Enable or disable a feature, make gradual releases and A/B test all without redeploying your app
💪 Improvements
- (Replayer) Improved the rendering performance with less re-renders from the control bar
- (Tracker) Console and Network modules were rewritten to use Proxy objects instead of directly patching the window object (
useProxy: true | false
tonetwork
config) - (Tracker) Added a
forceFlushBatch
method to send over current events on demand (#1395) - (UI/UX) Moved session settings to preferences page
- (Backend)(EE) Added a Redis based cache layer
- (Connectors)(EE) Reviewed message processing pipeline in Redshift
- (API)(EE) Support of multi-workers and better async handling
- (API)(EE) Introduced the notion of a service account
- Minor UI/UX improvements
- Security enhancements
🐞 Bugs
- Re-added the handler of custom events in
db
service after being mistakenly deleted - Added a check in tracker to ensure browser has the required API for multi-tabs (broadcast channel)
- Fixed the closed pool error in
db
service - Fixed a crash in replayer caused by recordings having way too many tabs
- Fixed a panic occurring in
heuristics
service - Fixed input durations recorded on programmable autofill in tracker
- Fixed a bug in Redshift connector preventing userId from being exported
- Cannot read properties of undefined (reading 'axiosResponseObj.config') (#1392)
- OpenReplay session getting freeze on popup modals (#1335)
v1.16.0
🚀 Features
- (Replayer) Support of
<canvas>
elements in session replay as well as in co-browsing - (Usability Testing)(Beta) Conduct usability tests efficiently and gain valuable insights into user behavior to improve UX
💪 Improvements
- (Replayer) Made the DevTools panel resizeable
- (Backend) Use of the Zstandard compression algorithm for storing recordings (via the
COMPRESSION_ALGO: zstd
env variable) - (Assist) Reworked the service from the ground up for improved performance
- (Integrations) Refactored the code to make contributions easier
- (Community) Add nodeSelector or affinity for the migrationJob config in helm chart (#1687)
- Minor UI/UX improvements
- Security enhancements
🐞 Bugs
- Fixed an issue that prevented source maps from being processed
- Fixed an issue with cards not being deleted
- Fixed an issue in search resulting from a key conflict between metadata and events
- Fixed an issue when searching using the not_contains operator
- Fixed a bug in search with performance related events not taken into account
- Fixed an issue that caused the Redux tab to crash in DevTools
- Fixed an issue in the display of clickmaps
- MS Teams integration subtitle contains placeholder text (#1724)
- Empty message box on MS Teams error alert (#1719)
- Unable to create new alert targeting MS Teams integration (#1677)
- Sharing session to MS Teams displays empty box (#1681)
- Cannot Reset Password (#1665)
- Error Deleting User (#1664)
- Opening a session causes 'Exception in ASGI application' (#1554)
- Uncaught (in promise) TypeError: Failed to execute 'removeChild' (#1511)
- Sourcemap-uploader logs all of the files in the console (#1694)
v1.15.0
🚀 Features
- (iOS)(Beta) Support for —
iOS
andReact Native
— apps for replaying mobile sessions with full-fledged DevTools (crashlytics/network payloads/performance metrics) and heuristics (crash detection/click rage) - (Analytics) Introducing Path Analysis to help visualize how users navigate through your website
- (Assist)(EE) Keep an eye on key metrics, audit team sessions and create reports
- (Deployment) Support of Docker Compose
💪 Improvements
- (Replayer) Show closed tabs as users browse your app in multi-tab sessions
- (Replayer) Display the user's timezone in playback and sessions page
- (Replayer) Added a contextual menu to the player for quickly launching DevTools
- (DevTools) Capture of
TransferBodySize
in network activity - (UI/UX) Reviewed the navigation workflow and implemented a new menu
- (UI/UX) Added modules to allow enabling or disabling specific sections in frontend
- (UI/UX) Redesigned the integrations section in Preferences
- (Tracker) Ability to catch browser rendering delays and reflect them in replays
- (Tracker) Added a safe wrapper for Angular apps
- (API) Simplified the OmniSearch logic to make it easy to add new analytics capabilities
- (Backend) Implemented a reconnection mechanism to Postgres, ClickHouse, Redis and Kafka clients
- (Backend) Refactored
assist
and reviewed the socket handling mechanism - (Backend) Improved session end logic and partition management in
ender
- (Connectors)(EE) Full rewriting of
Redshift
andClickHouse
connectors in Golang - (Assist)(EE) Added prometheus metrics for better monitoring
- (Deployment) Improved the support of external proxies
- Minor UI/UX improvements
- Security enhancements
🐞 Bugs
- Fixed an issue with missing "js_exception" in sessions table
- Updated the "getSessionURL" function in tracker
- Fixed iFrame observer timeout in tracker
- Added a safe guard for HTML tag names in replayer
- Disabled mouse movement on inactive tabs during replays
- Fixed an issue with height resizer in clickmaps
- Resolved the cursor position in cobrowsing sessions
- Fixed a reconnection issue when initiating a cobrowsing session
- Fixed multiple issues related to multi-tab feature with tab state duplication
- Fixed a bug causing CPU surge in assist service
- Fixed a bug affecting referrer not being inserted in db
- Unable to Access /signup after OpenReplay installation (#1502)
- Browser doesn't support required api, or doNotTrack is active (#1463)
- Session Token header not allowed on all urls (#1449)
- Ky http requests not getting session token header (#1446)
- Chalice health check failing with self signed cert (#1421)
- Unhandled Exception Error ReferenceError: fetch is not defined (#1420)
- ReferenceError: XMLHttpRequest is not defined (#1414)
- Add a "finalizeBatch" method that could send all current events over on demand (#1395)
- Multi-Step funnel with metadata filter not applying metadata filter (#1599)
v1.12.0
🚀 Features
- (Replayer) Detection of new frustrations like
crashes
andtext selection
- (Replayer) Show a trail with each mouse movement
💪 Improvements
- (Replayer) Made jumps almost instant (up to 5x faster on heavy recordings) by rethinking the DOM node creation logic
- (Replayer) Files are up to 3x smaller (brotli compression) for faster time-to-replay
- (Replayer) Choose your preferred playback display time (relative vs absolute)
- (Tracker) Support of compression on big messages to reduce bandwidth usage
- (Analytics) Improved the way we capture selectors and display clickmaps
- (Backend) Reduced the size of recordings (by 30% on average) by improving our messaging protocol
- (Backend) Implemented a memory control manager for
ender
andheuristics
services - (Backend) Deprecated input values insertion in databases
- (Backend) Added support for mutual TLS to cache assets behind authentication walls (#1034)
- (API) Ability to configure an expiration date for the deleted jobs
- (API) Better handling of failed Postgres queries
- (UI/UX) Redesigned the onboarding and getting started pages
- (UI/UX) Enforced strong password usage
- (UI/UX) Show the number of recorded sessions and events in the health status widget
- (DevOps) Ability in CLI to fetch latest patches for the current release
- (EE)(Assist) Support of compression in WebSockets to speed up connection times (2x faster)
- (EE) Allow windows integrated authentication for SAML (#1072)
- (EE) Support of project filtering in all data warehouse connectors
- Minor UI/UX improvements
- Security enhancements
🐞 Bugs
- Fixed a deadlock issue in audit trail
- Fixed an issue affecting the login time when using multiple projects
- Fixed a broken replay issue due to dictionary not being initialized properly
- Fixed the unmount logic after leaving the replay page
- Fixed a regression affecting console logs in live sessions
- Fixed a performance issue affecting tracker caused by crash detection
- Improved the email sanitizer regexp performance in tracker
- Fixed a bug affecting the configuration of the Elasticsearch integration
- Fixed search and scrolling in assist’s multi-view slideout
- Delete user job is not executed (#1150)
- Custom filters in sessions URL get dropped via a redirect (#1171)
- Time and issues are not displayed in red in custom events (#1029)
v1.13.0
Release Notes
🚀 Features
- (Replayer) Support of tabbed browsing by grouping multi-tab sessions into a single recording (you can now see your users move across tabs as they browse your app)
- (Replayer) Made geolocation a bit more accurate by determining the state and city associated with a session
💪 Improvements
- (Replayer) Better splitting of recording files (based on duration) for faster time-to-replay
- (OmniSearch) Ability to search for sessions by state and/or city
- (Plugins) Improved MobX actions and state display
- (Analytics)(EE) Reviewed the displayed text and number formats for insights
- (API) Enhanced SMTP integration for issue detection
- (EE) Native support of Azure Blob Storage
- (EE) Support of custom port in SSO
- Minor UI/UX improvements
- Security enhancements
🐞 Bugs
- Fixed an issue causing caching of projects to fail in backend services
- Ignore lowercase HTTP methods when saving network requests to Clickhouse
- Fixed a bug leading to XHR headers not being captured with network requests
- Fixed broken replays due to random resets in string dictionary
- Prevent the stop() method from causing auto restarts in tracker
- Fixed a regression preventing strong password from being enforced when signing up
- Frontend crashes when all projects have been removed
- Fixed a crash in frontend when clicking on DevTools > Performance
- Long URLs are shrunk to an invalid value (#1253)
- Upgrade from 1.8.1 "failed to query with labels: unauthorized" (#1255)
- VueX tracker does not capture all store states (#328)
v1.10.0
TL;DR: Check the new features and improvements in the v1.10.0 blog post.
🚀 Features
- (Analytics) Added click maps for tracking user clicks and frustrations
- (Integrations) Support of MS Teams for sharing replays and notes
- (Analytics)(EE) Introducing insights for surfacing key issues
- (Assist)(EE) Ability to record co-browsing sessions for training purposes
- (Assist)(EE) Enabled multi-view mode for watching up to 4 live sessions at once
- (DevOps) Introducing a CLI to ease the setup/update/troubleshooting operations
💪 Improvements
- (Analytics) Revamped dashboards and replaced metrics with cards for a better experience
- (Replayer) Added more timezones in settings
- (Replayer) Absolute time is now displayed in timeline and network payloads
- (Replayer) Removed the limit on X-Ray categories
- (Replayer) Ability to replay recordings at a lower speed (#991)
- (Replayer) Include timespan in the /sessions URL alongside other filters (#965)
- (Plugins) Merged
Fetch
andAxios
plugins with tracker - (Tracker) Added support for XHR requests
- (Tracker) Introduced a dictionary based logic for improving the size of big recordings
- (Backend) Implemented a pre-decoding mechanism for skipping broken batches
- (Backend) Improved
sink
with batch and file buffers - (Backend) Improved
db
by removing Postgres transactions and rethinking batches and bulks - (Backend) Added worker pool and tasks queue for
storage
- (Backend) Enhanced
storage
for faster file processing and upload - (DevOps) Added support for global env variables
- (DevOps) Added shared PVC name as global variable
- (EE) Kafka compression and batching are now enabled by default
- (EE) Added handlers for Kafka rebalance signal to avoid data loss and duplication
- (EE) Support of supply chain signing
- (EE) Enabled mTLS support
- (EE) Implemented secret rotation using Hashicorp Vault
- (EE) Ability to enforce SSO for logins
- Minor UI/UX improvements
- Security enhancements
🐛 Bugs
- Missing assets due to rolling deployment (#883)
- Replayer crashes when dragging timeline (#971)
- Assets not loading in Shopify websites (#963)
- Filters on sessions page are not automatically applied from direct URL visit (#961)
- Import without ".js" suffix in breaks vitest (#981)
- Potential performance issue on get nodeName (#927)
- Fixed an issue with resetting token in tracker's web worker on mobile browsers (#944)
- Fixed a crash in Chrome with rare recordings (#1009)
- Removed mouse cursor for mobile recordings in replayer
- Fixed caching for the
.ashx
file extension - Fixed wrong urls for unprocessed session files
- Fixed an OutOfMemory issue when handling big replay files in storage
- Fixed an issue related to skipping sessions cache layer in ClickHouse connector (EE)
- Fixed incorrect message timestamps in recordings
- Fixed wrong message order in some recordings
- Fixed the image URL resolver
- Fixed the display of console logs and errors in Assist
- Minor fixes everywhere
v1.11.0
🚀 Features
- (Replayer) Detection of new frustrations like
mouse thrashing
,click hesitation
, andinput hesitation
- (UI/UX) Introducing a health status widget to ease troubleshooting
- (DevOps) Automated the data cleanup process via the CLI
💪 Improvements
- (Replayer) Implemented lazy-loading for faster time-to-replay
- (Replayer) Ability to see the current time as absolute (#1023)
- (DevTools) Show when a resource is served from browser cache
- (Tracker) Record network requests from same-origin iFrames (#1016**)**
- (Plugins) Added
OnCallDeny
,OnControlRemoteDeny
andOnRecordingDeny
callbacks - (Backend) Moved page and input events from
db
toheuristics
- (UI/UX) Redesigned the login and signup pages
- (DevOps) Check previous schema version before migrating Postgres
- (DevOps) OpenReplay can now be installed using the CLI
- (DevOps) Updating the deployment parameters can now be done via the CLI
- (DevOps) Serve/proxy the tracker from the OpenReplay instance (#402)
- (DevOps) Updated the helm charts to support patch releases (#1044)
- (EE) New metrics for
heuristics
andstorage
services - (API) Allow option to set SSL verification to false (#1057)
- Minor UI/UX improvements
- Security enhancements
🐛 Bugs
- Fixed a memory leak in
heuristics
that occurred in rare situations - Ensure content-type is text/css when caching stylesheets
- Fixed a crash in live sessions when a turn-server is used
- Unable to search for sessions and scroll in Assist’s multi-view slideout
- Fixed long notifications batch in
alerts
- Handled failed transaction block in API
- Fixed authorized version hopping when an upgrade fails
- Chrome may crash with recordings having large states (#1009)
- Time and issues are not displayed in red in DevTools for custom events (#1029)
- Redux logs not showing up in DevTools on self-hosted instance (#1040)
- Tracker is not compatible with the latest tracker-zustand package (#1032)
- Fixed an issue in CLI causing components to infinitely wait during restart
v1.9.0
TL;DR: Check the new features and improvements in the v1.9.0 blog post.
🚀 Features
- (Notes) Introducing Notes for annotating session recordings and sharing feedback
- (Bug Report) Make a bug report based on session replay insights and share it with your team
💪 Improvements
- (Replayer) Support of
FontFace()
andfocus
events - (DevTools)
Fetch
andAxios
requests are now displayed under theNetwork > Fetch/XHR
tab - (DevTools) Merged
Exceptions
with theConsole > Errors
tab - (DevTools) Redesigned some tabs and simplified common interactions
- (DevTools) Reviewed the synchronization logic with the replayer
- (DevTools) Data is now stored in a separate file and fetched async for faster time-to-replay
- (DevTools) Added a diff view in state management tab (Redux, VueX, Pinia, Zustand and MobX)
- (Assist) Added
serverURL
option for supporting custom ports in websockets - (Backend) Improved the way we merge and count captured JS errors
- (Backend) Added a cache layer for sink to help with rewriting assets
- (Backend) Support of graceful shutdown in all services
- (Backend) Fully reviewed the message processing layer
- (Backend) Support for Redis credentials and TLS connections (#670)
- (Tracker) Implemented server time synchronization on start
- (Tracker) Ability to attach tags to a reported error when calling the
handleError
method - (Plugins) Added agent’s details to the
onAgentConnect
,onCallStart
andonRemoteControlStart
callbacks of tracker-assist - (DevOps) Refactored and extracted
sourcemapreader
code into a new backend service - (DevOps) Run containers with a non-root user
- (DevOps) Ability to customize installation namespaces
- (DevOps) Allow storing credentials in secrets rather than env config (#669)
- (UI/UX) Redesigned the navigation menu
- (EE) Implemented encryption (AES-CBC) for session replay files
- (EE) Enhanced session replay and devtools permissions
- (EE) Enable Kerberos auth for Kafka (#807)
- Security enhancements
🐛 Bug Fixes
- Fixed a bug in Assist where jumping from past to live activity might not work
- Fixed an issue where assets couldn’t be downloaded and cached (403)
- Better handling of broken messages to avoid memory leaks
- Handle wrongly formatted credentials in GitHub connector
- Fixed the black screen bug when disabling the camera in a webRTC call
- Fixed camera size issues in a webRTC call
- Fixed a regression happening with iFrames and localStorage (#637)
- Fixed
remoteControl
end function not being called on agent disconnect - Fixed random websocket connection crash in live sessions
- Fixed a frontend crash due to large number of console events
- Fixed a scroll issue in replay when app is using ShadowDOM
- Fixed an issue with performance.now() in tracker leading to very long sessions
- Fixed verbose CLI option in sourcmaps uploader (#808)
- Fixed a bug where favourite sessions wouldn’t show up (EE)
- Assist plugin failing to use the specified port (#745)
- Missing styles from FluentUI (#750)
- Fixed a timeout issue with querying funnels
- Some Windows/Chrome users couldn’t scroll the list of filters in OmniSearch
- Fixed and issue with auto-play with support of sessions pagination
- Minor bug fixes here and there