Skip to content

feat(traces): cap the attributes on a span event - #4792

Open
turnipdabeets wants to merge 7 commits into
feat/traces-node-mvpfrom
fix/traces-event-attribute-cap
Open

feat(traces): cap the attributes on a span event#4792
turnipdabeets wants to merge 7 commits into
feat/traces-node-mvpfrom
fix/traces-event-attribute-cap

Conversation

@turnipdabeets

Copy link
Copy Markdown
Contributor

Problem

maxAttributesPerSpan counts a span's own attributes and does not reach inside its events, so #4584 bounded a span's width but not its events'. addEvent caps how many events a span carries and truncates each value to maxAttributeValueLength, and nothing caps how many attributes one event holds. The resident worst case is 128 events × unbounded attributes × 8 KB, held on the span record until flush.

This was raised on #4579 (thread) and answered with "I've filed that on #4584". No such comment exists — the id in that reply 404s, and #4584 has since merged with no cap. This PR is that missing follow-up.

Not a spec deviation: openspec/specs/traces/spec.md "Span limits" requires 128 attributes and 128 events per span and is silent on per-event, so the merged code conforms. What is absent is OpenTelemetry's AttributeCountPerEventCountLimit. A companion sdk-specs proposal covers the contract side — see Follow-ups.

Changes

  • traces.maxAttributesPerEvent, default 128, resolved through the same positiveInteger coercion as its siblings (a fraction takes the default rather than being floored).
  • Enforced in addEvent, and re-applied in applySpanLimits after beforeSpanSend — a hook can widen an event as freely as it can add one, and neither goes through addEvent.
  • The drop is reported per event as the OTLP proto's Span.Event.dropped_attributes_count, coerced on the way to the wire like the span's own counters. Rolling it into the span-level droppedAttributesCount would have misreported span-attribute drops.
  • One pass instead of two: the old path did assignUserAttributes then truncateAttributes over the same bag. The cap is now spent before a value is bounded, so keys past it are never read and a wide bag pays no getters on entries about to be dropped — the order _writeAttribute already uses.
  • The internal SpanRecord declares the richer event type, so the counter stays off the hook-visible shape like the span-level counts.

No new changeset. The existing node-span-limits.md entry listed three options and would have shipped release notes that never name the fourth, so that line now names it.

