Skip to content

Update dependency posthog-node to v5.50.0 - #558

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/posthog-node-5.x-lockfile
Open

Update dependency posthog-node to v5.50.0#558
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/posthog-node-5.x-lockfile

Conversation

@renovate

@renovate renovate Bot commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Confidence
posthog-node (source) 5.38.45.50.0 age confidence

Release Notes

PostHog/posthog-js (posthog-node)

v5.50.0

Compare Source

Minor Changes
  • #​4484 557140e Thanks @​posthog! - FeatureFlagEvaluations.isEnabled() now accepts an optional defaultValue option, returned whenever the flag has no value (missing key, not loaded, or a failed request). A flag with a present value — including false and variant strings — always wins over defaultValue. Purely additive; omitting the option preserves the existing false-on-miss behavior.
    (2026-08-21)

v5.49.4

Compare Source

Patch Changes
  • #​4569 00d22ea Thanks @​v11t! - fix getFeatureFlagResult returning null variant instead of undefined when remotely evaluated
    (2026-08-21)

v5.49.3

Compare Source

Patch Changes
  • #​4583 6322f09 Thanks @​turnipdabeets! - Fix logs and metrics being silently dropped when an attribute holds a very large integer, a function, a symbol, a sparse array, or a truncated emoji.
    Cap log and metric attributes at 20 levels of nesting, 1,000 entries per object and 10,000 values in total, marking anything beyond as [Truncated].
    Type OtlpAnyValue.intValue as string | number — code reading that field must handle both. (2026-08-21)
  • Updated dependencies [6322f09]:

v5.49.2

Compare Source

Patch Changes

v5.49.1

Compare Source

Patch Changes

v5.49.0

Compare Source

Minor Changes
  • #​4289 c9086de Thanks @​carlos-marchal-ph! - 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)
Patch Changes

v5.48.2

Compare Source

Patch Changes

v5.48.1

Compare Source

Patch Changes

v5.48.0

Compare Source

Minor Changes
  • #​4342 fa3457f Thanks @​haacked! - Support the starts_with, not_starts_with, ends_with, and not_ends_with property filter operators in feature flag local evaluation. Matching is case-insensitive and mirrors icontains, so flags using these operators no longer fall back to remote evaluation.
    (2026-08-05)

v5.47.11

Compare Source

Patch Changes

v5.47.10

Compare Source

Patch Changes
  • #​4287 d3c4538 Thanks @​posthog! - 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)
  • Updated dependencies [d3c4538]:

v5.47.9

Compare Source

Patch Changes
  • #​4350 facb4c1 Thanks @​marandaneto! - Fix enableExceptionAutocapture suppressing Node's default crash on unhandled promise rejections; fatal rejections in strict or warn-with-error-code mode and rejections handled by another unhandledRejection listener are no longer captured.
    (2026-08-04)

v5.47.8

Compare Source

Patch Changes

v5.47.7

Compare Source

Patch Changes

v5.47.6

Compare Source

Patch Changes

v5.47.5

Compare Source

Patch Changes
  • #​4155 eb0a793 Thanks @​ATKasem! - fix: 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)
  • Updated dependencies [eb0a793]:

v5.47.4

Compare Source

Patch Changes

v5.47.3

Compare Source

Patch Changes

v5.47.2

Compare Source

Patch Changes
  • #​4332 b9a241e Thanks @​ioannisj! - 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)
  • Updated dependencies [b9a241e]:

v5.47.1

Compare Source

Patch Changes

v5.47.0

Compare Source

Minor Changes
  • #​4308 6e7f3ae Thanks @​ablaszkiewicz! - 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)
Patch Changes

v5.46.1

Compare Source

Patch Changes

v5.46.0

Compare Source

