You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
#4960c8e53fa Thanks @posthog! - Log a console warning when session replay stops capturing canvas frames (browser without OffscreenCanvas, a CSP that blocks blob: workers, or a failing canvasCapture.maskRegionsFn), and stop changing WebGL and WebGPU canvas settings when canvas capture fails to start
(2026-09-17)
#49770257a29 Thanks @lucasheriques! - Share survey choice and question shuffling between web and React Native through surveys core. Use Fisher-Yates for web questions, preserve Other-last choice ordering, and avoid mutating configured choices.
(2026-09-17)
#5007c3043f4 Thanks @marandaneto! - Add a session diagnostic when stale replay configuration cannot be refreshed, without changing recording behavior.
(2026-09-17)
#4709c1d1faf Thanks @posthog! - Prefer synchronous compression for events captured with send_instantly, including the initial $pageview, to avoid delaying request dispatch on asynchronous compression.
(2026-09-17)
#4979c767b98 Thanks @darkopia! - fix(surveys): keep URL prefill working when localStorage is unavailable, such as on a page with an opaque origin or in private browsing
(2026-09-16)
#4926ec4062b Thanks @posthog! - Stop treating a <link rel=preload as=style> resource hint as a stylesheet when recording. Because it carries the URL of the sheet it preloads, the recorder matched it to the loaded stylesheet and inlined the whole sheet onto it, putting the CSS in every full snapshot twice and reporting a failed stylesheet deferral on every snapshot.
(2026-09-16)
#496285b775a Thanks @posthog! - Docstrings for identity_hash and setIdentity() now say the hash is signed with the Secret API key from Support settings, not a project secret API key or a personal API key.
(2026-09-15)
#494107c1045 Thanks @marandaneto! - Capture causes and AggregateError members with relationship metadata and individual stacks, limiting output to 50 entries and 1,000 member inspections.
(2026-09-15)
#4898372afba Thanks @posthog! - Contain a throw from a third-party patched AbortController.abort() when our own fetch timeout fires, so it is retried instead of escaping as an uncaught error, and report a single outcome per request.
(2026-09-15)
#491038b61f9 Thanks @posthog! - Keep the end of a session recording when one replay event is too large to stringify: that event is dropped and the rest of the buffer still ships, instead of the size estimate throwing and stopping the unload flush.
(2026-09-15)
#49095d4f1f7 Thanks @posthog! - Keep the session recording observers that started when one of them fails to initialize, and report the failed observers in the recorder debug properties.
(2026-09-15)
#4846bd4543e Thanks @posthog! - Keep session recording snapshots from different windows of the same session in separate uploads to preserve their window attribution.
(2026-09-14)
#49543c68c08 Thanks @marandaneto! - Respect Retry-After, including repeated headers, up to 30 seconds on retryable browser responses without shortening exponential backoff.
(2026-09-14)
#4916d037ea1 Thanks @mayteio! - Read Meta's _fbc and _fbp cookies for the Conversions API. When the Meta pixel is on the page, its _fbc cookie holds the true ad click time, so that value now wins over the time PostHog stamps on the pageview that follows the click, and a click that landed before the SDK loaded is no longer lost. The _fbp browser ID is captured as the $fbp person property, which makes it available to a conversion sent later from a backend. Both cookies are read under the same switches as the URL click ID: save_campaign_params: false turns the reads off, and cookieless mode skips them.
(2026-09-14)
#49584a46fab Thanks @marandaneto! - Add a resetError callback to React error-boundary fallbacks so applications can retry rendering without remounting the boundary.
(2026-09-14)
Patch Changes
#492762fc60b Thanks @marandaneto! - Fix lost event retries after restoring a page from the back-forward cache.
(2026-09-14)
#49356a78625 Thanks @marandaneto! - Fix false dead clicks after synchronous DOM updates. Clicks stopped from bubbling are now evaluated too, which may increase dead-click counts for inert controls.
(2026-09-14)
#4936ee6fd02 Thanks @marandaneto! - Prevent buffered session replay data from crossing projects that share a persistence name during page navigation.
(2026-09-14)
#4918c666606 Thanks @pauldambra! - Add metrics.network config to record HTTP and HTTPS fetch and XMLHttpRequest durations as histograms, with an optional custom metric name and attributes.
(2026-09-14)
Patch Changes
#4894d81541b Thanks @posthog! - Contain replay errors during playback and seeking so a failed event does not stall the remaining events.
(2026-09-14)
#4946aeaea15 Thanks @marandaneto! - Fix console capture continuing after stop or duplicating after restart when another library wraps the console.
(2026-09-14)
#4897a140fa7 Thanks @fasyy612! - Send each replay session's snapshots in their own request so a session rotation no longer files the new session's first snapshot under the old session.
(2026-09-11)
#48345f2b0fe Thanks @posthog! - Add posthog-js/full, posthog-js/no-external and posthog-js/full/no-external entry points, so desktop apps and other CSP-restricted builds can require a bundle instead of deep-importing an ES module from dist/
(2026-09-11)
Patch Changes
#48608207df8 Thanks @posthog! - Back off automatic feature flag refreshes on idle visible pages only when remote_config_refresh_interval_ms is omitted, preserving explicitly configured intervals.
(2026-09-11)
#490165aafcc Thanks @marandaneto! - Preserve batched event timestamps so delayed retries do not shift event times and prevent deduplication.
(2026-09-11)
#457919e78cc Thanks @turnipdabeets! - Cap the retry delay for log exports at 30 seconds, the ceiling the logs contract states. It previously doubled to 64 times the flush interval — 192s on web, 640s on React Native — so a log export now resumes within 30 seconds of a failing endpoint recovering, at the cost of more retry requests while that endpoint is down.
(2026-09-10)
#457919e78cc Thanks @turnipdabeets! - Keep backing off a failing log flush while new records arrive, instead of the next record resetting the retry to the flush interval.
(2026-09-10)
#457919e78cc Thanks @turnipdabeets! - Logs and metrics now always send service.name and telemetry.sdk.*, even when a resourceAttributes value is too large to encode in full. Previously that value could crowd them out, and the records reached PostHog with no service attribution.
(2026-09-10)
#48623278cd0 Thanks @pauldambra! - Call the original console method with the console as its receiver when recording console logs. The wrapper passed undefined instead, and passed no receiver at all when reporting its own failures, which a console implementation is free to reject.
(2026-09-10)
#48870da006c Thanks @posthog! - Error tracking no longer counts an injected script as your own code. A stack frame is in_app only when its filename names a script your app was served — http(s), file, blob, app, capacitor, ionic, a bundler scheme, or a bare path. A frame served over any other scheme, such as an in-app browser bridge on iabjs:// or an extension content script on chrome-extension://, is kept for context but no longer groups the issue under your code.
(2026-09-10)
#483799b4fc7 Thanks @pauldambra! - Stop recording autoplay attribute mutations on <video> and <audio> during session replay. The check compared a lowercase tag name against Element.tagName, which is uppercase for HTML elements, so a looping background video emitted a mutation for every autoplay toggle.
(2026-09-10)
#4707b441eb2 Thanks @posthog! - Segment integration: allow segment to accept an integration config with filterProperties, so customers can filter PostHog-generated enrichment properties before Segment sends an event to its destinations. Returning null or throwing leaves the original Segment event unenriched.
(2026-09-09)
Patch Changes
#48760c2a15f Thanks @dustinbyrne! - Fix dead-click detection for text selection and editable caret gestures when mouse release is delayed, while continuing to report inert text clicks.
(2026-09-09)
#473324fa541 Thanks @dustinbyrne! - fix(web): avoid reporting clicks that select or unselect text as dead clicks
(2026-09-09)
#48824bd37b7 Thanks @lucasheriques! - Fix TypeScript compatibility between public replay events and the replay player.
(2026-09-09)
#4833f1395b6 Thanks @posthog! - Keep surveys hidden while capture is disabled and preserve answers if capture stops before submission.
(2026-09-09)
#4725d5abece Thanks @bs1180! - fix(surveys): don't show the default "Start typing..." placeholder when the survey's placeholder text is empty
(2026-09-09)
#4842f93160d Thanks @marandaneto! - Restore retry queue connectivity tracking when a page returns from the back-forward cache, without reactivating it after an explicit shutdown().
(2026-09-08)
#4791b2affdc Thanks @posthog! - Prefer sendBeacon for unbatched events, such as { send_instantly: true } captures, once PostHog's own pagehide handler (or unload fallback) marks the page as unloading. Captures from beforeunload or earlier pagehide listeners retain their normal transport. Preserve response-capable transports on active pages so failed requests can be retried, including when fetch is unavailable.
(2026-09-08)
#48284ae6405 Thanks @marandaneto! - Prevent waking an idle tab from extending the previous session recording across the entire idle gap.
(2026-09-08)
#48054cd5717 Thanks @marandaneto! - Wait for the initial remote config outcome before using cached autocapture enablement, so a newly disabled project does not capture events while its settings load. Disabled remote requests retain local startup behavior, and failed or incomplete responses retain the cached fallback.
(2026-09-07)
#4804988f03a Thanks @marandaneto! - Recover autocapture targets for dropdown clicks retargeted to the page root, and attribute nested SVG icon clicks to their enclosing button or link while preserving privacy checks.
(2026-09-07)
#4815c207020 Thanks @marandaneto! - Prevent queued session recording mutations from capturing content beneath DOM or shadow ancestors that have become blocked.
(2026-09-07)
#478574ca945 Thanks @marandaneto! - Clarify feature flag return-value terminology across SDK APIs. A false value is a conclusive off evaluation, while undefined means no evaluation is available. Remote evaluation omits globally inactive flags, whereas backend local evaluation can resolve cached inactive definitions to false.
(2026-09-07)
#4797fd4ece8 Thanks @posthog! - Prevent exception autocapture from throwing when the handler it wraps belongs to another compartment or a destroyed document.
(2026-09-07)
#4754d73455e Thanks @posthog! - Session replay now reports why a recording holds its buffer. An epoch that starts without user interaction keeps its snapshots and uploads nothing, while $recording_status still reads active. Captured events now carry $sdk_debug_replay_flush_hold_reason (no_interaction_since_recording_started or no_interaction_since_session_rotated), and the SDK logs the reason once per held epoch in debug mode. Discarding a recording (for example when the server turns replay off) also no longer uploads the stylesheet mutations the recorder emits as it stops.
(2026-09-07)
#478895b159a Thanks @fasyy612! - fix(replay): reset the idle clock on a session-id rotation so the new session's first snapshot is not dropped as idle and its recording does not start hours early
(2026-09-07)
#477024f1937 Thanks @fasyy612! - fix(replay): drain the compression queue synchronously on a session-id rotation so the old session's unflushed tail ships under the old session id instead of being discarded
(2026-09-07)
#46665e74132 Thanks @robbie-c! - Preserve universally safe JSON-LD properties and allowlisted tree structure when replay redacts other fields. Keep only DOM-backed ID fragments. Keep only @type values shaped like a Schema.org term, and limit types and payloads. Publish a reusable sanitization contract fixture.
(2026-09-07)
#481421dcebd Thanks @posthog! - Prevent invalid clock values from breaking UUID generation and continue capturing replay chunks after a chunk fails.
(2026-09-07)
#4774426e1fd Thanks @Fhatu12! - Add reuseAnonymousId support to browser identify calls.
(2026-09-04)
Patch Changes
#4782b64b113 Thanks @posthog! - Stop counting stack frames that have no filename (in-app browser bridge scripts and other code the runtime reports without a script URL) as in-app code.
(2026-09-04)
#4758dd74222 Thanks @marandaneto! - Keep relaying session recording events when a cross-origin iframe redirects through the parent page's origin.
(2026-09-04)
#4764fa2924d Thanks @marandaneto! - Preserve previously persisted feature flags as an offline fallback when bootstrap flags are provided.
(2026-09-04)
#4761ebf7318 Thanks @marandaneto! - Prevent session replay network capture from replacing a downstream fetch wrapper's response with an instrumentation error when the response has no headers.
(2026-09-04)
#47637b30da7 Thanks @marandaneto! - Ship the package ESM entrypoint with an .mjs extension so Node recognizes its module format, while retaining the existing .js bundle for backwards compatibility.
(2026-09-03)
#4759c475070 Thanks @marandaneto! - Preserve explicitly false feature flag values supplied through bootstrap configuration.
(2026-09-03)
#47679d683ca Thanks @marandaneto! - Preserve the anonymous distinct ID used for feature flag persistence when identify() queues a reload behind an in-flight flags request.
(2026-09-03)
#4766ed4ba23 Thanks @marandaneto! - Limit persisted initial URLs by their encoded cookie size to prevent long URLs and referrers from exceeding browser cookie limits.
(2026-09-03)
#4762fbf10d4 Thanks @marandaneto! - Merge event-specific $groups with groups registered on the browser client.
(2026-09-03)
#4732f00e24d Thanks @posthog! - Polyfill Array.prototype.findLast in the web vitals attribution bundles so they keep capturing on browsers older than Chrome 97 and Safari 15.4
(2026-09-03)
Notes: No overt signs of traditional malware (no reverse shells, cryptomining, or direct data exfiltration) are visible in this fragment. However, it implements a powerful “remote UI modification” mechanism: it applies server-supplied transforms that can include arbitrary HTML inserted via innerHTML and arbitrary selectors/styles applied to the DOM. If the upstream experiment payloads (or preview-triggered selection) are compromised or insufficiently sanitized server-side, this can enable DOM-based XSS and page takeover. Additionally, the API token is transmitted in a URL query string, increasing the chance of token leakage via logs/history/referrers.
Next steps: Take a moment to review the security alert above. Review
the linked package source code to understand the potential risk. Ensure the
package is not malicious before proceeding. If you're unsure how to proceed,
reach out to your security team or ask the Socket team for help at
support@socket.dev.
Suggestion: An AI system identified potential security problems in this package. It is advised to review the package thoroughly and assess the potential risks before installation. You may also consider reporting the issue to the package maintainer or seeking alternative solutions with a stronger security posture.
Mark the package as acceptable risk. To ignore this alert only
in this pull request, reply with the comment
@SocketSecurity ignore npm/posthog-js@1.434.0. You can
also ignore all packages with @SocketSecurity ignore-all.
To ignore an alert for all future pull requests, use Socket's Dashboard to
change the triage state of this alert.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
1.392.0→1.434.0Release Notes
PostHog/posthog-js (posthog-js)
v1.434.0Compare Source
1.434.0
Minor Changes
5e86154Thanks @pauldambra! - Rename themetrics.networkdefault attributes to the OTel HTTP client semantic conventions:http.request.method,server.address,server.port,url.scheme,url.template,http.response.status_codeanderror.typereplacemethod,host,pathandstatus_class.(2026-09-17)
Patch Changes
5e86154]:v1.433.10Compare Source
1.433.10
Patch Changes
#4960
c8e53faThanks @posthog! - Log a console warning when session replay stops capturing canvas frames (browser withoutOffscreenCanvas, a CSP that blocksblob:workers, or a failingcanvasCapture.maskRegionsFn), and stop changing WebGL and WebGPU canvas settings when canvas capture fails to start(2026-09-17)
#4977
0257a29Thanks @lucasheriques! - Share survey choice and question shuffling between web and React Native through surveys core. Use Fisher-Yates for web questions, preserve Other-last choice ordering, and avoid mutating configured choices.(2026-09-17)
Updated dependencies [
0257a29]:v1.433.9Compare Source
1.433.9
Patch Changes
c3043f4Thanks @marandaneto! - Add a session diagnostic when stale replay configuration cannot be refreshed, without changing recording behavior.(2026-09-17)
v1.433.8Compare Source
1.433.8
Patch Changes
c1d1fafThanks @posthog! - Prefer synchronous compression for events captured withsend_instantly, including the initial$pageview, to avoid delaying request dispatch on asynchronous compression.(2026-09-17)
v1.433.7Compare Source
1.433.7
Patch Changes
c767b98Thanks @darkopia! - fix(surveys): keep URL prefill working when localStorage is unavailable, such as on a page with an opaque origin or in private browsing(2026-09-16)
2828b6b]:v1.433.6Compare Source
1.433.6
Patch Changes
ec4062bThanks @posthog! - Stop treating a<link rel=preload as=style>resource hint as a stylesheet when recording. Because it carries the URL of the sheet it preloads, the recorder matched it to the loaded stylesheet and inlined the whole sheet onto it, putting the CSS in every full snapshot twice and reporting a failed stylesheet deferral on every snapshot.(2026-09-16)
v1.433.5Compare Source
1.433.5
Patch Changes
85b775aThanks @posthog! - Docstrings foridentity_hashandsetIdentity()now say the hash is signed with the Secret API key from Support settings, not a project secret API key or a personal API key.(2026-09-15)
85b775a]:v1.433.4Compare Source
1.433.4
Patch Changes
#4941
07c1045Thanks @marandaneto! - Capture causes and AggregateError members with relationship metadata and individual stacks, limiting output to 50 entries and 1,000 member inspections.(2026-09-15)
#4898
372afbaThanks @posthog! - Contain a throw from a third-party patchedAbortController.abort()when our own fetch timeout fires, so it is retried instead of escaping as an uncaught error, and report a single outcome per request.(2026-09-15)
#4910
38b61f9Thanks @posthog! - Keep the end of a session recording when one replay event is too large to stringify: that event is dropped and the rest of the buffer still ships, instead of the size estimate throwing and stopping the unload flush.(2026-09-15)
#4909
5d4f1f7Thanks @posthog! - Keep the session recording observers that started when one of them fails to initialize, and report the failed observers in the recorder debug properties.(2026-09-15)
Updated dependencies [
07c1045]:v1.433.3Compare Source
1.433.3
Patch Changes
79f02e7Thanks @marandaneto! - Default Fetch requests to strict-origin so referrers omit page paths and query strings.(2026-09-14)
v1.433.2Compare Source
1.433.2
Patch Changes
#4846
bd4543eThanks @posthog! - Keep session recording snapshots from different windows of the same session in separate uploads to preserve their window attribution.(2026-09-14)
#4954
3c68c08Thanks @marandaneto! - Respect Retry-After, including repeated headers, up to 30 seconds on retryable browser responses without shortening exponential backoff.(2026-09-14)
Updated dependencies [
3c68c08]:v1.433.1Compare Source
1.433.1
Patch Changes
8f11f5fThanks @marandaneto! - Respect autocapture attribute masks for link URLs and legacy class properties.(2026-09-14)
v1.433.0Compare Source
1.433.0
Minor Changes
d037ea1Thanks @mayteio! - Read Meta's_fbcand_fbpcookies for the Conversions API. When the Meta pixel is on the page, its_fbccookie holds the true ad click time, so that value now wins over the time PostHog stamps on the pageview that follows the click, and a click that landed before the SDK loaded is no longer lost. The_fbpbrowser ID is captured as the$fbpperson property, which makes it available to a conversion sent later from a backend. Both cookies are read under the same switches as the URL click ID:save_campaign_params: falseturns the reads off, and cookieless mode skips them.(2026-09-14)
v1.432.0Compare Source
1.432.0
Minor Changes
4a46fabThanks @marandaneto! - Add a resetError callback to React error-boundary fallbacks so applications can retry rendering without remounting the boundary.(2026-09-14)
Patch Changes
62fc60bThanks @marandaneto! - Fix lost event retries after restoring a page from the back-forward cache.(2026-09-14)
v1.431.8Compare Source
1.431.8
Patch Changes
6a78625Thanks @marandaneto! - Fix false dead clicks after synchronous DOM updates. Clicks stopped from bubbling are now evaluated too, which may increase dead-click counts for inert controls.(2026-09-14)
v1.431.7Compare Source
1.431.7
Patch Changes
a5d094fThanks @marandaneto! - Avoid fetch keepalive quota failures when multiple event requests are in flight.(2026-09-14)
v1.431.6Compare Source
1.431.6
Patch Changes
ee6fd02Thanks @marandaneto! - Prevent buffered session replay data from crossing projects that share a persistence name during page navigation.(2026-09-14)
v1.431.5Compare Source
1.431.5
Patch Changes
3e12f1dThanks @marandaneto! - Discard pending replay network captures after recording stops or restarts.(2026-09-14)
v1.431.4Compare Source
1.431.4
Patch Changes
#4952
4f8076bThanks @marandaneto! - Support clickable[label](url)links in Conversations widget greetings.(2026-09-14)
#4835
03e45b6Thanks @posthog! - Fix identical person property retries being dropped after the original capture was rejected.(2026-09-14)
v1.431.3Compare Source
1.431.3
Patch Changes
3acf287Thanks @marandaneto! - Fix replay cleanup when the host's children are removed before destroying the player.(2026-09-14)
v1.431.2Compare Source
1.431.2
Patch Changes
fea443aThanks @marandaneto! - Mark console-captured exceptions as handled and identify their console origin.(2026-09-14)
v1.431.1Compare Source
1.431.1
Patch Changes
b15ae1fThanks @marandaneto! - Exclude internal SDK console diagnostics from exception autocapture and report recoverable recorder diagnostics as warnings.(2026-09-14)
v1.431.0Compare Source
1.431.0
Minor Changes
c666606Thanks @pauldambra! - Addmetrics.networkconfig to record HTTP and HTTPSfetchandXMLHttpRequestdurations as histograms, with an optional custom metric name and attributes.(2026-09-14)
Patch Changes
d81541bThanks @posthog! - Contain replay errors during playback and seeking so a failed event does not stall the remaining events.(2026-09-14)
c666606]:v1.430.4Compare Source
1.430.4
Patch Changes
aeaea15Thanks @marandaneto! - Fix console capture continuing after stop or duplicating after restart when another library wraps the console.(2026-09-14)
v1.430.3Compare Source
1.430.3
Patch Changes
2ae0f26Thanks @marandaneto! - Fix session recording failing to restart after capturing events while stopped with expired config.(2026-09-12)
v1.430.2Compare Source
1.430.2
Patch Changes
a140fa7Thanks @fasyy612! - Send each replay session's snapshots in their own request so a session rotation no longer files the new session's first snapshot under the old session.(2026-09-11)
v1.430.1Compare Source
1.430.1
Patch Changes
0224a83Thanks @github-actions! - Fix scroll depth metrics carrying over between pages after client-side navigation.(2026-09-11)
v1.430.0Compare Source
1.430.0
Minor Changes
5f2b0feThanks @posthog! - Addposthog-js/full,posthog-js/no-externalandposthog-js/full/no-externalentry points, so desktop apps and other CSP-restricted builds canrequirea bundle instead of deep-importing an ES module fromdist/(2026-09-11)
Patch Changes
#4860
8207df8Thanks @posthog! - Back off automatic feature flag refreshes on idle visible pages only whenremote_config_refresh_interval_msis omitted, preserving explicitly configured intervals.(2026-09-11)
#4901
65aafccThanks @marandaneto! - Preserve batched event timestamps so delayed retries do not shift event times and prevent deduplication.(2026-09-11)
Updated dependencies [
8207df8]:v1.429.5Compare Source
1.429.5
Patch Changes
#4579
19e78ccThanks @turnipdabeets! - Cap the retry delay for log exports at 30 seconds, the ceiling the logs contract states. It previously doubled to 64 times the flush interval — 192s on web, 640s on React Native — so a log export now resumes within 30 seconds of a failing endpoint recovering, at the cost of more retry requests while that endpoint is down.(2026-09-10)
#4579
19e78ccThanks @turnipdabeets! - Keep backing off a failing log flush while new records arrive, instead of the next record resetting the retry to the flush interval.(2026-09-10)
#4579
19e78ccThanks @turnipdabeets! - Logs and metrics now always sendservice.nameandtelemetry.sdk.*, even when aresourceAttributesvalue is too large to encode in full. Previously that value could crowd them out, and the records reached PostHog with no service attribution.(2026-09-10)
Updated dependencies [
19e78cc,19e78cc,19e78cc,19e78cc,19e78cc,19e78cc,19e78cc]:v1.429.4Compare Source
1.429.4
Patch Changes
#4862
3278cd0Thanks @pauldambra! - Call the original console method with the console as its receiver when recording console logs. The wrapper passedundefinedinstead, and passed no receiver at all when reporting its own failures, which a console implementation is free to reject.(2026-09-10)
#4887
0da006cThanks @posthog! - Error tracking no longer counts an injected script as your own code. A stack frame isin_apponly when its filename names a script your app was served —http(s),file,blob,app,capacitor,ionic, a bundler scheme, or a bare path. A frame served over any other scheme, such as an in-app browser bridge oniabjs://or an extension content script onchrome-extension://, is kept for context but no longer groups the issue under your code.(2026-09-10)
#4837
99b4fc7Thanks @pauldambra! - Stop recordingautoplayattribute mutations on<video>and<audio>during session replay. The check compared a lowercase tag name againstElement.tagName, which is uppercase for HTML elements, so a looping background video emitted a mutation for everyautoplaytoggle.(2026-09-10)
Updated dependencies [
0da006c]:v1.429.3Compare Source
1.429.3
Patch Changes
#4878
14ba783Thanks @dustinbyrne! - Allow null bootstrap values and treat null or empty distinct IDs as missing.(2026-09-10)
#4831
9498567Thanks @posthog! - Log a console message when advanced_disable_feature_flags stops surveys from displaying(2026-09-10)
Updated dependencies [
14ba783,9498567]:v1.429.2Compare Source
1.429.2
Patch Changes
412c97cThanks @marandaneto! - Fix recording package exports, native ESM loading, and strict TypeScript 4.7 consumer compatibility.(2026-09-10)
412c97c]:v1.429.1Compare Source
1.429.1
Patch Changes
61b92f9Thanks @pauldambra! - Disable browser autofill on input and textarea fields during session replay.(2026-09-09)
v1.429.0Compare Source
1.429.0
Minor Changes
b441eb2Thanks @posthog! - Segment integration: allowsegmentto accept an integration config withfilterProperties, so customers can filter PostHog-generated enrichment properties before Segment sends an event to its destinations. Returningnullor throwing leaves the original Segment event unenriched.(2026-09-09)
Patch Changes
#4876
0c2a15fThanks @dustinbyrne! - Fix dead-click detection for text selection and editable caret gestures when mouse release is delayed, while continuing to report inert text clicks.(2026-09-09)
#4733
24fa541Thanks @dustinbyrne! - fix(web): avoid reporting clicks that select or unselect text as dead clicks(2026-09-09)
#4882
4bd37b7Thanks @lucasheriques! - Fix TypeScript compatibility between public replay events and the replay player.(2026-09-09)
#4833
f1395b6Thanks @posthog! - Keep surveys hidden while capture is disabled and preserve answers if capture stops before submission.(2026-09-09)
Updated dependencies [
0c2a15f,24fa541,b441eb2]:v1.428.11Compare Source
1.428.11
Patch Changes
d5abeceThanks @bs1180! - fix(surveys): don't show the default "Start typing..." placeholder when the survey's placeholder text is empty(2026-09-09)
v1.428.10Compare Source
1.428.10
Patch Changes
891eefaThanks @robbie-c! - Apply replay URL privacy settings to URL values in captured JSON-LD payloads.(2026-09-09)
891eefa,891eefa]:v1.428.9Compare Source
1.428.9
Patch Changes
e8b2be1Thanks @robbie-c! - Include the masked page URL with JSON-LD replay events.(2026-09-09)
e8b2be1]:v1.428.8Compare Source
v1.428.7Compare Source
1.428.7
Patch Changes
f93160dThanks @marandaneto! - Restore retry queue connectivity tracking when a page returns from the back-forward cache, without reactivating it after an explicitshutdown().(2026-09-08)
v1.428.6Compare Source
1.428.6
Patch Changes
b2affdcThanks @posthog! - PrefersendBeaconfor unbatched events, such as{ send_instantly: true }captures, once PostHog's ownpagehidehandler (orunloadfallback) marks the page as unloading. Captures frombeforeunloador earlierpagehidelisteners retain their normal transport. Preserve response-capable transports on active pages so failed requests can be retried, including whenfetchis unavailable.(2026-09-08)
b2affdc]:v1.428.5Compare Source
v1.428.4Compare Source
1.428.4
Patch Changes
4ae6405Thanks @marandaneto! - Prevent waking an idle tab from extending the previous session recording across the entire idle gap.(2026-09-08)
v1.428.3Compare Source
1.428.3
Patch Changes
4cd5717Thanks @marandaneto! - Wait for the initial remote config outcome before using cached autocapture enablement, so a newly disabled project does not capture events while its settings load. Disabled remote requests retain local startup behavior, and failed or incomplete responses retain the cached fallback.(2026-09-07)
v1.428.2Compare Source
1.428.2
Patch Changes
87b34afThanks @marandaneto! - Preserve Error details, causes, aggregate errors, and custom enumerable properties in event properties, including cross-realm Errors. Apply string truncation to ordinary capture properties and retain custom toJSON serialization for exception additional properties.(2026-09-07)
87b34af]:v1.428.1Compare Source
1.428.1
Patch Changes
988f03aThanks @marandaneto! - Recover autocapture targets for dropdown clicks retargeted to the page root, and attribute nested SVG icon clicks to their enclosing button or link while preserving privacy checks.(2026-09-07)
988f03a]:v1.428.0Compare Source
1.428.0
Minor Changes
3a5b322Thanks @marandaneto! - Add best-effort in-app browser attribution using$webview_appand$webview_app_version, without changing existing$browseror$browser_versionvalues. Detect explicit user-agent markers for Facebook, Facebook Lite, Messenger, Instagram, Threads, LinkedIn, Twitter, TikTok, WhatsApp, Snapchat, WeChat, LINE, Google, Bing, Pinterest, Naver, and KakaoTalk. Unknown apps and versions are omitted; missing markers do not imply a standalone browser.(2026-09-07)
Patch Changes
3a5b322]:v1.427.3Compare Source
1.427.3
Patch Changes
#4815
c207020Thanks @marandaneto! - Prevent queued session recording mutations from capturing content beneath DOM or shadow ancestors that have become blocked.(2026-09-07)
#4785
74ca945Thanks @marandaneto! - Clarify feature flag return-value terminology across SDK APIs. Afalsevalue is a conclusive off evaluation, whileundefinedmeans no evaluation is available. Remote evaluation omits globally inactive flags, whereas backend local evaluation can resolve cached inactive definitions tofalse.(2026-09-07)
#4797
fd4ece8Thanks @posthog! - Prevent exception autocapture from throwing when the handler it wraps belongs to another compartment or a destroyed document.(2026-09-07)
#4754
d73455eThanks @posthog! - Session replay now reports why a recording holds its buffer. An epoch that starts without user interaction keeps its snapshots and uploads nothing, while$recording_statusstill readsactive. Captured events now carry$sdk_debug_replay_flush_hold_reason(no_interaction_since_recording_startedorno_interaction_since_session_rotated), and the SDK logs the reason once per held epoch in debug mode. Discarding a recording (for example when the server turns replay off) also no longer uploads the stylesheet mutations the recorder emits as it stops.(2026-09-07)
#4788
95b159aThanks @fasyy612! - fix(replay): reset the idle clock on a session-id rotation so the new session's first snapshot is not dropped as idle and its recording does not start hours early(2026-09-07)
#4770
24f1937Thanks @fasyy612! - fix(replay): drain the compression queue synchronously on a session-id rotation so the old session's unflushed tail ships under the old session id instead of being discarded(2026-09-07)
#4666
5e74132Thanks @robbie-c! - Preserve universally safe JSON-LD properties and allowlisted tree structure when replay redacts other fields. Keep only DOM-backed ID fragments. Keep only@typevalues shaped like a Schema.org term, and limit types and payloads. Publish a reusable sanitization contract fixture.(2026-09-07)
#4814
21dcebdThanks @posthog! - Prevent invalid clock values from breaking UUID generation and continue capturing replay chunks after a chunk fails.(2026-09-07)
Updated dependencies [
74ca945,5e74132,21dcebd]:v1.427.2Compare Source
1.427.2
Patch Changes
fd87cafThanks @marandaneto! - Prevent failures in automatic and manual exception processing from escaping into customer code.(2026-09-04)
v1.427.1Compare Source
1.427.1
Patch Changes
a04c333Thanks @marandaneto! - Prevent automatic and manual exception capture from recursively recapturing stack overflows raised while sending an exception.(2026-09-04)
v1.427.0Compare Source
1.427.0
Minor Changes
426e1fdThanks @Fhatu12! - AddreuseAnonymousIdsupport to browser identify calls.(2026-09-04)
Patch Changes
#4782
b64b113Thanks @posthog! - Stop counting stack frames that have no filename (in-app browser bridge scripts and other code the runtime reports without a script URL) as in-app code.(2026-09-04)
#4758
dd74222Thanks @marandaneto! - Keep relaying session recording events when a cross-origin iframe redirects through the parent page's origin.(2026-09-04)
Updated dependencies [
b64b113,426e1fd]:v1.426.4Compare Source
1.426.4
Patch Changes
fa2924dThanks @marandaneto! - Preserve previously persisted feature flags as an offline fallback when bootstrap flags are provided.(2026-09-04)
v1.426.3Compare Source
1.426.3
Patch Changes
ebf7318Thanks @marandaneto! - Prevent session replay network capture from replacing a downstream fetch wrapper's response with an instrumentation error when the response has no headers.(2026-09-04)
v1.426.2Compare Source
1.426.2
Patch Changes
#4763
7b30da7Thanks @marandaneto! - Ship the package ESM entrypoint with an.mjsextension so Node recognizes its module format, while retaining the existing.jsbundle for backwards compatibility.(2026-09-03)
#4759
c475070Thanks @marandaneto! - Preserve explicitly false feature flag values supplied through bootstrap configuration.(2026-09-03)
#4767
9d683caThanks @marandaneto! - Preserve the anonymous distinct ID used for feature flag persistence whenidentify()queues a reload behind an in-flight flags request.(2026-09-03)
#4766
ed4ba23Thanks @marandaneto! - Limit persisted initial URLs by their encoded cookie size to prevent long URLs and referrers from exceeding browser cookie limits.(2026-09-03)
#4762
fbf10d4Thanks @marandaneto! - Merge event-specific$groupswith groups registered on the browser client.(2026-09-03)
#4732
f00e24dThanks @posthog! - PolyfillArray.prototype.findLastin the web vitals attribution bundles so they keep capturing on browsers older than Chrome 97 and Safari 15.4(2026-09-03)
Updated dependencies [
c475070,f00e24d]:v1.426.1[Compare Source](
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.