Packages

@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. 1.48.4

    19 Aug 2026
    • Fall back to the synthetic exception stack when a captured Error has no stack, so frameless failures (such as a Firefox network fetch TypeError) keep their call-site frames and group per call site instead of merging into one issue.
      (2026-08-19)

  2. 1.48.3

    18 Aug 2026
    • Recognise 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)

  3. 1.48.2

    17 Aug 2026
    • Fix error tracking coercion reporting the wrong exception type for non-Error objects (e.g. TypeError, ReferenceError) that are thrown by browser extensions or other cross-realm code. Previously these always reported as type Error, burying the real type in the message string. Also fixed a local isError helper 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)

  4. 1.48.1

    14 Aug 2026
    • Normalize capture timestamp overrides to equivalent UTC ISO strings in the browser and Node.js SDKs and shared core.
      (2026-08-14)

  5. 1.48.0

    13 Aug 2026
    • Public beta captureAi() / captureAiImmediate(): AI events on a dedicated isolated endpoint with the event UUID returned. New enableFullAiCapture option replaces the internal _useAiLane / _enableMultimodalCapture; wrappers route through the AI endpoint and skip redaction/truncation when set (privacy mode still wins).
      (2026-08-13)

  6. 1.47.1

    12 Aug 2026
    • Log shutdown timeouts without rejecting, and correct the Node.js shutdown() return type to Promise<void>.
      (2026-08-12)

  7. 1.47.0

    10 Aug 2026
    • surveys: 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, and introScreenButtonText appearance 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. renderSurveysPreview accepts
      previewPageIndex: -1 (exported as INTRO_SCREEN_PREVIEW_INDEX) to preview the
      intro screen. (2026-08-10)

  8. 1.46.9

    6 Aug 2026
    • Use Node's zlib gzip implementation for Node SDK payloads to avoid sustained memory growth from frequent Web Streams compression.
      (2026-08-06)

  9. 1.46.8

    5 Aug 2026
    • Keep request timeouts active through response body consumption and clarify eventual event UUID deduplication semantics.
      (2026-08-05)

  10. 1.46.7

    4 Aug 2026
    • Keep $referring_domain and canonical utm_*/campaign parameters on minimal $feature_flag_called events. 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)

  11. 1.46.6

    4 Aug 2026
    • Safely capture circular and otherwise unknown telemetry values with a shared JSON-safe value converter.
      (2026-08-04)

  12. 1.46.5

    3 Aug 2026
    • Preserve messages, source locations, and existing stacks from browser errors that do not provide a same-realm Error object.
      (2026-08-03)

  13. 1.46.4

    3 Aug 2026
    • Clear completed lifecycle timeout handles so successful shutdowns do not leave timers running.
      (2026-08-03)

  14. 1.46.3

    3 Aug 2026
    • personProperties and groupProperties on the feature flag methods are no longer typed as Record<string, string>, so numeric and boolean values type-check without a cast. Local evaluation already handled them — matchProperty takes Record<string, any> and compares numerically for gt/gte/lt/lte — only the public types disagreed. These now use the shared Properties type (personProperties?: Properties, groupProperties?: Record<string, Properties>), matching setPersonPropertiesForFlags/setGroupPropertiesForFlags so the any can be narrowed later. Types only, no runtime change.
      (2026-08-03)

  15. 1.46.2

    3 Aug 2026
    • Preserve events added to a full queue while an earlier batch is being flushed.
      (2026-08-03)

  16. 1.46.1

    31 Jul 2026
    • Fix 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 $set event 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)

  17. 1.46.0

    30 Jul 2026
    • Emit the release id that posthog-cli injects into your bundle as $release_id on $exception events, so PostHog can attach exceptions to a release without joining through symbol sets. Adds getInjectedReleaseId() to @posthog/core. The property is only attached when an injected release id can be read.
      (2026-07-30)

  18. 1.45.3

    30 Jul 2026
    • Fix dead-click false positives on WebKit when the SDK uses an iframe-sourced MutationObserver fallback.
      (2026-07-30)

  19. 1.45.2

    29 Jul 2026
    • surveys: 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 (type api)
      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)

  20. 1.45.1

    23 Jul 2026

    Reading the note…

  21. 1.45.0

    22 Jul 2026

    Reading the note…

  22. 1.44.0

    20 Jul 2026

    Reading the note…

  23. 1.43.1

    16 Jul 2026

    Reading the note…

  24. 1.43.0

    16 Jul 2026

    Reading the note…

  25. 1.42.1

    15 Jul 2026

    Reading the note…

  26. 1.42.0

    15 Jul 2026

    Reading the note…

  27. 1.41.1

    14 Jul 2026

    Reading the note…

  28. 1.41.0

    14 Jul 2026

    Reading the note…

  29. 1.40.2

    11 Jul 2026

    Reading the note…

  30. 1.40.1

    9 Jul 2026

    Reading the note…

  31. 1.40.0

    8 Jul 2026

    Reading the note…

  32. 1.39.6

    2 Jul 2026

    Reading the note…

  33. 1.39.5

    2 Jul 2026

    Reading the note…

  34. 1.39.4

    2 Jul 2026

    Reading the note…

  35. 1.39.3

    1 Jul 2026

    Reading the note…

  36. 1.39.2

    30 Jun 2026

    Reading the note…

  37. 1.39.1

    30 Jun 2026

    Reading the note…

  38. 1.39.0

    30 Jun 2026

    Reading the note…

  39. 1.38.1

    29 Jun 2026

    Reading the note…

  40. 1.38.0

    26 Jun 2026

    Reading the note…

  41. 1.37.3

    24 Jun 2026

    Reading the note…

  42. 1.37.2

    24 Jun 2026

    Reading the note…

  43. 1.37.1

    23 Jun 2026

    Reading the note…

  44. 1.37.0

    23 Jun 2026

    Reading the note…

  45. 1.36.0

    23 Jun 2026

    Reading the note…

  46. 1.35.4

    22 Jun 2026

    Reading the note…

  47. 1.35.3

    19 Jun 2026

    Reading the note…

  48. 1.35.2

    18 Jun 2026

    Reading the note…

  49. 1.35.1

    17 Jun 2026

    Reading the note…

  50. 1.35.0

    17 Jun 2026

    Reading the note…