Minor Changes
  • #​4172 9621830 Thanks @​haacked! - send minimal $feature_flag_called events when the server enables it

    When the v2 /flags response carries minimalFlagCalledEvents: true (or, for posthog-node local evaluation, the flag-definitions payload carries minimal_flag_called_events: true) and the evaluated flag is not linked to an experiment ($feature_flag_has_experiment === false), $feature_flag_called events are rebuilt from a strict allowlist of flag-evaluation, processing-control, and SDK-identity properties. Super properties, $set/$set_once, the $feature/<key> enumeration, $active_feature_flags, and the context envelope are stripped. Any missing signal (no gate on the response, bootstrapped or locally injected flags, has_experiment unknown) falls back to the full event, and experiment-linked flags always send the full envelope. The gate is stored alongside the cached flags (posthog-js persistence, posthog-node poller state) and is server-controlled, with no SDK-side configuration. before_send runs after the filter and may re-add stripped properties. (2026-07-20)

Patch Changes

v5.45.2

Compare Source

Patch Changes

v5.45.1

Compare Source

Patch Changes

v5.45.0

Compare Source

Minor Changes
  • #​4159 fad6d9a Thanks @​haacked! - add $feature_flag_has_experiment to $feature_flag_called events

    $feature_flag_called events now carry a $feature_flag_has_experiment boolean sourced from the server's has_experiment flag metadata (the /flags?v=2 response for remote evaluation, the /api/feature_flag/local_evaluation definitions for posthog-node local evaluation). The property is only sent when the server explicitly reports has_experiment; it is omitted entirely when the value is unknown (older servers, missing metadata, bootstrapped or locally injected flags). (2026-07-16)

Patch Changes

v5.44.0

Compare Source

Minor Changes
  • #​4153 fc2cb2e Thanks @​eli-r-ph! - Raise the default maxQueueSize from 1000 to 10000. Backend workloads are more likely to burst-enqueue events synchronously ahead of a flush than browser/mobile clients, so the previous default risked silently dropping events under bursty load. An explicit maxQueueSize option still overrides this default.
    (2026-07-15)
Patch Changes

v5.43.0

Compare Source

Minor Changes
  • #​4117 1eddff7 Thanks @​DanielVisca! - add the posthog.metrics API (count, gauge, histogram) to posthog-node — alpha

    Backend services can now record metrics through the same statsd-style pre-aggregating client the browser SDK ships, with no OpenTelemetry setup:

    const client = new PostHog('phc_...', { metrics: { serviceName: 'billing-worker' } })
    client.metrics.count('invoices.processed', 1, { attributes: { plan: 'pro' } })
    client.metrics.gauge('queue.depth', 42)
    client.metrics.histogram('job.duration', 187, { unit: 'ms' })

    Samples aggregate in memory and flush as OTLP/JSON to /i/v1/metrics (one data point per series per window). Pending metrics are flushed on shutdown(). Core gains _sendMetricsBatch on PostHogCoreStateless (same outcome contract as _sendLogsBatch) and a shared resolveMetricsConfig, so any core-based SDK can host PostHogMetrics. (2026-07-15)

Patch Changes

v5.42.0

Compare Source

Minor Changes
  • #​4101 dc2aa5b Thanks @​posthog! - Expose the error tracking rate-limiter config via the new exceptionRateLimiterRefillRate and exceptionRateLimiterBucketSize options. Burst protection is scoped per exception type (each distinct $exception type gets its own token bucket, with no aggregate cap across types), so these let customers with high-cardinality exception types tune the per-type allowance.
    (2026-07-14)
Patch Changes

v5.41.0

Compare Source