Stacking: based on feat/traces-node-mvp (#4579), parallel to #4726. Traces is unreleased, so this ships at launch rather than as a post-release minor. Overlap with #4726 is traces/config.ts and traces/types.ts; I'll rebase if it lands first.

Release info Sub-libraries affected

Libraries affected

  • All of them
  • posthog-js (web)
  • posthog-js-lite (web lite)
  • posthog-node
  • posthog-react-native
  • @posthog/react-native-plugin
  • @posthog/react
  • @posthog/ai
  • @posthog/convex
  • @posthog/next
  • @posthog/nextjs-config
  • @posthog/nuxt
  • @posthog/openfeature-node-provider
  • @posthog/openfeature-web-provider
  • @posthog/rollup-plugin
  • @posthog/webpack-plugin
  • @posthog/types
  • @posthog/browser-common

@posthog/core and @posthog/types carry the change; posthog-node bumps as a dependent. Both are already declared in the existing node-span-limits.md changeset on the base branch.

Checklist

  • Tests for new code
  • Accounted for the impact of any changes across different platforms
  • Accounted for backwards compatibility of any changes (no breaking changes!)
  • Took care not to unnecessarily increase the bundle size

If releasing new changes

  • Ran pnpm changeset to generate a changeset file

Covered by the existing base-branch entry, amended rather than duplicated — traces has never shipped, so a feature and its follow-ups are one changelog entry.

🤖 Agent context

Autonomy: Human-driven (agent-assisted)

Claude Code (Opus 5), session. Found during a post-merge sanity review of #4579 after six PRs merged into it.

Decisions along the way:

  • Per-event counter over a span-level one. The OTLP proto has Span.Event.dropped_attributes_count for exactly this; folding event drops into the span's counter would have made span-attribute drops unreadable.
  • Rejected exempting the SDK's own exception.* attributes. feat(node): beforeSpanSend hook and per-span limits #4584 removed an analogous reserve for exception events on the grounds that it bought an unprovable case at the cost of the most intricate code in the change. Re-adding the same shape here would have repeated that. A test pins the current behaviour so the choice is visible if it turns out to matter.
  • Fused the copy and the truncate. Keeping them separate would have run every getter on a wide bag before dropping most of it, which is the cost feat(node): beforeSpanSend hook and per-span limits #4584 already fixed for span attributes.
  • Verified, not assumed: the reported gap was checked by grep before building — maxAttributesPerEvent appeared nowhere, and fix(core): honor Retry-After on the OTLP export queues #4726 does not close it either (its own config comment documents the gap).

Verification run locally: packages/core 1539 pass (63 suites), packages/node 995 pass under both the default and edge vitest configs, turbo build clean, oxlint and oxfmt clean, and pnpm generate-references && pnpm check:public-api green with the reference files unchanged. No manual/device testing was done.

Follow-ups (not in this PR)

🤖 Generated with Claude Code

https://claude.ai/code/session_018AAPCyRnC5HbukEZV9hbai

maxAttributesPerSpan does not reach inside events, so a span's width was
bounded but its events' was not. Adds maxAttributesPerEvent, default 128,
reported per event as the OTLP dropped_attributes_count.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018AAPCyRnC5HbukEZV9hbai
@turnipdabeets turnipdabeets self-assigned this Sep 4, 2026
@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor
⚠️ 2 packages modified but this PR has no changeset

This is informational — the PR is not blocked. Click the triangle above to collapse, or push a fix and this comment will auto-delete.

Modified in this PR but no changeset added:

  • @posthog/core
  • @posthog/types

If this change should ship, run pnpm changeset and select a bump level.
If it isn't user-facing (refactor with no behavior change, internal tooling, generated files), no action needed.

@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

Size Change: -626 kB (-2.95%)

Total Size: 20.6 MB

📦 View Changed
Filename Size Change
packages/browser-common/dist/utils/array-find-last-********.js 604 B +604 B (new file) 🆕
packages/browser-common/dist/utils/array-find-last-********.mjs 422 B +422 B (new file) 🆕
packages/browser/dist/all-external-dependencies.js 364 kB +2.14 kB (+0.59%)
packages/browser/dist/array.full.es5.js 498 kB +2.19 kB (+0.44%)
packages/browser/dist/array.full.js 609 kB +3.72 kB (+0.61%)
packages/browser/dist/array.full.no-********.js 668 kB +4.18 kB (+0.63%)
packages/browser/dist/array.js 283 kB +1.57 kB (+0.56%)
packages/browser/dist/array.no-********.js 322 kB +2.04 kB (+0.64%)
packages/browser/dist/default-extensions.js 280 kB +1.58 kB (+0.57%)
packages/browser/dist/exception-autocapture.js 13.7 kB +48 B (+0.35%)
packages/browser/dist/extension-bundles.js 156 kB +551 B (+0.35%)
packages/browser/dist/lazy-********.js 204 kB +1.87 kB (+0.93%)
packages/browser/dist/main.js 287 kB +1.58 kB (+0.55%)
packages/browser/dist/module.full.js 612 kB +3.72 kB (+0.61%)
packages/browser/dist/module.full.no-********.js 670 kB +4.18 kB (+0.63%)
packages/browser/dist/module.js 286 kB +1.57 kB (+0.55%)
packages/browser/dist/module.no-********.js 326 kB +2.04 kB (+0.63%)
packages/browser/dist/module.slim.js 143 kB +1.02 kB (+0.72%)
packages/browser/dist/module.slim.no-********.js 158 kB +1.18 kB (+0.75%)
packages/browser/dist/posthog-********.js 204 kB +2 kB (+0.99%)
packages/browser/dist/recorder-v2.js 128 kB +1.87 kB (+1.48%)
packages/browser/dist/recorder.js 128 kB +1.87 kB (+1.48%)
packages/browser/dist/rrweb-plugin-console-record.js 7.57 kB +524 B (+7.44%) 🔍
packages/browser/dist/rrweb-types.js 2.41 kB +80 B (+3.44%)
packages/browser/dist/rrweb.js 321 kB +2.15 kB (+0.67%)
packages/browser/dist/web-vitals-with-attribution-soft-navs.js 25.6 kB +217 B (+0.86%)
packages/browser/dist/web-vitals-with-attribution.js 25.5 kB +217 B (+0.86%)
packages/core/dist/error-tracking/parsers/base.js 2.11 kB +13 B (+0.62%)
packages/core/dist/error-tracking/parsers/base.mjs 640 B +13 B (+2.07%)
packages/core/dist/featureFlagUtils.js 8.59 kB +11 B (+0.13%)
packages/core/dist/featureFlagUtils.mjs 5.49 kB +11 B (+0.2%)
packages/core/dist/traces/config.js 4.62 kB +111 B (+2.46%)
packages/core/dist/traces/config.mjs 3.27 kB +111 B (+3.52%)
packages/core/dist/traces/index.js 24 kB +107 B (+0.45%)
packages/core/dist/traces/index.mjs 21.7 kB +107 B (+0.5%)
packages/core/dist/traces/otlp.js 6.33 kB +165 B (+2.68%)
packages/core/dist/traces/otlp.mjs 4.11 kB +127 B (+3.19%)
packages/core/dist/traces/span.js 19.5 kB +1.38 kB (+7.61%) 🔍
packages/core/dist/traces/span.mjs 16.3 kB +1.35 kB (+9.08%) 🔍
packages/mcp/dist/extensions/model-parameters.js 3.7 kB +115 B (+3.21%)
packages/mcp/dist/extensions/model-parameters.mjs 1.53 kB +115 B (+8.14%) 🔍
packages/mcp/dist/extensions/posthog-mcp.js 9.69 kB +2.65 kB (+37.6%) 🚨
packages/mcp/dist/extensions/posthog-mcp.mjs 7.12 kB +2.19 kB (+44.54%) 🚨
packages/mcp/dist/extensions/sanitization.js 4.72 kB +137 B (+2.99%)
packages/mcp/dist/extensions/sanitization.mjs 2.96 kB +91 B (+3.18%)
packages/next/dist/server/clientCache.js 1.53 kB -8 B (-0.52%)
packages/nextjs-config/dist/config.js 10.6 kB +283 B (+2.74%)
packages/nextjs-config/dist/config.mjs 8.96 kB +283 B (+3.26%)
packages/rrweb/all/dist/rrweb-all.cjs 639 kB -66.1 kB (-9.37%)
packages/rrweb/all/dist/rrweb-all.js 639 kB -66.2 kB (-9.39%)
packages/rrweb/all/dist/rrweb-all.umd.cjs 670 kB -38.6 kB (-5.45%)
packages/rrweb/all/dist/rrweb-all.umd.min.cjs 332 kB +3.29 kB (+1%)
packages/rrweb/packer/dist/base-********.cjs 0 B -18.3 kB (removed) 🏆
packages/rrweb/packer/dist/base-********.js 0 B -18.2 kB (removed) 🏆
packages/rrweb/packer/dist/base-********.umd.cjs 0 B -18.7 kB (removed) 🏆
packages/rrweb/packer/dist/base-********.umd.min.cjs 0 B -9.5 kB (removed) 🏆
packages/rrweb/packer/dist/browser-********.cjs 17.9 kB +17.9 kB (new file) 🆕
packages/rrweb/packer/dist/browser-********.js 17.5 kB +17.5 kB (new file) 🆕
packages/rrweb/packer/dist/pack.cjs 401 B +54 B (+15.56%) ⚠️
packages/rrweb/packer/dist/pack.js 301 B +16 B (+5.61%) 🔍
packages/rrweb/packer/dist/pack.umd.cjs 1.67 kB +40 B (+2.45%)
packages/rrweb/packer/dist/pack.umd.min.cjs 1.11 kB +5 B (+0.45%)
packages/rrweb/packer/dist/packer.cjs 276 B +19 B (+7.39%) 🔍
packages/rrweb/packer/dist/packer.js 133 B -3 B (-2.21%)
packages/rrweb/packer/dist/packer.umd.cjs 694 B +32 B (+4.83%) 🔍
packages/rrweb/packer/dist/unpack.cjs 737 B -32 B (-4.16%)
packages/rrweb/packer/dist/unpack.js 637 B -65 B (-9.26%)
packages/rrweb/packer/dist/unpack.umd.cjs 1.14 kB -32 B (-2.73%)
packages/rrweb/packer/dist/unpack.umd.min.cjs 953 B -2 B (-0.21%)
packages/rrweb/plugins/rrweb-plugin-canvas-webrtc-record/dist/rrweb-plugin-canvas-webrtc-record.cjs 34.9 kB -2.67 kB (-7.11%)
packages/rrweb/plugins/rrweb-plugin-canvas-webrtc-record/dist/rrweb-plugin-canvas-webrtc-record.js 34.8 kB -2.66 kB (-7.11%)
packages/rrweb/plugins/rrweb-plugin-canvas-webrtc-record/dist/rrweb-plugin-canvas-webrtc-record.umd.cjs 37 kB -1.01 kB (-2.67%)
packages/rrweb/plugins/rrweb-plugin-canvas-webrtc-record/dist/rrweb-plugin-canvas-webrtc-record.umd.min.cjs 22.9 kB +684 B (+3.08%)
packages/rrweb/plugins/rrweb-plugin-canvas-webrtc-replay/dist/rrweb-plugin-canvas-webrtc-replay.cjs 31.8 kB -2.54 kB (-7.41%)
packages/rrweb/plugins/rrweb-plugin-canvas-webrtc-replay/dist/rrweb-plugin-canvas-webrtc-replay.js 31.7 kB -2.53 kB (-7.4%)
packages/rrweb/plugins/rrweb-plugin-canvas-webrtc-replay/dist/rrweb-plugin-canvas-webrtc-replay.umd.cjs 33.7 kB -1.09 kB (-3.13%)
packages/rrweb/plugins/rrweb-plugin-canvas-webrtc-replay/dist/rrweb-plugin-canvas-webrtc-replay.umd.min.cjs 21.1 kB +578 B (+2.81%)
packages/rrweb/plugins/rrweb-plugin-console-record/dist/rrweb-plugin-console-record.cjs 16.9 kB +1.08 kB (+6.82%) 🔍
packages/rrweb/plugins/rrweb-plugin-console-record/dist/rrweb-plugin-console-record.js 16.8 kB +1.09 kB (+6.94%) 🔍
packages/rrweb/plugins/rrweb-plugin-console-record/dist/rrweb-plugin-console-record.umd.cjs 16.1 kB -255 B (-1.56%)
packages/rrweb/plugins/rrweb-plugin-console-record/dist/rrweb-plugin-console-record.umd.min.cjs 8.6 kB +935 B (+12.2%) ⚠️
packages/rrweb/plugins/rrweb-plugin-console-replay/dist/rrweb-plugin-console-replay.cjs 6.57 kB +1.56 kB (+31.16%) 🚨
packages/rrweb/plugins/rrweb-plugin-console-replay/dist/rrweb-plugin-console-replay.js 6.47 kB +1.57 kB (+32.09%) 🚨
packages/rrweb/plugins/rrweb-plugin-console-replay/dist/rrweb-plugin-console-replay.umd.cjs 6.78 kB +1.34 kB (+24.65%) 🚨
packages/rrweb/plugins/rrweb-plugin-console-replay/dist/rrweb-plugin-console-replay.umd.min.cjs 3.61 kB +969 B (+36.69%) 🚨
packages/rrweb/plugins/rrweb-plugin-sequential-id-record/dist/rrweb-plugin-sequential-id-record.cjs 663 B -18 B (-2.64%)
packages/rrweb/plugins/rrweb-plugin-sequential-id-record/dist/rrweb-plugin-sequential-id-record.js 540 B -8 B (-1.46%)
packages/rrweb/plugins/rrweb-plugin-sequential-id-record/dist/rrweb-plugin-sequential-id-record.umd.cjs 1.1 kB -22 B (-1.96%)
packages/rrweb/plugins/rrweb-plugin-sequential-id-record/dist/rrweb-plugin-sequential-id-record.umd.min.cjs 827 B -2 B (-0.24%)
packages/rrweb/plugins/rrweb-plugin-sequential-id-replay/dist/rrweb-plugin-sequential-id-replay.cjs 816 B -117 B (-12.54%) 👏
packages/rrweb/plugins/rrweb-plugin-sequential-id-replay/dist/rrweb-plugin-sequential-id-replay.js 715 B -105 B (-12.8%) 👏
packages/rrweb/plugins/rrweb-plugin-sequential-id-replay/dist/rrweb-plugin-sequential-id-replay.umd.cjs 1.25 kB -120 B (-8.73%)
packages/rrweb/plugins/rrweb-plugin-sequential-id-replay/dist/rrweb-plugin-sequential-id-replay.umd.min.cjs 966 B -2 B (-0.21%)
packages/rrweb/record/dist/rrweb-record.cjs 217 kB -16.3 kB (-6.98%)
packages/rrweb/record/dist/rrweb-record.js 217 kB -16.3 kB (-6.99%)
packages/rrweb/record/dist/rrweb-record.umd.cjs 221 kB -12.9 kB (-5.53%)
packages/rrweb/record/dist/rrweb-record.umd.min.cjs 108 kB +1.4 kB (+1.3%)
packages/rrweb/replay/dist/rrweb-replay.cjs 426 kB -50.4 kB (-10.59%) 👏
packages/rrweb/replay/dist/rrweb-replay.js 426 kB -50.4 kB (-10.59%) 👏
packages/rrweb/replay/dist/rrweb-replay.umd.cjs 450 kB -29.4 kB (-6.14%)
packages/rrweb/replay/dist/rrweb-replay.umd.min.cjs 223 kB -1.89 kB (-0.84%)
packages/rrweb/rrdom-nodejs/dist/rrdom-nodejs.cjs 141 kB -18.8 kB (-11.71%) 👏
packages/rrweb/rrdom-nodejs/dist/rrdom-nodejs.js 142 kB -18.2 kB (-11.4%) 👏
packages/rrweb/rrdom-nodejs/dist/rrdom-nodejs.umd.cjs 155 kB -7.37 kB (-4.55%)
packages/rrweb/rrdom-nodejs/dist/rrdom-nodejs.umd.min.cjs 75.9 kB +950 B (+1.27%)
packages/rrweb/rrdom/dist/rrdom.cjs 167 kB -19.2 kB (-10.32%) 👏
packages/rrweb/rrdom/dist/rrdom.js 166 kB -19.2 kB (-10.39%) 👏
packages/rrweb/rrdom/dist/rrdom.umd.cjs 178 kB -9.29 kB (-4.96%)
packages/rrweb/rrdom/dist/rrdom.umd.min.cjs 86.5 kB +982 B (+1.15%)
packages/rrweb/rrweb-snapshot/dist/rebuild-********.cjs 133 kB +133 kB (new file) 🆕
packages/rrweb/rrweb-snapshot/dist/rebuild-BNA34v-U.js 132 kB +132 kB (new file) 🆕
packages/rrweb/rrweb-snapshot/dist/record.cjs 4.27 kB -34.8 kB (-89.06%) 🏆
packages/rrweb/rrweb-snapshot/dist/record.js 2.99 kB -34.3 kB (-91.98%) 🏆
packages/rrweb/rrweb-snapshot/dist/record.umd.cjs 92.5 kB +9.32 kB (+11.2%) ⚠️
packages/rrweb/rrweb-snapshot/dist/record.umd.min.cjs 43.5 kB +6.04 kB (+16.15%) ⚠️
packages/rrweb/rrweb-snapshot/dist/replay.cjs 1.9 kB -147 kB (-98.73%) 🏆
packages/rrweb/rrweb-snapshot/dist/replay.js 1.27 kB -147 kB (-99.15%) 🏆
packages/rrweb/rrweb-snapshot/dist/replay.umd.cjs 205 kB +10.5 kB (+5.4%) 🔍
packages/rrweb/rrweb-snapshot/dist/replay.umd.min.cjs 90.1 kB +3.94 kB (+4.57%) 🔍
packages/rrweb/rrweb-snapshot/dist/rrweb-********.cjs 4.55 kB +605 B (+15.32%) ⚠️
packages/rrweb/rrweb-snapshot/dist/rrweb-********.js 3.17 kB +852 B (+36.68%) 🚨
packages/rrweb/rrweb-snapshot/dist/rrweb-********.umd.cjs 247 kB -14.2 kB (-5.45%)
packages/rrweb/rrweb-snapshot/dist/rrweb-********.umd.min.cjs 111 kB +1.68 kB (+1.54%)
packages/rrweb/rrweb-snapshot/dist/snapshot-********.cjs 34.1 kB +34.1 kB (new file) 🆕
packages/rrweb/rrweb-snapshot/dist/snapshot-********.js 32.2 kB +32.2 kB (new file) 🆕
packages/rrweb/rrweb-snapshot/dist/types-********.cjs 48.2 kB +10.6 kB (+28.08%) 🚨
packages/rrweb/rrweb-snapshot/dist/types-********.js 43 kB +6.48 kB (+17.74%) ⚠️
packages/rrweb/rrweb-snapshot/dist/types-********.umd.cjs 0 B -39 kB (removed) 🏆
packages/rrweb/rrweb-snapshot/dist/types-********.umd.min.cjs 0 B -17.3 kB (removed) 🏆
packages/rrweb/rrweb/dist/rrweb.cjs 624 kB -65.3 kB (-9.47%)
packages/rrweb/rrweb/dist/rrweb.js 624 kB -65.5 kB (-9.5%) 👏
packages/rrweb/rrweb/dist/rrweb.umd.cjs 652 kB -37.2 kB (-5.4%)
packages/rrweb/rrweb/dist/rrweb.umd.min.cjs 322 kB +3.31 kB (+1.04%)
packages/rrweb/types/dist/rrweb-types.cjs 5.8 kB +44 B (+0.76%)
packages/rrweb/types/dist/rrweb-types.js 5.5 kB +40 B (+0.73%)
packages/rrweb/types/dist/rrweb-types.umd.cjs 6.06 kB -101 B (-1.64%)
packages/rrweb/types/dist/rrweb-types.umd.min.cjs 2.95 kB +86 B (+3%)
packages/rrweb/utils/dist/rrweb-utils.cjs 8.99 kB +1.23 kB (+15.8%) ⚠️
packages/rrweb/utils/dist/rrweb-utils.js 8.51 kB +1.21 kB (+16.5%) ⚠️
packages/rrweb/utils/dist/rrweb-utils.umd.cjs 9.43 kB +1.18 kB (+14.36%) ⚠️
packages/rrweb/utils/dist/rrweb-utils.umd.min.cjs 4.57 kB +476 B (+11.63%) ⚠️
ℹ️ View Unchanged
Filename Size
packages/ai/dist/adk/index.cjs 35.6 kB
packages/ai/dist/adk/index.mjs 35.4 kB
packages/ai/dist/anthropic/index.cjs 35.9 kB
packages/ai/dist/anthropic/index.mjs 34.5 kB
packages/ai/dist/gemini/index.cjs 33.5 kB
packages/ai/dist/gemini/index.mjs 33.3 kB
packages/ai/dist/index.cjs 50.2 kB
packages/ai/dist/index.mjs 50 kB
packages/ai/dist/langchain/index.cjs 36.7 kB
packages/ai/dist/langchain/index.mjs 36.6 kB
packages/ai/dist/langchain/middleware/index.cjs 42.8 kB
packages/ai/dist/langchain/middleware/index.mjs 42.5 kB
packages/ai/dist/openai-agents/index.cjs 29.5 kB
packages/ai/dist/openai-agents/index.mjs 29.4 kB
packages/ai/dist/openai/index.cjs 78.8 kB
packages/ai/dist/openai/index.mjs 78.2 kB
packages/ai/dist/otel/index.cjs 15.4 kB
packages/ai/dist/otel/index.mjs 15.2 kB
packages/ai/dist/vercel/index.cjs 40.9 kB
packages/ai/dist/vercel/index.mjs 40.8 kB
packages/browser-common/dist/client.js 585 B
packages/browser-common/dist/client.mjs 12 B
packages/browser-common/dist/config.js 1.52 kB
packages/browser-common/dist/config.mjs 216 B
packages/browser-common/dist/constants.js 1.75 kB
packages/browser-common/dist/constants.mjs 219 B
packages/browser-common/dist/disposable.js 1.72 kB
packages/browser-common/dist/disposable.mjs 386 B
packages/browser-common/dist/extension-runtime.js 3.17 kB
packages/browser-common/dist/extension-runtime.mjs 1.83 kB
packages/browser-common/dist/extension.js 585 B
packages/browser-common/dist/extension.mjs 12 B
packages/browser-common/dist/index.js 2.98 kB
packages/browser-common/dist/index.mjs 130 B
packages/browser-common/dist/persistence.js 585 B
packages/browser-common/dist/persistence.mjs 12 B
packages/browser-common/dist/pubsub.js 2.63 kB
packages/browser-common/dist/pubsub.mjs 1.35 kB
packages/browser-common/dist/token.js 585 B
packages/browser-common/dist/token.mjs 12 B
packages/browser-common/dist/types/compression.js 1.37 kB
packages/browser-common/dist/types/compression.mjs 93 B
packages/browser-common/dist/types/index.js 3.68 kB
packages/browser-common/dist/types/index.mjs 144 B
packages/browser-common/dist/types/network-recording.js 585 B
packages/browser-common/dist/types/network-recording.mjs 12 B
packages/browser-common/dist/types/remote-config.js 585 B
packages/browser-common/dist/types/remote-config.mjs 12 B
packages/browser-common/dist/types/surveys.js 4.61 kB
packages/browser-common/dist/types/surveys.mjs 2.17 kB
packages/browser-common/dist/utils/array-at-********.js 619 B
packages/browser-common/dist/utils/array-at-********.mjs 437 B
packages/browser-common/dist/utils/autocapture-utils.js 24.3 kB
packages/browser-common/dist/utils/autocapture-utils.mjs 18.6 kB
packages/browser-common/dist/utils/blocked-uas.js 2.2 kB
packages/browser-common/dist/utils/blocked-uas.mjs 598 B
packages/browser-common/dist/utils/cookie-utils.js 1.99 kB
packages/browser-common/dist/utils/cookie-utils.mjs 673 B
packages/browser-common/dist/utils/device-model-utils.js 2.08 kB
packages/browser-common/dist/utils/device-model-utils.mjs 678 B
packages/browser-common/dist/utils/element-utils.js 2.56 kB
packages/browser-common/dist/utils/element-utils.mjs 804 B
packages/browser-common/dist/utils/elements-chain-utils.js 2.86 kB
packages/browser-common/dist/utils/elements-chain-utils.mjs 1.23 kB
packages/browser-common/dist/utils/encode-utils.js 1.49 kB
packages/browser-common/dist/utils/encode-utils.mjs 205 B
packages/browser-common/dist/utils/event-utils.js 15.8 kB
packages/browser-common/dist/utils/event-utils.mjs 10 kB
packages/browser-common/dist/utils/general-utils.js 7.41 kB
packages/browser-common/dist/utils/general-utils.mjs 4.49 kB
packages/browser-common/dist/utils/globals.js 2.83 kB
packages/browser-common/dist/utils/globals.mjs 842 B
packages/browser-common/dist/utils/logger.js 3.5 kB
packages/browser-common/dist/utils/logger.mjs 1.61 kB
packages/browser-common/dist/utils/matcher-utils.js 2.94 kB
packages/browser-common/dist/utils/matcher-utils.mjs 1.33 kB
packages/browser-common/dist/utils/promise-utils.js 1.45 kB
packages/browser-common/dist/utils/promise-utils.mjs 169 B
packages/browser-common/dist/utils/property-utils.js 3.63 kB
packages/browser-common/dist/utils/property-utils.mjs 1.6 kB
packages/browser-common/dist/utils/prototype-utils.js 3.61 kB
packages/browser-common/dist/utils/prototype-utils.mjs 1.86 kB
packages/browser-common/dist/utils/regex-utils.js 1.55 kB
packages/browser-common/dist/utils/regex-utils.mjs 71 B
packages/browser-common/dist/utils/request-utils.js 6.83 kB
packages/browser-common/dist/utils/request-utils.mjs 4.19 kB
packages/browser-common/dist/utils/simple-event-emitter.js 1.86 kB
packages/browser-common/dist/utils/simple-event-emitter.mjs 553 B
packages/browser-common/dist/utils/stylesheet-loader.js 2.23 kB
packages/browser-common/dist/utils/stylesheet-loader.mjs 823 B
packages/browser-common/dist/utils/type-utils.js 1.68 kB
packages/browser-common/dist/utils/type-utils.mjs 258 B
packages/browser-common/dist/utils/url-targeting-utils.js 2.45 kB
packages/browser-common/dist/utils/url-targeting-utils.mjs 863 B
packages/browser-common/dist/utils/uuidv7.js 6.72 kB
packages/browser-common/dist/utils/uuidv7.mjs 5.14 kB
packages/browser-next/dist/analytics-********.js 1.68 kB
packages/browser-next/dist/analytics-********.mjs 219 B
packages/browser-next/dist/analytics-options.js 585 B
packages/browser-next/dist/analytics-options.mjs 12 B
packages/browser-next/dist/analytics.js 6.62 kB
packages/browser-next/dist/analytics.mjs 5.15 kB
packages/browser-next/dist/bot-filter.js 2.38 kB
packages/browser-next/dist/bot-filter.mjs 1.09 kB
packages/browser-next/dist/capture-v1.js 27.8 kB
packages/browser-next/dist/capture-v1.mjs 25.3 kB
packages/browser-next/dist/core.js 1.69 kB
packages/browser-next/dist/core.mjs 185 B
packages/browser-next/dist/extensions/registry.js 3.41 kB
packages/browser-next/dist/extensions/registry.mjs 2.11 kB
packages/browser-next/dist/id.js 2.25 kB
packages/browser-next/dist/id.mjs 983 B
packages/browser-next/dist/index.js 2.68 kB
packages/browser-next/dist/index.mjs 1.18 kB
packages/browser-next/dist/lane.js 18.1 kB
packages/browser-next/dist/lane.mjs 16.9 kB
packages/browser-next/dist/logger.js 1.87 kB
packages/browser-next/dist/logger.mjs 581 B
packages/browser-next/dist/posthog.js 33.2 kB
packages/browser-next/dist/posthog.mjs 30.9 kB
packages/browser-next/dist/rate-limiter.js 2.89 kB
packages/browser-next/dist/rate-limiter.mjs 1.58 kB
packages/browser-next/dist/request.js 4.61 kB
packages/browser-next/dist/request.mjs 3.21 kB
packages/browser-next/dist/state.js 24.9 kB
packages/browser-next/dist/state.mjs 23.2 kB
packages/browser-next/dist/types.js 585 B
packages/browser-next/dist/types.mjs 12 B
packages/browser-next/dist/version.js 1.31 kB
packages/browser-next/dist/version.mjs 45 B
packages/browser/dist/conversations.js 69 kB
packages/browser/dist/crisp-chat-integration.js 2.01 kB
packages/browser/dist/customizations.full.js 16.1 kB
packages/browser/dist/customizations.js 15.9 kB
packages/browser/dist/dead-clicks-autocapture.js 18.3 kB
packages/browser/dist/element-inference.js 5.6 kB
packages/browser/dist/external-scripts-loader.js 3.58 kB
packages/browser/dist/intercom-integration.js 2.06 kB
packages/browser/dist/logs.js 5.82 kB
packages/browser/dist/module.mjs 286 kB
packages/browser/dist/product-tours-preview.js 82.4 kB
packages/browser/dist/product-tours.js 124 kB
packages/browser/dist/surveys-preview.js 81.3 kB
packages/browser/dist/surveys.js 102 kB
packages/browser/dist/tracing-headers.js 3.74 kB
packages/browser/dist/web-vitals-soft-navs.js 9.94 kB
packages/browser/dist/web-vitals.js 9.92 kB
packages/browser/react/dist/esm/index.js 22.1 kB
packages/browser/react/dist/esm/slim/index.js 18.5 kB
packages/browser/react/dist/esm/surveys/index.js 3.61 kB
packages/browser/react/dist/umd/index.js 26.4 kB
packages/browser/react/dist/umd/slim/index.js 22.3 kB
packages/browser/react/dist/umd/surveys/index.js 5.63 kB
packages/convex/dist/client/feature-flags/crypto.js 76 B
packages/convex/dist/client/feature-flags/evaluator.js 14.9 kB
packages/convex/dist/client/feature-flags/index.js 196 B
packages/convex/dist/client/feature-flags/match-********.js 5.08 kB
packages/convex/dist/client/feature-flags/types.js 44 B
packages/convex/dist/client/index.js 14.8 kB
packages/convex/dist/component/_generated/api.js 712 B
packages/convex/dist/component/_generated/component.js 212 B
packages/convex/dist/component/_generated/dataModel.js 230 B
packages/convex/dist/component/_generated/server.js 3.74 kB
packages/convex/dist/component/convex.config.js 1.66 kB
packages/convex/dist/component/crons.js 969 B
packages/convex/dist/component/lib.js 24.8 kB
packages/convex/dist/component/schema.js 1.17 kB
packages/convex/dist/component/version.js 67 B
packages/core/dist/cookie.js 5.44 kB
packages/core/dist/cookie.mjs 3.12 kB
packages/core/dist/error-tracking/chunk-ids.js 2.64 kB
packages/core/dist/error-tracking/chunk-ids.mjs 1.31 kB
packages/core/dist/error-tracking/coercers/dom-exception-coercer.js 2.4 kB
packages/core/dist/error-tracking/coercers/dom-exception-coercer.mjs 993 B
packages/core/dist/error-tracking/coercers/error-coercer.js 2.23 kB
packages/core/dist/error-tracking/coercers/error-coercer.mjs 888 B
packages/core/dist/error-tracking/coercers/error-event-coercer.js 2.45 kB
packages/core/dist/error-tracking/coercers/error-event-coercer.mjs 1.05 kB
packages/core/dist/error-tracking/coercers/event-coercer.js 1.92 kB
packages/core/dist/error-tracking/coercers/event-coercer.mjs 548 B
packages/core/dist/error-tracking/coercers/index.js 5.82 kB
packages/core/dist/error-tracking/coercers/index.mjs 326 B
packages/core/dist/error-tracking/coercers/object-coercer.js 4.13 kB
packages/core/dist/error-tracking/coercers/object-coercer.mjs 2.53 kB
packages/core/dist/error-tracking/coercers/primitive-coercer.js 1.76 kB
packages/core/dist/error-tracking/coercers/primitive-coercer.mjs 419 B
packages/core/dist/error-tracking/coercers/promise-rejection-event.js 2.69 kB
packages/core/dist/error-tracking/coercers/promise-rejection-event.mjs 1.25 kB
packages/core/dist/error-tracking/coercers/string-coercer.js 2.11 kB
packages/core/dist/error-tracking/coercers/string-coercer.mjs 820 B
packages/core/dist/error-tracking/coercers/utils.js 2.16 kB
packages/core/dist/error-tracking/coercers/utils.mjs 716 B
packages/core/dist/error-tracking/error-properties-builder.js 5.66 kB
packages/core/dist/error-tracking/error-properties-builder.mjs 4.23 kB
packages/core/dist/error-tracking/exception-steps.js 6.1 kB
packages/core/dist/error-tracking/exception-steps.mjs 3.83 kB
packages/core/dist/error-tracking/index.js 4.62 kB
packages/core/dist/error-tracking/index.mjs 222 B
packages/core/dist/error-tracking/parsers/chrome.js 2.83 kB
packages/core/dist/error-tracking/parsers/chrome.mjs 1.32 kB
packages/core/dist/error-tracking/parsers/gecko.js 2.57 kB
packages/core/dist/error-tracking/parsers/gecko.mjs 1.13 kB
packages/core/dist/error-tracking/parsers/index.js 4.85 kB
packages/core/dist/error-tracking/parsers/index.mjs 2.01 kB
packages/core/dist/error-tracking/parsers/node.js 4.31 kB
packages/core/dist/error-tracking/parsers/node.mjs 2.95 kB
packages/core/dist/error-tracking/parsers/opera.js 2.35 kB
packages/core/dist/error-tracking/parsers/opera.mjs 746 B
packages/core/dist/error-tracking/parsers/safari.js 1.98 kB
packages/core/dist/error-tracking/parsers/safari.mjs 574 B
packages/core/dist/error-tracking/parsers/winjs.js 1.82 kB
packages/core/dist/error-tracking/parsers/winjs.mjs 426 B
packages/core/dist/error-tracking/release.js 1.52 kB
packages/core/dist/error-tracking/release.mjs 203 B
packages/core/dist/error-tracking/types.js 1.42 kB
packages/core/dist/error-tracking/types.mjs 131 B
packages/core/dist/error-tracking/utils.js 1.9 kB
packages/core/dist/error-tracking/utils.mjs 604 B
packages/core/dist/eventemitter.js 1.88 kB
packages/core/dist/eventemitter.mjs 571 B
packages/core/dist/featureFlagLocalEvaluation.js 22.2 kB
packages/core/dist/featureFlagLocalEvaluation.mjs 19.6 kB
packages/core/dist/gzip.js 5.88 kB
packages/core/dist/gzip.mjs 3.87 kB
packages/core/dist/index.js 25 kB
packages/core/dist/index.mjs 1.93 kB
packages/core/dist/logs/index.js 10.9 kB
packages/core/dist/logs/index.mjs 9.16 kB
packages/core/dist/logs/logs-utils.js 6.69 kB
packages/core/dist/logs/logs-utils.mjs 4.51 kB
packages/core/dist/logs/types.js 585 B
packages/core/dist/logs/types.mjs 12 B
packages/core/dist/metrics/config.js 2.05 kB
packages/core/dist/metrics/config.mjs 735 B
packages/core/dist/metrics/index.js 14.5 kB
packages/core/dist/metrics/index.mjs 12 kB
packages/core/dist/metrics/metrics-utils.js 3.75 kB
packages/core/dist/metrics/metrics-utils.mjs 1.71 kB
packages/core/dist/metrics/types.js 585 B
packages/core/dist/metrics/types.mjs 12 B
packages/core/dist/posthog-core-stateless.js 47.4 kB
packages/core/dist/posthog-core-stateless.mjs 44 kB
packages/core/dist/posthog-core.js 49.6 kB
packages/core/dist/posthog-core.mjs 43.9 kB
packages/core/dist/surveys/activation.js 2.29 kB
packages/core/dist/surveys/activation.mjs 572 B
packages/core/dist/surveys/events.js 4.36 kB
packages/core/dist/surveys/events.mjs 2.05 kB
packages/core/dist/surveys/index.js 6.64 kB
packages/core/dist/surveys/index.mjs 798 B
packages/core/dist/surveys/keys.js 1.8 kB
packages/core/dist/surveys/keys.mjs 350 B
packages/core/dist/surveys/property-********.js 3.78 kB
packages/core/dist/surveys/property-********.mjs 2.14 kB
packages/core/dist/surveys/translations.js 9.18 kB
packages/core/dist/surveys/translations.mjs 6.83 kB
packages/core/dist/surveys/validation.js 3.15 kB
packages/core/dist/surveys/validation.mjs 1.51 kB
packages/core/dist/testing/index.js 2.76 kB
packages/core/dist/testing/index.mjs 79 B
packages/core/dist/testing/PostHogCoreTestClient.js 3.33 kB
packages/core/dist/testing/PostHogCoreTestClient.mjs 1.82 kB
packages/core/dist/testing/test-utils.js 2.9 kB
packages/core/dist/testing/test-utils.mjs 1.11 kB
packages/core/dist/traces/context.js 1.64 kB
packages/core/dist/traces/context.mjs 318 B
packages/core/dist/traces/ids.js 3.2 kB
packages/core/dist/traces/ids.mjs 1.52 kB
packages/core/dist/traces/sanitize.js 3.59 kB
packages/core/dist/traces/sanitize.mjs 1.88 kB
packages/core/dist/traces/traceparent.js 3.72 kB
packages/core/dist/traces/traceparent.mjs 1.84 kB
packages/core/dist/traces/types.js 585 B
packages/core/dist/traces/types.mjs 12 B
packages/core/dist/tracing-headers.js 3.48 kB
packages/core/dist/tracing-headers.mjs 2.08 kB
packages/core/dist/types.js 8.39 kB
packages/core/dist/types.mjs 5.23 kB
packages/core/dist/utils/bot-detection.js 3.38 kB
packages/core/dist/utils/bot-detection.mjs 1.96 kB
packages/core/dist/utils/browser-utils.js 1.57 kB
packages/core/dist/utils/browser-utils.mjs 182 B
packages/core/dist/utils/bucketed-rate-limiter.js 4.32 kB
packages/core/dist/utils/bucketed-rate-limiter.mjs 2.22 kB
packages/core/dist/utils/index.js 15.4 kB
packages/core/dist/utils/index.mjs 3.34 kB
packages/core/dist/utils/json-utils.js 7.44 kB
packages/core/dist/utils/json-utils.mjs 5.02 kB
packages/core/dist/utils/logger.js 2.68 kB
packages/core/dist/utils/logger.mjs 1.29 kB
packages/core/dist/utils/number-utils.js 3.42 kB
packages/core/dist/utils/number-utils.mjs 1.68 kB
packages/core/dist/utils/otlp-********.js 2.97 kB
packages/core/dist/utils/otlp-********.mjs 1.32 kB
packages/core/dist/utils/otlp-any-value.js 7.96 kB
packages/core/dist/utils/otlp-any-value.mjs 5.77 kB
packages/core/dist/utils/promise-queue.js 2.58 kB
packages/core/dist/utils/promise-queue.mjs 1.25 kB
packages/core/dist/utils/string-utils.js 3.83 kB
packages/core/dist/utils/string-utils.mjs 1.97 kB
packages/core/dist/utils/type-utils.js 7.52 kB
packages/core/dist/utils/type-utils.mjs 3.27 kB
packages/core/dist/utils/user-agent-utils.js 18.5 kB
packages/core/dist/utils/user-agent-utils.mjs 14.7 kB
packages/core/dist/vendor/uuidv7.js 8.36 kB
packages/core/dist/vendor/uuidv7.mjs 6.7 kB
packages/mcp/dist/extensions/analytics-parameters.js 6.63 kB
packages/mcp/dist/extensions/analytics-parameters.mjs 4.27 kB
packages/mcp/dist/extensions/capture.js 4.04 kB
packages/mcp/dist/extensions/capture.mjs 2.58 kB
packages/mcp/dist/extensions/client-********.js 6.33 kB
packages/mcp/dist/extensions/client-********.mjs 3.71 kB
packages/mcp/dist/extensions/compatibility.js 5.45 kB
packages/mcp/dist/extensions/compatibility.mjs 3.4 kB
packages/mcp/dist/extensions/constants.js 5.45 kB
packages/mcp/dist/extensions/constants.mjs 2.94 kB
packages/mcp/dist/extensions/context-parameters.js 2.85 kB
packages/mcp/dist/extensions/context-parameters.mjs 893 B
packages/mcp/dist/extensions/conversation-id.js 6.41 kB
packages/mcp/dist/extensions/conversation-id.mjs 3.58 kB
packages/mcp/dist/extensions/detect.js 3.87 kB
packages/mcp/dist/extensions/detect.mjs 1.49 kB
packages/mcp/dist/extensions/event-types.js 1.78 kB
packages/mcp/dist/extensions/event-types.mjs 459 B
packages/mcp/dist/extensions/exceptions.js 2.67 kB
packages/mcp/dist/extensions/exceptions.mjs 1.19 kB
packages/mcp/dist/extensions/headers.js 2.08 kB
packages/mcp/dist/extensions/headers.mjs 643 B
packages/mcp/dist/extensions/ids.js 2.11 kB
packages/mcp/dist/extensions/ids.mjs 637 B
packages/mcp/dist/extensions/instrument-********.js 5.02 kB
packages/mcp/dist/extensions/instrument-********.mjs 3.18 kB
packages/mcp/dist/extensions/instrument-highlevel.js 12.8 kB
packages/mcp/dist/extensions/instrument-highlevel.mjs 10.2 kB
packages/mcp/dist/extensions/instrumentation.js 27.9 kB
packages/mcp/dist/extensions/instrumentation.mjs 21.9 kB
packages/mcp/dist/extensions/intent.js 3.3 kB
packages/mcp/dist/extensions/intent.mjs 1.64 kB
packages/mcp/dist/extensions/internal.js 7.63 kB
packages/mcp/dist/extensions/internal.mjs 5.23 kB
packages/mcp/dist/extensions/lib-********.js 1.7 kB
packages/mcp/dist/extensions/lib-********.mjs 267 B
packages/mcp/dist/extensions/logger.js 1.81 kB
packages/mcp/dist/extensions/logger.mjs 380 B
packages/mcp/dist/extensions/mcp-********.js 4.78 kB
packages/mcp/dist/extensions/mcp-********.mjs 3.3 kB
packages/mcp/dist/extensions/mcp-sdk-compat.js 5.13 kB
packages/mcp/dist/extensions/mcp-sdk-compat.mjs 2.9 kB
packages/mcp/dist/extensions/output-instructions.js 6.21 kB
packages/mcp/dist/extensions/output-instructions.mjs 3.91 kB
packages/mcp/dist/extensions/posthog-events.js 11.8 kB
packages/mcp/dist/extensions/posthog-events.mjs 7.98 kB
packages/mcp/dist/extensions/request-headers.js 2.27 kB
packages/mcp/dist/extensions/request-headers.mjs 963 B
packages/mcp/dist/extensions/session-token.js 5.47 kB
packages/mcp/dist/extensions/session-token.mjs 3.6 kB
packages/mcp/dist/extensions/session.js 6.74 kB
packages/mcp/dist/extensions/session.mjs 4.12 kB
packages/mcp/dist/extensions/sink.js 4.47 kB
packages/mcp/dist/extensions/sink.mjs 2.67 kB
packages/mcp/dist/extensions/tools.js 3.61 kB
packages/mcp/dist/extensions/tools.mjs 1.63 kB
packages/mcp/dist/extensions/tracing-helpers.js 2.51 kB
packages/mcp/dist/extensions/tracing-helpers.mjs 772 B
packages/mcp/dist/extensions/transport-********.js 3 kB
packages/mcp/dist/extensions/transport-********.mjs 1.09 kB
packages/mcp/dist/extensions/truncation.js 11.6 kB
packages/mcp/dist/extensions/truncation.mjs 9.79 kB
packages/mcp/dist/index.js 8.88 kB
packages/mcp/dist/index.mjs 4.76 kB
packages/mcp/dist/types.js 585 B
packages/mcp/dist/types.mjs 12 B
packages/mcp/dist/version.js 1.31 kB
packages/mcp/dist/version.mjs 46 B
packages/next/dist/app/PostHogProvider.js 5.37 kB
packages/next/dist/client/ClientPostHogProvider.js 2.28 kB
packages/next/dist/client/hooks.js 172 B
packages/next/dist/client/PostHogPageView.js 4.23 kB
packages/next/dist/index.client.js 401 B
packages/next/dist/index.edge.js 570 B
packages/next/dist/index.js 554 B
packages/next/dist/index.react-server.js 420 B
packages/next/dist/middleware/postHogMiddleware.js 4.08 kB
packages/next/dist/pages.client.js 225 B
packages/next/dist/pages.edge.js 294 B
packages/next/dist/pages.js 347 B
packages/next/dist/pages/createPostHog.js 1.48 kB
packages/next/dist/pages/getServerSidePostHog.js 1.48 kB
packages/next/dist/pages/PostHogPageView.js 1.77 kB
packages/next/dist/pages/PostHogProvider.js 1.58 kB
packages/next/dist/server.edge.js 795 B
packages/next/dist/server/captureRequestError.js 5.26 kB
packages/next/dist/server/clientCache.edge.js 305 B
packages/next/dist/server/clientCache.node.js 305 B
packages/next/dist/server/createPostHog.js 1.44 kB
packages/next/dist/server/getPostHog.js 3.45 kB
packages/next/dist/server/onRequestError.js 1.39 kB
packages/next/dist/server/onRequestError.types.js 59 B
packages/next/dist/shared/browser.js 195 B
packages/next/dist/shared/config.js 2.23 kB
packages/next/dist/shared/constants.js 201 B
packages/next/dist/shared/cookie.js 540 B
packages/next/dist/shared/identity.js 2.56 kB
packages/next/dist/shared/tracing-headers.js 2.18 kB
packages/nextjs-config/dist/index.js 2.21 kB
packages/nextjs-config/dist/index.mjs 30 B
packages/nextjs-config/dist/strip-sourcemap-********.js 4.91 kB
packages/nextjs-config/dist/strip-sourcemap-********.mjs 2.96 kB
packages/nextjs-config/dist/utils.js 3.93 kB
packages/nextjs-config/dist/utils.mjs 1.72 kB
packages/node/dist/ai-capture/batching.js 2.71 kB
packages/node/dist/ai-capture/batching.mjs 1.21 kB
packages/node/dist/ai-capture/routing.js 1.96 kB
packages/node/dist/ai-capture/routing.mjs 264 B
packages/node/dist/capture-v1/config.js 1.59 kB
packages/node/dist/capture-v1/config.mjs 283 B
packages/node/dist/capture-v1/errors.js 1.99 kB
packages/node/dist/capture-v1/errors.mjs 694 B
packages/node/dist/capture-v1/routing.js 1.77 kB
packages/node/dist/capture-v1/routing.mjs 279 B
packages/node/dist/capture-v1/sender.js 11.5 kB
packages/node/dist/capture-v1/sender.mjs 9.94 kB
packages/node/dist/capture-v1/transform.js 5.22 kB
packages/node/dist/capture-v1/transform.mjs 3.65 kB
packages/node/dist/capture-v1/types.js 585 B
packages/node/dist/capture-v1/types.mjs 12 B
packages/node/dist/client.js 61.9 kB
packages/node/dist/client.mjs 58.3 kB
packages/node/dist/entrypoints/index.edge.js 3.66 kB
packages/node/dist/entrypoints/index.edge.mjs 720 B
packages/node/dist/entrypoints/index.node.js 6.45 kB
packages/node/dist/entrypoints/index.node.mjs 1.77 kB
packages/node/dist/entrypoints/nestjs.js 2.27 kB
packages/node/dist/entrypoints/nestjs.mjs 42 B
packages/node/dist/experimental.js 852 B
packages/node/dist/experimental.mjs 279 B
packages/node/dist/exports.js 6.3 kB
packages/node/dist/exports.mjs 388 B
packages/node/dist/extensions/context/context.js 2.22 kB
packages/node/dist/extensions/context/context.mjs 863 B
packages/node/dist/extensions/context/span-context.node.js 1.8 kB
packages/node/dist/extensions/context/span-context.node.mjs 355 B
packages/node/dist/extensions/context/types.js 585 B
packages/node/dist/extensions/context/types.mjs 12 B
packages/node/dist/extensions/error-tracking/autocapture.js 5.29 kB
packages/node/dist/extensions/error-tracking/autocapture.mjs 3.62 kB
packages/node/dist/extensions/error-tracking/index.js 4.48 kB
packages/node/dist/extensions/error-tracking/index.mjs 3.17 kB
packages/node/dist/extensions/error-tracking/modifiers/context-lines.node.js 11.7 kB
packages/node/dist/extensions/error-tracking/modifiers/context-lines.node.mjs 9.64 kB
packages/node/dist/extensions/error-tracking/modifiers/module.node.js 2.87 kB
packages/node/dist/extensions/error-tracking/modifiers/module.node.mjs 1.45 kB
packages/node/dist/extensions/error-tracking/modifiers/relative-path.node.js 2.07 kB
packages/node/dist/extensions/error-tracking/modifiers/relative-path.node.mjs 624 B
packages/node/dist/extensions/express.js 5.07 kB
packages/node/dist/extensions/express.mjs 2.78 kB
packages/node/dist/extensions/feature-flags/cache.js 585 B
packages/node/dist/extensions/feature-flags/cache.mjs 12 B
packages/node/dist/extensions/feature-flags/crypto.js 1.37 kB
packages/node/dist/extensions/feature-flags/crypto.mjs 42 B
packages/node/dist/extensions/feature-flags/feature-flags.js 32.3 kB
packages/node/dist/extensions/feature-flags/feature-flags.mjs 29.8 kB
packages/node/dist/extensions/nestjs.js 5.71 kB
packages/node/dist/extensions/nestjs.mjs 3.42 kB
packages/node/dist/extensions/sentry-integration.js 4.99 kB
packages/node/dist/extensions/sentry-integration.mjs 3.37 kB
packages/node/dist/extensions/tracing-headers.js 3.41 kB
packages/node/dist/extensions/tracing-headers.mjs 1.53 kB
packages/node/dist/extensions/url-utils.js 2.32 kB
packages/node/dist/extensions/url-utils.mjs 785 B
packages/node/dist/feature-flag-evaluations.js 6.22 kB
packages/node/dist/feature-flag-evaluations.mjs 4.77 kB
packages/node/dist/gzip.node.js 1.83 kB
packages/node/dist/gzip.node.mjs 416 B
packages/node/dist/host-os.node.js 1.8 kB
packages/node/dist/host-os.node.mjs 349 B
packages/node/dist/storage-memory.js 1.61 kB
packages/node/dist/storage-memory.mjs 297 B
packages/node/dist/types.js 1.52 kB
packages/node/dist/types.mjs 224 B
packages/node/dist/version.js 1.31 kB
packages/node/dist/version.mjs 46 B
packages/nuxt/dist/module.mjs 5.92 kB
packages/nuxt/dist/runtime/composables/useFeatureFlagEnabled.js 566 B
packages/nuxt/dist/runtime/composables/useFeatureFlagPayload.js 698 B
packages/nuxt/dist/runtime/composables/useFeatureFlagVariantKey.js 591 B
packages/nuxt/dist/runtime/composables/usePostHog.js 128 B
packages/nuxt/dist/runtime/nitro-plugin-v2.js 480 B
packages/nuxt/dist/runtime/nitro-plugin-v3.js 574 B
packages/nuxt/dist/runtime/nitro-plugin.js 1.03 kB
packages/nuxt/dist/runtime/vue-plugin.js 1.13 kB
packages/openfeature-node-provider/dist/index.js 1.86 kB
packages/openfeature-node-provider/dist/index.mjs 122 B
packages/openfeature-node-provider/dist/mapping.js 5.42 kB
packages/openfeature-node-provider/dist/mapping.mjs 3.21 kB
packages/openfeature-node-provider/dist/provider.js 4.09 kB
packages/openfeature-node-provider/dist/provider.mjs 2.6 kB
packages/openfeature-web-provider/dist/index.js 1.84 kB
packages/openfeature-web-provider/dist/index.mjs 119 B
packages/openfeature-web-provider/dist/mapping.js 5.38 kB
packages/openfeature-web-provider/dist/mapping.mjs 3.18 kB
packages/openfeature-web-provider/dist/provider.js 4.51 kB
packages/openfeature-web-provider/dist/provider.mjs 3.06 kB
packages/plugin-utils/dist/chunk-ids.js 3.96 kB
packages/plugin-utils/dist/chunk-ids.mjs 2.11 kB
packages/plugin-utils/dist/cli.js 4.47 kB
packages/plugin-utils/dist/cli.mjs 2.72 kB
packages/plugin-utils/dist/config.js 3.6 kB
packages/plugin-utils/dist/config.mjs 2.25 kB
packages/plugin-utils/dist/index.js 4.5 kB
packages/plugin-utils/dist/index.mjs 197 B
packages/plugin-utils/dist/spawn-local.js 3.17 kB
packages/plugin-utils/dist/spawn-local.mjs 1.66 kB
packages/plugin-utils/dist/utils.js 3.36 kB
packages/plugin-utils/dist/utils.mjs 1.3 kB
packages/react-native/dist/autocapture.js 8.31 kB
packages/react-native/dist/error-tracking/index.js 9.97 kB
packages/react-native/dist/error-tracking/utils.js 2.58 kB
packages/react-native/dist/frameworks/wix-navigation.js 1.3 kB
packages/react-native/dist/hooks/useFeatureFlag.js 1.86 kB
packages/react-native/dist/hooks/useFeatureFlagResult.js 983 B
packages/react-native/dist/hooks/useFeatureFlags.js 941 B
packages/react-native/dist/hooks/useNavigationTracker.js 2.45 kB
packages/react-native/dist/hooks/usePostHog.js 544 B
packages/react-native/dist/hooks/utils.js 988 B
packages/react-native/dist/index.js 4.33 kB
packages/react-native/dist/logs-********.js 3.66 kB
packages/react-native/dist/native-deps.js 8.73 kB
packages/react-native/dist/optional/OptionalAsyncStorage.js 299 B
packages/react-native/dist/optional/OptionalExpoApplication.js 377 B
packages/react-native/dist/optional/OptionalExpoDevice.js 347 B
packages/react-native/dist/optional/OptionalExpoFileSystem.js 386 B
packages/react-native/dist/optional/OptionalExpoFileSystemLegacy.js 423 B
packages/react-native/dist/optional/OptionalExpoLocalization.js 383 B
packages/react-native/dist/optional/OptionalPlugin.js 1.06 kB
packages/react-native/dist/optional/OptionalReactNativeDeviceInfo.js 415 B
packages/react-native/dist/optional/OptionalReactNativeLocalize.js 303 B
packages/react-native/dist/optional/OptionalReactNativeNavigation.js 415 B
packages/react-native/dist/optional/OptionalReactNativeNavigationWix.js 443 B
packages/react-native/dist/optional/OptionalReactNativeSafeArea.js 644 B
packages/react-native/dist/optional/OptionalReactNativeSvg.js 872 B
packages/react-native/dist/posthog-rn.js 67.4 kB
packages/react-native/dist/PostHogContext.js 329 B
packages/react-native/dist/PostHogErrorBoundary.js 3.19 kB
packages/react-native/dist/PostHogMaskView.js 1.68 kB
packages/react-native/dist/PostHogProvider.js 6 kB
packages/react-native/dist/storage.js 5.76 kB
packages/react-native/dist/surveys/components/BottomSection.js 1.51 kB
packages/react-native/dist/surveys/components/Cancel.js 1.1 kB
packages/react-native/dist/surveys/components/ConfirmationMessage.js 1.76 kB
packages/react-native/dist/surveys/components/IntroMessage.js 1.65 kB
packages/react-native/dist/surveys/components/QuestionHeader.js 1.47 kB
packages/react-native/dist/surveys/components/QuestionTypes.js 14 kB
packages/react-native/dist/surveys/components/SurveyModal.js 7.24 kB
packages/react-native/dist/surveys/components/Surveys.js 6.58 kB
packages/react-native/dist/surveys/getActiveMatchingSurveys.js 2.69 kB
packages/react-native/dist/surveys/icons.js 10 kB
packages/react-native/dist/surveys/index.js 600 B
packages/react-native/dist/surveys/PostHogSurveyProvider.js 6.73 kB
packages/react-native/dist/surveys/safeStyleSheet.js 448 B
packages/react-native/dist/surveys/survey-translations.js 1.11 kB
packages/react-native/dist/surveys/surveys-utils.js 11.5 kB
packages/react-native/dist/surveys/useActivatedSurveys.js 3.68 kB
packages/react-native/dist/surveys/useSurveyStorage.js 2.48 kB
packages/react-native/dist/tooling/expoconfig.js 23.8 kB
packages/react-native/dist/tooling/metroconfig.js 2.32 kB
packages/react-native/dist/tooling/posthogMetroSerializer.js 7.74 kB
packages/react-native/dist/tooling/utils.js 4.2 kB
packages/react-native/dist/tooling/vendor/expo/expoconfig.js 70 B
packages/react-native/dist/tooling/vendor/metro/countLines.js 237 B
packages/react-native/dist/tooling/vendor/metro/utils.js 3.51 kB
packages/react-native/dist/types.js 70 B
packages/react-native/dist/utils.js 1.3 kB
packages/react-native/dist/version.js 130 B
packages/react/dist/esm/index.js 22.1 kB
packages/react/dist/esm/slim/index.js 18.5 kB
packages/react/dist/esm/surveys/index.js 3.61 kB
packages/react/dist/umd/index.js 26.4 kB
packages/react/dist/umd/slim/index.js 22.3 kB
packages/react/dist/umd/surveys/index.js 5.63 kB
packages/rollup-plugin/dist/index.js 10.2 kB
packages/rrweb/packer/dist/packer.umd.min.cjs 626 B
packages/types/dist/capture-log.js 585 B
packages/types/dist/capture-log.mjs 12 B
packages/types/dist/capture-metric.js 1.47 kB
packages/types/dist/capture-metric.mjs 93 B
packages/types/dist/capture.js 585 B
packages/types/dist/capture.mjs 12 B
packages/types/dist/common.js 585 B
packages/types/dist/common.mjs 12 B
packages/types/dist/feature-flags.js 585 B
packages/types/dist/feature-flags.mjs 12 B
packages/types/dist/index.js 1.55 kB
packages/types/dist/index.mjs 75 B
packages/types/dist/posthog-config.js 585 B
packages/types/dist/posthog-config.mjs 12 B
packages/types/dist/posthog.js 585 B
packages/types/dist/posthog.mjs 12 B
packages/types/dist/request.js 585 B
packages/types/dist/request.mjs 12 B
packages/types/dist/segment.js 585 B
packages/types/dist/segment.mjs 12 B
packages/types/dist/session-recording.js 585 B
packages/types/dist/session-recording.mjs 12 B
packages/types/dist/survey.js 585 B
packages/types/dist/survey.mjs 12 B
packages/types/dist/toolbar.js 585 B
packages/types/dist/toolbar.mjs 12 B
packages/types/dist/traces.js 585 B
packages/types/dist/traces.mjs 12 B
packages/types/dist/tree-shakeable.js 585 B
packages/types/dist/tree-shakeable.mjs 12 B
packages/web/dist/index.cjs 8.87 kB
packages/web/dist/index.mjs 8.72 kB
packages/webpack-plugin/dist/config.js 2.38 kB
packages/webpack-plugin/dist/config.mjs 1.31 kB
packages/webpack-plugin/dist/index.js 9.29 kB
packages/webpack-plugin/dist/index.mjs 5.51 kB
tooling/changelog/dist/index.js 3.31 kB
tooling/rollup-utils/dist/index.js 1.17 kB

compressed-size-action

@turnipdabeets
turnipdabeets marked this pull request as ready for review September 4, 2026 20:21
@turnipdabeets
turnipdabeets requested a review from a team as a code owner September 4, 2026 20:21
The encoder drops a nullish attribute, so charging one against
maxAttributesPerEvent let a blanked value evict a real one — the rule
_writeAttribute and the span half of applySpanLimits already follow.

Also corrects a comment claiming a hook cannot rewrite the per-event drop
count, and the two ResolvedTracesConfig fixtures that stopped typechecking.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018AAPCyRnC5HbukEZV9hbai
@greptile-apps

greptile-apps Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor
Prompt To Fix All With AI
### Issue 1
packages/core/src/traces/span.ts:734-739
**Nullish attributes consume slots**

When an event reaches `maxAttributesPerEvent`, nullish values consume slots even though the public contract says `null` and `undefined` drop the key. For example, with a limit of 2, `{ a: undefined, b: undefined, c: 1 }` retains only `a` and `b`; encoding then removes both and reports `c` as dropped. Skip nullish entries while selecting retained keys so they cannot evict real attributes or inflate the drop count.

---

For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.

Reviews (1): Last reviewed commit: "feat(traces): cap the attributes on a sp..." | Re-trigger Greptile

Comment thread packages/core/src/traces/span.ts Outdated
turnipdabeets and others added 4 commits September 4, 2026 16:29
rn-flags-disable-and-update-flags belongs to separate RN work; it is
preserved in the stash it came from.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018AAPCyRnC5HbukEZV9hbai
…races-event-attribute-cap

# Conflicts:
#	.changeset/node-span-limits.md
…races-event-attribute-cap

# Conflicts:
#	.changeset/node-distributed-tracing.md
@turnipdabeets
turnipdabeets requested a review from a team September 4, 2026 21:01
The cap is not one of the knobs the traces spec enumerates, so it stays a
fixed 128 instead of a public `maxAttributesPerEvent` option.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HQy8eimnfV3jVQKbzELc65
@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

Replay incident risk check

This diff touches code involved in past incidents. This is a heads-up, not a verdict: read the matched sections of INCIDENTS.md and answer their review questions before merging.

For a judgment on whether this diff has the same failure mode, run the replay-incident-risk skill locally: open a Claude session in the repo root and ask it to review your diff with that skill. Or run node .agents/skills/replay-incident-risk/check.mjs and answer the review questions for each matched class yourself.

Matched 8 past incident pattern(s) (diff vs origin/feat/traces-node-mvp):

## Version skew across the lazy-load boundary [path match]
Lazy-loaded bundles (recorder, surveys, web vitals, tracing headers) are served unversioned from the CDN: this change deploys instantly to every SDK version, including npm-pinned ones. Cross-boundary signature changes and persisted-state shape changes have caused fleet-wide recording loss (Mar 2026), broken surveys (Jul 2025, Oct 2025), and a six-day web-vitals gap (Jan 2026).
  Touched paths:
    - packages/browser/src/entrypoints/array.full.es5.ts
    - packages/browser/src/entrypoints/exception-autocapture.ts
    - packages/browser/src/entrypoints/external-scripts-loader.ts
    - packages/browser/src/entrypoints/tracing-headers.ts
    - packages/browser/src/entrypoints/web-vitals-with-attribution-soft-navs.ts
    - packages/browser/src/entrypoints/web-vitals-with-attribution.ts
    - packages/browser/src/extensions/replay/external/config.ts
    - packages/browser/src/extensions/replay/external/lazy-loaded-session-recorder.ts
    - ...and 2 more
  Read: .agents/skills/replay-incident-risk/INCIDENTS.md#class-1-version-skew-across-the-lazy-load-boundary

## Session rotation, idle handling, and flush semantics [path match]
Changes to rotation, idle state, or flushing change how many recordings ship, and every shipped recording bills. In Jul 2026 an idle-state fix made parked tabs ship an unbounded chain of billed zero-interaction recordings for 11 days before a customer bill surfaced it.
  Touched paths:
    - packages/browser/src/extensions/replay/external/lazy-loaded-session-recorder.ts
  Read: .agents/skills/replay-incident-risk/INCIDENTS.md#class-2-session-rotation-idle-handling-and-flush-semantics

## Network primitive wrappers (fetch and XHR patching) [path match]
The fetch wrappers have caused three incidents, including breaking customer checkouts and uploads (Jan 2026) and Safari POST failures (May 2026). Standing policy: no AI-generated PRs here, and land a failing real-browser (WebKit included) test first, exercising all body types with another fetch wrapper on the page.
  Touched paths:
    - packages/browser/src/entrypoints/tracing-headers.ts
    - packages/browser/src/extensions/replay/external/network-plugin.ts
  Read: .agents/skills/replay-incident-risk/INCIDENTS.md#class-3-network-primitive-wrappers-fetch-and-xhr-patching

## rrweb serialization and snapshot correctness [path match]
Serializer bugs corrupt replays silently: no exception, no volume change. In May 2026 a cssText spec quirk silently dropped layout styles for sites using CSS custom properties. Test against framework-generated CSS (Chakra/Panda, Emotion speedy, Tailwind) in a real browser.
  Touched paths:
    - packages/rrweb/plugins/rrweb-plugin-canvas-webrtc-record/src/simple-peer-light.d.ts
    - packages/rrweb/plugins/rrweb-plugin-console-record/src/error-stack-parser.ts
    - packages/rrweb/rrdom-nodejs/src/document-nodejs.ts
    - packages/rrweb/rrdom-nodejs/src/polyfill.ts
    - packages/rrweb/rrdom-nodejs/test/build-output.test.ts
    - packages/rrweb/rrdom-nodejs/vite.config.js
    - packages/rrweb/rrdom/src/diff.ts
    - packages/rrweb/rrdom/src/document.ts
    - ...and 20 more
  Read: .agents/skills/replay-incident-risk/INCIDENTS.md#class-4-rrweb-serialization-and-snapshot-correctness

## Replay reconstruction and player security [path match]
Recorded page content is untrusted input. Anything the replayer places in the top-level document sits outside the sandbox iframe: copying recorded attributes without an allowlist caused a stored XSS via canvas onerror (Jul 2026). Never copy on* handlers or src/srcset/href you did not construct.
  Touched paths:
    - packages/rrweb/plugins/rrweb-plugin-canvas-webrtc-replay/src/simple-peer-light.d.ts
    - packages/rrweb/replay/test/build-output.test.ts
    - packages/rrweb/replay/vite.config.ts
    - packages/rrweb/rrweb/src/replay/canvas/deserialize-args.ts
    - packages/rrweb/rrweb/src/replay/canvas/webgl.ts
    - packages/rrweb/rrweb/src/replay/index.ts
    - packages/rrweb/rrweb/src/replay/media/index.ts
    - packages/rrweb/rrweb/src/replay/smoothscroll.ts
  Read: .agents/skills/replay-incident-risk/INCIDENTS.md#class-5-replay-reconstruction-and-player-security

## Recording start conditions and remote config semantics [path match]
Changes to when recording may start fail silently in the suppress direction. Endpoint migrations and config-shape changes have silently stopped recording for large fleets (Jun 2025, Aug 2025). When a check cannot be evaluated (stripped header, missing field, proxy dropping query params), decide deliberately whether to fail open or closed.
  Touched paths:
    - packages/browser/src/extensions/replay/external/config.ts
    - packages/browser/src/posthog-featureflags.ts
  Read: .agents/skills/replay-incident-risk/INCIDENTS.md#class-6-recording-start-conditions-and-remote-config-semantics

## Masking, privacy, and consent [path match]
A masking or consent regression records data customers promised their users we would not store: passwords, PII, opted-out sessions. Nothing throws and no volume moves, so no alert can fire, and recorded data cannot be un-stored. Add a real-browser test asserting the sensitive value is absent from the emitted snapshot bytes.
  Touched paths:
    - packages/rrweb/rrweb-snapshot/package.json
    - packages/rrweb/rrweb-snapshot/src/rebuild.ts
    - packages/rrweb/rrweb-snapshot/src/snapshot.ts
    - packages/rrweb/rrweb-snapshot/src/utils.ts
    - packages/rrweb/rrweb-snapshot/test/build-output.test.ts
    - packages/rrweb/rrweb-snapshot/test/utils.test.ts
    - packages/rrweb/rrweb-snapshot/vite.config.js
  Read: .agents/skills/replay-incident-risk/INCIDENTS.md#class-8-masking-privacy-and-consent-proactive-no-incident-yet

## Capture transport and retry behavior [path match]
This code runs on every customer page. Retries without backoff and jitter become a coordinated fleet-wide flood against capture during any ingestion blip; queue bugs become silent event loss or duplicates. Walk a page through a 30-minute capture outage and count the requests.
  Touched paths:
    - packages/browser/src/request.ts
  Read: .agents/skills/replay-incident-risk/INCIDENTS.md#class-9-capture-transport-and-retry-behavior-proactive-no-incident-yet

This check is advisory. It flags resemblance to past incidents, not correctness.
For a judgment pass on whether this diff has the same failure mode, run the
`replay-incident-risk` skill in a Claude session from the repo root, or answer the
review questions in the matched sections of .agents/skills/replay-incident-risk/INCIDENTS.md yourself.

@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

posthog-node Compliance Report

Date: 2026-09-04 21:55:04 UTC
Duration: 198203ms

✅ All Tests Passed!

111/111 tests passed


Capture_V1 Tests

94/94 tests passed

View Details
Test Status Duration
Endpoint And Method.Targets V1 Endpoint 107ms
Endpoint And Method.Does Not Use Legacy Endpoints 14ms
Required Headers.Has Authorization Bearer Header 11ms
Required Headers.Has Content Type Json 12ms
Required Headers.Has Posthog Sdk Info Format 10ms
Required Headers.Has Posthog Attempt Header 11ms
Required Headers.Has Posthog Request Id 10ms
Required Headers.Has Posthog Request Timestamp 9ms
Required Headers.Has User Agent 10ms
Body Format.Body Has Created At And Batch 10ms
Body Format.No Api Key In Body 8ms
Body Format.No Sent At In Body 7ms
Event Format.Event Has Required Root Fields 8ms
Event Format.Event Uuid Is Valid 7ms
Event Format.Event Timestamp Is Rfc3339 7ms
Event Format.Distinct Id Is String 7ms
Event Format.Distinct Id At Root Not Properties 7ms
Event Format.Custom Properties Preserved 9ms
Event Format.Set Properties Preserved 7ms
Event Format.Set Once Properties Preserved 7ms
Event Format.Groups Properties Preserved 8ms
Event Format.Sdk Generates Uuid If Not Provided 8ms
Event Format.Event Has Required Root Fields Batch 11ms
Event Format.Event Uuid Is Valid Batch 10ms
Event Format.Event Timestamp Is Rfc3339 Batch 10ms
Event Format.Distinct Id Is String Batch 10ms
Event Format.Distinct Id At Root Not Properties Batch 11ms
Event Format.Custom Properties Preserved Batch 11ms
Event Format.Set Properties Preserved Batch 10ms
Event Format.Set Once Properties Preserved Batch 10ms
Event Format.Groups Properties Preserved Batch 11ms
Event Format.Sdk Generates Uuid If Not Provided Batch 9ms
Batch Behavior.Multiple Events In Single Batch 14ms
Batch Behavior.Batch Envelope Smoke 11ms
Batch Behavior.Flush With No Events Sends Nothing 3ms
Batch Behavior.Flush At Triggers Batch 1008ms
Batch Behavior.Created At Reflects Batch Creation Time 9ms
Deduplication.Generates Unique Uuids 17ms
Deduplication.Different Events Same Content Different Uuids 8ms
Deduplication.Preserves Uuid On Retry 6020ms
Deduplication.Preserves Timestamp On Retry 6020ms
Deduplication.Preserves Uuid And Timestamp On Batch Retry 6022ms
Deduplication.No Duplicate Events In Batch 16ms
Header Behavior On Retry.Attempt Header Starts At One 8ms
Header Behavior On Retry.Attempt Header Increments On Retry 12025ms
Header Behavior On Retry.Request Id Preserved On Retry 6018ms
Header Behavior On Retry.Different Requests Have Different Request Ids 2018ms
Header Behavior On Retry.Request Timestamp Changes On Retry 6019ms
Response Format Validation.Success Response Has Uuid Keyed Results 10ms
Response Format Validation.Success Response Has Ok For Each Event 11ms
Response Format Validation.Success No Retry After When All Ok 10ms
Response Format Validation.Success Retry After Present When Retry Events 1019ms
Response Format Validation.Success No Retry After When Drop Only 11ms
Response Format Validation.Response Echoes Request Id 7ms
Retry Behavior.Retries On 408 6016ms
Retry Behavior.Retries On 500 6019ms
Retry Behavior.Retries On 503 7023ms
Retry Behavior.Retries On 504 6019ms
Retry Behavior.Retryable Errors Have Retry After 3015ms
Retry Behavior.Respects Retry After On Retryable Error 11021ms
Retry Behavior.Does Not Retry On 400 2012ms
Retry Behavior.Does Not Retry On 401 2012ms
Retry Behavior.Does Not Retry On 402 2012ms
Retry Behavior.Does Not Retry On 413 2011ms
Retry Behavior.Does Not Retry On 415 2010ms
Retry Behavior.Non Retryable Errors Have No Retry After 2011ms
Retry Behavior.Implements Backoff 18039ms
Retry Behavior.Max Retries Respected 18022ms
Partial Batch Handling.Handles 200 Full Success 2012ms
Partial Batch Handling.Handles 200 With All Ok 3018ms
Partial Batch Handling.Does Not Retry Dropped Events 3014ms
Partial Batch Handling.Does Not Retry Limited Events 3014ms
Partial Batch Handling.Prunes Ok Events On Partial Retry 6021ms
Partial Batch Handling.Prunes Dropped Events On Partial Retry 6021ms
Partial Batch Handling.Retries Only Retry Events From Partial 6023ms
Partial Batch Handling.Partial Retry Preserves Uuids 6022ms
Partial Batch Handling.Partial Retry Attempt Header Increments 6017ms
Partial Batch Handling.Partial Retry Request Id Preserved 6021ms
Partial Batch Handling.Respects Retry After On Partial 8021ms
Partial Batch Handling.Unknown Result Treated As Terminal 3014ms
Partial Batch Handling.Mixed Ok Drop Limited No Retry 3015ms
Compression.Sends Gzip Content Encoding 9ms
Compression.No Content Encoding When Disabled 7ms
Compression.Compressed Body Is Decompressible 8ms
Error Handling.Does Not Retry On Unknown 4Xx 2010ms
Event Options.Cookieless Mode Override 10ms
Event Options.Disable Skew Correction Override 7ms
Event Options.Process Person Profile Override 8ms
Event Options.Product Tour Id Override 8ms
Event Options.Unset Options Omitted 7ms
Event Options.Options Override In Batch 9ms
Geoip And Historical Migration.Geoip Disable Injected Into Properties 7ms
Geoip And Historical Migration.Historical Migration Set In Body 7ms
Geoip And Historical Migration.Historical Migration Absent By Default 7ms

Feature_Flags Tests

17/17 tests passed

View Details
Test Status Duration
Request Payload.Request With Person Properties Device Id 12ms
Request Payload.Flags Request Uses V2 Query Param 10ms
Request Payload.Flags Request Hits Flags Path Not Decide 9ms
Request Payload.Flags Request Omits Authorization Header 9ms
Request Payload.Token In Flags Body Matches Init 10ms
Request Payload.Groups Round Trip 9ms
Request Payload.Groups Default To Empty Object 10ms
Request Payload.Disable Geoip False Propagates As Geoip Disable False 9ms
Request Payload.Disable Geoip Omitted Defaults To False 9ms
Request Payload.Flag Keys To Evaluate Contains Only Requested Key 10ms
Request Lifecycle.No Flags Request On Init Alone 3ms
Request Lifecycle.No Flags Request On Normal Capture 7ms
Request Lifecycle.Two Flag Calls Produce Two Remote Requests 11ms
Request Lifecycle.Mock Response Value Is Returned To Caller 9ms
Retry Behavior.Retries Flags On 502 264ms
Retry Behavior.Retries Flags On 504 261ms
Side Effect Events.Get Feature Flag Captures Feature Flag Called Event 11ms

@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

posthog-js Compliance Report

Date: 2026-09-04 22:01:40 UTC
Duration: 88714ms

✅ All Tests Passed!

26/26 tests passed


Capture Tests

26/26 tests passed

View Details
Test Status Duration
Format Validation.Event Has Required Fields Client 99ms
Format Validation.Event Has Uuid 17ms
Format Validation.Event Has Lib Properties 13ms
Format Validation.Distinct Id Is String Client 14ms
Format Validation.Token Is Present Client 13ms
Format Validation.Custom Properties Preserved 14ms
Format Validation.Event Has Timestamp 13ms
Retry Behavior.Retries On 503 5016ms
Retry Behavior.Does Not Retry On 400 2017ms
Retry Behavior.Does Not Retry On 401 2016ms
Retry Behavior.Respects Retry After Header 5019ms
Retry Behavior.Implements Backoff 15025ms
Retry Behavior.Retries On 500 5016ms
Retry Behavior.Retries On 502 5013ms
Retry Behavior.Retries On 504 5019ms
Retry Behavior.Max Retries Respected 15024ms
Deduplication.Generates Unique Uuids 23ms
Deduplication.Preserves Uuid On Retry 5015ms
Deduplication.Preserves Uuid And Timestamp On Retry 10022ms
Deduplication.Preserves Uuid And Timestamp On Batch Retry 5020ms
Deduplication.No Duplicate Events In Batch 20ms
Deduplication.Different Events Have Different Uuids 13ms
Batch Format.Flush With No Events Sends Nothing 5ms
Error Handling.Does Not Retry On 403 2013ms
Error Handling.Does Not Retry On 413 2012ms
Error Handling.Retries On 408 5013ms

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants