@posthog/core
1.59.1 · 14 Oct 2026MIT16M / weekRepositorynpmAtom feed
222 stable releases, newest first, by release line. Notes are quoted as the maintainers published them.
1.48.4
19 Aug 2026Fall back to the synthetic exception stack when a captured
Errorhas no stack, so frameless failures (such as a Firefox networkfetchTypeError) keep their call-site frames and group per call site instead of merging into one issue.
(2026-08-19)
1.48.3
18 Aug 2026Recognise Firefox and Safari extension frames when filtering extension exceptions, and stop counting Safari's masked
webkit-masked-url://frames as in-app code.
(2026-08-18)
1.48.2
17 Aug 2026Fix error tracking coercion reporting the wrong exception type for non-
Errorobjects (e.g.TypeError,ReferenceError) that are thrown by browser extensions or other cross-realm code. Previously these always reported as typeError, burying the real type in the message string. Also fixed a localisErrorhelper shadowing the more robust cross-realm-aware implementation, which caused some errors thrown from iframes or extension isolated worlds to be misclassified.
(2026-08-17)
1.48.1
14 Aug 2026Normalize capture timestamp overrides to equivalent UTC ISO strings in the browser and Node.js SDKs and shared core.
(2026-08-14)
Patch Changes
Normalize capture timestamp overrides to equivalent UTC ISO strings in the browser and Node.js SDKs and shared core.
(2026-08-14)
1.48.0
13 Aug 2026Public beta
captureAi()/captureAiImmediate(): AI events on a dedicated isolated endpoint with the event UUID returned. NewenableFullAiCaptureoption replaces the internal_useAiLane/_enableMultimodalCapture; wrappers route through the AI endpoint and skip redaction/truncation when set (privacy mode still wins).
(2026-08-13)
Minor Changes
Public beta
captureAi()/captureAiImmediate(): AI events on a dedicated isolated endpoint with the event UUID returned. NewenableFullAiCaptureoption replaces the internal_useAiLane/_enableMultimodalCapture; wrappers route through the AI endpoint and skip redaction/truncation when set (privacy mode still wins).
(2026-08-13)
1.47.1
12 Aug 2026Log shutdown timeouts without rejecting, and correct the Node.js
shutdown()return type toPromise<void>.
(2026-08-12)
1.47.0
10 Aug 2026surveys: optional intro screen shown before the first question
Surveys can now display an intro screen before question 1, configured via the new
displayIntroScreen,introScreenHeader,introScreenDescription,introScreenDescriptionContentType, andintroScreenButtonTextappearance fields.
The intro is dismissed with a button and records no response, does not affect
completion or partial-response metrics, does not re-fire "survey shown", and is
skipped when a survey is resumed with answers in progress. Intro copy is
translatable like the thank-you message.renderSurveysPreviewacceptspreviewPageIndex: -1(exported asINTRO_SCREEN_PREVIEW_INDEX) to preview the
intro screen. (2026-08-10)
1.46.9
6 Aug 2026Use Node's zlib gzip implementation for Node SDK payloads to avoid sustained memory growth from frequent Web Streams compression.
(2026-08-06)
Patch Changes
Use Node's zlib gzip implementation for Node SDK payloads to avoid sustained memory growth from frequent Web Streams compression.
(2026-08-06)
1.46.8
5 Aug 2026Keep request timeouts active through response body consumption and clarify eventual event UUID deduplication semantics.
(2026-08-05)
Patch Changes
Keep request timeouts active through response body consumption and clarify eventual event UUID deduplication semantics.
(2026-08-05)
1.46.7
4 Aug 2026Keep
$referring_domainand canonicalutm_*/campaign parameters on minimal$feature_flag_calledevents. Previously the minimal allowlist stripped every campaign parameter, so a flag-called event landing first in a session could set the session's UTM attribution and channel type to NULL in web analytics.
(2026-08-04)
Patch Changes
Keep
$referring_domainand canonicalutm_*/campaign parameters on minimal$feature_flag_calledevents. Previously the minimal allowlist stripped every campaign parameter, so a flag-called event landing first in a session could set the session's UTM attribution and channel type to NULL in web analytics.
(2026-08-04)
1.46.6
4 Aug 2026Safely capture circular and otherwise unknown telemetry values with a shared JSON-safe value converter.
(2026-08-04)
1.46.5
3 Aug 2026Preserve messages, source locations, and existing stacks from browser errors that do not provide a same-realm
Errorobject.
(2026-08-03)
1.46.4
3 Aug 2026Clear completed lifecycle timeout handles so successful shutdowns do not leave timers running.
(2026-08-03)
1.46.3
3 Aug 2026personPropertiesandgroupPropertieson the feature flag methods are no longer typed asRecord<string, string>, so numeric and boolean values type-check without a cast. Local evaluation already handled them —matchPropertytakesRecord<string, any>and compares numerically forgt/gte/lt/lte— only the public types disagreed. These now use the sharedPropertiestype (personProperties?: Properties,groupProperties?: Record<string, Properties>), matchingsetPersonPropertiesForFlags/setGroupPropertiesForFlagsso theanycan be narrowed later. Types only, no runtime change.
(2026-08-03)
1.46.2
3 Aug 2026Preserve events added to a full queue while an earlier batch is being flushed.
(2026-08-03)
1.46.1
31 Jul 2026Fix
identify()leaving a user anonymous when the supplied ID already matches the persisted distinct ID (for example after a non-identified bootstrap seeded the same ID). The user is now marked identified and a person-processed$setevent is captured. Ports the same fix from posthog-js (browser) to the shared core used by React Native, Node, and posthog-js-lite.
(2026-07-31)
1.46.0
30 Jul 2026Emit the release id that posthog-cli injects into your bundle as
$release_idon$exceptionevents, so PostHog can attach exceptions to a release without joining through symbol sets. AddsgetInjectedReleaseId()to@posthog/core. The property is only attached when an injected release id can be read.
(2026-07-30)
1.45.3
30 Jul 2026Fix dead-click false positives on WebKit when the SDK uses an iframe-sourced MutationObserver fallback.
(2026-07-30)
1.45.2
29 Jul 2026surveys: only wait for feature flags on surveys that repeat
Surveys stopped being shown while feature flags were still loading, even when a cached
enabled value for their internal targeting flag was already available. Popover and widget
surveys recovered on the next evaluation, but a survey your own code renders (typeapi)
is evaluated once, so it was dropped for that page load and never reappeared.That wait is only needed for surveys that repeat, where stored per-survey state is keyed by
iteration and cannot be relied on to record that someone already answered. Other surveys
keep one stable key that already prevents a repeat display, so they are now evaluated
against the cached flag right away. (2026-07-29)
1.45.1
23 Jul 2026Reading the note…
1.45.0
22 Jul 2026Reading the note…
1.44.0
20 Jul 2026Reading the note…
1.43.1
16 Jul 2026Reading the note…
1.43.0
16 Jul 2026Reading the note…
1.42.1
15 Jul 2026Reading the note…
1.42.0
15 Jul 2026Reading the note…
1.41.1
14 Jul 2026Reading the note…
1.41.0
14 Jul 2026Reading the note…
1.40.2
11 Jul 2026Reading the note…
1.40.1
9 Jul 2026Reading the note…
1.40.0
8 Jul 2026Reading the note…
1.39.6
2 Jul 2026Reading the note…
1.39.5
2 Jul 2026Reading the note…
1.39.4
2 Jul 2026Reading the note…
1.39.3
1 Jul 2026Reading the note…
1.39.2
30 Jun 2026Reading the note…
1.39.1
30 Jun 2026Reading the note…
1.39.0
30 Jun 2026Reading the note…
1.38.1
29 Jun 2026Reading the note…
1.38.0
26 Jun 2026Reading the note…
1.37.3
24 Jun 2026Reading the note…
1.37.2
24 Jun 2026Reading the note…
1.37.1
23 Jun 2026Reading the note…
1.37.0
23 Jun 2026Reading the note…
1.36.0
23 Jun 2026Reading the note…
1.35.4
22 Jun 2026Reading the note…
1.35.3
19 Jun 2026Reading the note…
1.35.2
18 Jun 2026Reading the note…
1.35.1
17 Jun 2026Reading the note…
1.35.0
17 Jun 2026Reading the note…