Minor Changes
  • #​4105 203284a Thanks @​eli-r-ph! - Add opt-in Capture V1 support. Set the POSTHOG_CAPTURE_MODE=v1 environment variable to submit analytics events to the Capture V1 endpoint (/i/v1/analytics/events) instead of the legacy /batch/ endpoint, on both the batched and immediate send paths. The default remains v0, so existing behavior is unchanged unless you opt in. Opt-in is env-var-only during the transition (no public option), so nothing on the API surface has to be removed when v1 later becomes the default.

    Capture V1 uses Bearer auth, lifts legacy $-sentinel properties into a typed options object, and does per-event partial retry with exponential backoff clamped against Retry-After. Dropped and undelivered events are surfaced on the client error channel as a CaptureV1Error. $ai_* events continue to use the legacy submitter for now, regardless of the capture mode.

    In v1 mode, $ai_* events are routed to an isolated in-memory queue and flushed independently of the Capture V1 queue, so the two transports never share a batch and a failure on one cannot re-send events already accepted on the other. Each queue keeps its own retry/durability semantics: the legacy queue re-queues on network failure (retrying on later flushes), while the V1 queue exhausts the sender's own attempt budget per cycle and then surfaces the failure rather than re-queuing. (2026-07-11)

Patch Changes

v5.40.0

Compare Source

Minor Changes
  • #​4060 0b49a4c Thanks @​turnipdabeets! - Add secretKey config as the canonical alias for the deprecated personalApiKey (accepts a Personal API Key or Project Secret API Key).
    (2026-07-07)

v5.39.4

Compare Source

Patch Changes

v5.39.3

Compare Source

Patch Changes

v5.39.2

Compare Source

Patch Changes
  • #​4028 a664b81 Thanks @​marandaneto! - Make Node flush() wait for pending asynchronous SDK work before draining the event queue, so events produced by helpers like captureException() are not missed. Pending work rejections no longer prevent queued events from flushing.
    (2026-07-01)
  • Updated dependencies [a664b81]:

v5.39.1

Compare Source

Patch Changes

v5.39.0

Compare Source

Minor Changes
  • #​4006 0063128 Thanks @​github-actions! - Add groupIdentifyImmediate() to await the network request when identifying a group, mirroring captureImmediate/identifyImmediate/aliasImmediate. Useful in edge/serverless environments where the background queue may not flush. The Convex integration now uses it directly instead of routing $groupidentify through captureImmediate.
    (2026-06-30)
Patch Changes

v5.38.8

Compare Source

Patch Changes
  • #​3974 08b404b Thanks @​mjfaga! - Fix local evaluation ignoring the in/not_in operator on cohort-based flag conditions. "Not in
    cohort" was evaluated as "in cohort", inverting cohort-exclusion flags. Now applies the operator to
    the cohort membership result. (2026-06-29)

v5.38.7

Compare Source

Patch Changes
  • #​3961 619a25c Thanks @​marandaneto! - Retry feature flag requests after transient network errors only. The feature flag request retry count defaults to 1 and can be set to 0 to disable retries.
    (2026-06-29)
  • Updated dependencies [619a25c]:

v5.38.6

Compare Source

Patch Changes

v5.38.5

Compare Source

Patch Changes

Configuration

📅 Schedule: (in timezone America/New_York)

  • Branch creation
    • Between 12:00 AM and 11:59 PM (* 0-23 * * *)
  • Automerge
    • At any time (no schedule defined)

🚦 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.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate
renovate Bot force-pushed the renovate/posthog-node-5.x-lockfile branch 3 times, most recently from da4c6c4 to cc6dc6e Compare August 20, 2026 14:07
@renovate renovate Bot changed the title Update dependency posthog-node to v5.49.1 Update dependency posthog-node to v5.49.2 Aug 20, 2026
@renovate
renovate Bot force-pushed the renovate/posthog-node-5.x-lockfile branch 6 times, most recently from 83ca014 to e056f5c Compare August 21, 2026 15:42
@renovate renovate Bot changed the title Update dependency posthog-node to v5.49.2 Update dependency posthog-node to v5.50.0 Aug 21, 2026
@renovate
renovate Bot force-pushed the renovate/posthog-node-5.x-lockfile branch 3 times, most recently from aca6d20 to dfaaa81 Compare August 22, 2026 02:37
@renovate
renovate Bot force-pushed the renovate/posthog-node-5.x-lockfile branch from dfaaa81 to fa45238 Compare August 22, 2026 06:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants