Skip to content

feat(node): read the /flags?v=4 response - #5538

Draft
andehen wants to merge 7 commits into
mainfrom
andehen/node-flags-v4-parse
Draft

andehen wants to merge 7 commits into
mainfrom
andehen/node-flags-v4-parse

Conversation

@andehen

@andehen andehen commented Nov 4, 2026 •

Copy link
Copy Markdown
Contributor

💡 Motivation and Context

The flags service can answer with a typed flag record (PostHog/posthog#107732), selected by /flags?v=4 (PostHog/posthog#123366). A v4 record carries one typed value (boolean, string, number, object or null) instead of enabled and variant, plus a structured reason and rule metadata.

This PR moves posthog-node (and posthog-edge, which shares its client) to that response and keeps the parsed record for each flag, while every existing getter and event returns the same values as before for valid flag records. It adds no public methods, options, types or exports, and does not change event emission. The browser, React Native and lightweight web SDKs keep requesting v=2. It ports the behaviour of PostHog/posthog-python#1031, which shipped in posthog 7.83.0.

The reader follows the wire contract in posthog-sdk-test-harness 1.29.0 (contracts/feature_flag_rules_v2, contract 9.0.0):

  1. posthog-node requests /flags/?v=4. A record with value is a v4 record. A record without it comes from a server that does not serve v4: its value is variant, or enabled when there is no variant, its config version is 1, and any rule context in it is ignored. There is no probing and no retry with v=2: the flags service answers a v it does not serve with the older record rather than an error, so a fallback request would only repeat requests that failed for other reasons. Each client logs one diagnostic (at info level, so only with debug) the first time a response has a record without a typed value.
  2. Unknown fields are ignored. A known field with the wrong JSON type makes that record unreadable, in either record shape; the other flags in the response are unaffected. A key member of the wrong type is such a field; a string key that differs from the map key is ignored, and the map key stays the flag key. An unreadable record reads as a disabled flag without reason or metadata. posthog-node has no cache of remote results, so there is no cached value to fall back to. A single-flag getter (getFeatureFlag, isFeatureEnabled, getFeatureFlagResult) reports what 5.61.2 reports when the /flags request fails: $feature_flag_error: "unknown_error", with no request ID or evaluated-at.
  3. The legacy rendering is derived from value in one place, when the record is read: a boolean as is, a string as the variant, null as false, and a number or object as true with the value as its payload. v4 sends metadata.payload: null for number and object values, so the SDK supplies the payload from the value, and ignores a payload a record sends with a number or object value. Payloads for boolean, string and null values are kept as sent. A failed record reads as disabled, so its payload is null, even when it carries metadata.payload. getFeatureFlag, isFeatureEnabled, getFeatureFlagPayload, getFeatureFlagResult, getAllFlags(AndPayloads), the evaluateFlags() snapshot getters, $feature/<key>, $active_feature_flags and $feature_flag_called return the same values from both responses.
  4. Each remotely evaluated flag in an evaluateFlags() snapshot keeps its parsed record internally (typed value, failure state, reason, and metadata such as config version, rule type, rule ID and variant key), for the typed accessors and exposure events that follow.

Notes for reviewers

The seam. PostHogCoreStateless gets two protected methods: getFlagsResponseVersion(), which sets the v query parameter and returns 2, and readFlagsResponse(body), which returns normalizeFlagsResponse(body), exactly what getFlags did before. PostHogBackendClient (posthog-node and posthog-edge) overrides both. Neither is a user option. The shared reader, normalizeFlagsResponse, is unchanged: posthog-node first reads each record into its legacy rendering (src/flags-response.ts) and then hands the body to the shared reader, so the legacy maps come from the same code as before.

Why other SDKs are untouched. The React Native and lightweight web SDKs extend PostHogCore and override neither method, so they keep sending v=2 and reading with the shared reader. posthog-js and @posthog/browser do not use core's getFlags at all; they request and read /flags in @posthog/browser-common, which this PR does not change. New core tests pin the v=2 URL (with and without config=true) and that a v1, v2 or v4-shaped body reads exactly as normalizeFlagsResponse reads it, and the existing React Native and web tests that assert /flags/?v=2 still pass.

Where the parsed record lives. FeatureFlagDetail, PostHogFeatureFlagsResponse and the other public types are unchanged. The parsed record of each legacy rendering is kept in a module-level WeakMap keyed by that detail object, and the snapshot stores it on the internal EvaluatedFlagRecord (parsed). A record that is not read by the v4 reader, such as one from a v1 response, reads as a config version 1 record.

Compatibility differences, beyond the reason text below:

  • A record with a known field of the wrong JSON type, such as a string reason, an empty-string reason or a non-boolean has_experiment, now reads as described in point 2. 5.61.2 read such a record anyway (a string reason read as no reason), and a record that is not an object (null) failed the whole response. For the unreadable flag itself, a single-flag getter now returns false instead of the value 5.61.2 read, and a snapshot read sends its event as for a disabled flag, without flag_missing. Its sibling flags read as before.
  • For flags in the new format, the server writes different reasons at v4 than at v2: reason.description ("Matched rule 2" instead of "Matched condition set 2") and reason.code (no_rule_match instead of no_condition_match). FeatureFlagResult.reason, FeatureFlagResult.reasonCode and $feature_flag_reason show the v4 text once a server sends v4. Values do not change, and v1 flags are identical in every field.
  • The payload supplied for a number or object value is compact JSON in wire key order (JSON.stringify). Getters return decoded payloads, which are the same values as at v=2; posthog-node does not expose payload text.
  • The v1 (HTTP) compliance adapter declares flags_response_v4. The v2 compliance adapter now declares it too, when the installed client requests /flags?v=4 (read from the client's own request version, not hardcoded). With harness 1.29.0, the shared migration scenario "Remote flag requests use the v2 query parameter" (remote-flags-v1.feature) is not selected for SDKs that declare flags_response_v4 (test(flags): check the v4 /flags query parameter for SDKs that request it sdk-specs#173, feat(v2): skip a Gherkin case when the adapter declares a capability it excludes posthog-sdk-test-harness#102), and its v4 counterpart runs and passes.
  • The v2 compliance adapter also gets /get_feature_flag_payload, which takes the /get_feature_flag arguments and calls getFeatureFlagPayload(key, distinctId, undefined, options), and declares feature_flag_payloads. With flags_response_v4, that selects the Gherkin form of the harness's /flags?v=4 read suite, test(flags): read /flags?v=4 records through the legacy flag and payload getters sdk-specs#174 and feat(v2): run the /flags?v=4 read cases in the Gherkin runner posthog-sdk-test-harness#103: 150 scenarios that serve each reader fixture and value corpus case of the contract and check the legacy getter (75) and payload getter (75) results. The 75th payload case, readers.v1_failed, expects no payload for a failed record. This workflow's HARNESS_IMAGE is harness 1.29.0, which includes them.
  • Local evaluation (/flags/definitions) is untouched.

Changesets: posthog-node minor, @posthog/core patch.

💚 How did you test it?

  • src/__tests__/released-flags.spec.ts compares this SDK with results recorded by posthog-node 5.61.2. released-flags-scenarios.ts uses only the public client API, so the same scenarios ran on 5.61.2 from npm (which recorded fixtures/released-flags-5.61.2.json; the module says how to regenerate it) and run here from both the v2 and the v4 response. They cover every legacy getter, the snapshot getters, capture({ flags }), capture({ sendFeatureFlags: true }), every $feature_flag_called event, a failed flag, and a response with an unreadable record. The only expected difference is the unreadable record, which reads as 5.61.2 read a disabled flag without reason or metadata, plus the unknown_error of its single-flag reads.
  • src/__tests__/flags-v4-response.spec.ts (192 tests), built on fixtures copied unchanged from harness release 1.29.0 (contract 9.0.0). fixtures/feature_flag_rules_v2/SOURCE.json records the release, revision and file digests, and a test checks them. It covers:
    • every valid producer response, retained field by field;
    • the reader corpus (readers.json), projected from the parsed record onto each case's expected value, config version, exposure eligibility and error; for cases with a legacy_payload, getFeatureFlagPayload and the snapshot's getFlagPayload return that payload;
    • older-server records and v1 responses, and the diagnostic logged once per client;
    • wrongly typed known fields in both record shapes, records that are not objects, a value nested too deeply to encode, sibling isolation and unknown fields; failed records never render their value or a payload;
    • absent flag IDs and versions, and number or object values sent with a conflicting payload;
    • legacy parity: the v1 legacy projection corpus and the typed value corpus render the same legacy values from a v2-shaped and a v4-shaped record.
  • The existing posthog-node suite is unchanged apart from the request URL (v=2 to v=4). Its mocks send v1 and v2 responses, so every existing flag test now runs through the older-record path.
  • Full suites after merging main: posthog-node (1,783 tests) and core (2,362), with lint and check-types for node. Before the merge, also browser, browser-common, React Native and web, pnpm format, pnpm lint:oxlint, and check-types for core, React Native and web.
  • Ran this build and posthog-node 5.55.0 end to end against a local PostHog stack serving the v4 response, with v1 and config version 2 flags of every value type, and compared their legacy results and stored $feature_flag_called events. They were identical for every v1 flag. For config version 2 flags the only difference was the reason text of getFeatureFlagResult() (reason and reasonCode), as described above. The same scenarios on posthog-python with the same change gave the same results apart from representation (payload text, null against absent).
  • Ran the v2 compliance suite locally in both capture modes with compliance/node/v2/run-compliance.sh and the released harness 1.29.0 image, as the workflow runs it. Capture v0: 233 passed, 4 failed, 1,196 not selected. Capture v1: 298 passed, 4 failed, 1,131 not selected. In both modes all 150 /flags?v=4 read scenarios pass, the v4 query scenario passes, and the v2 query scenario is not selected. The four failures also fail on main: the three snapshot payload cases (server_snapshot_payload_false, _zero, _null) and "Omitted GeoIP settings default to enabled in flag requests". The read results agree with flags-v4-response.spec.ts, which reads the same fixtures.
  • Ran the v1 compliance suite locally against harness 1.27.0: capture v0 52/52 passed, including flags_request_uses_v4_query_param; capture v1 115/117, where the two failures (retry_behavior.retries_on_404 and retries_on_429) fail the same way on a build from before this change.

📝 Checklist

  • I reviewed the submitted code.
  • I added tests to verify the changes.
  • I updated the docs if needed.
  • No breaking change or entry added to the changelog.

If releasing new changes

  • Ran pnpm changeset to generate a changeset file

🤖 Generated with Claude Code

Add two protected hooks to PostHogCoreStateless: getFlagsResponseVersion(),
which sets the `v` query parameter and returns 2, and readFlagsResponse(),
which reads the body with the shared normalizeFlagsResponse as before.
Clients that override neither, including the React Native and web SDKs,
keep requesting v=2 and reading it exactly as before; tests pin both.
posthog-node and posthog-edge now request /flags/?v=4 and read each flag's
typed value, reason and rule metadata. The legacy rendering every existing
getter and event reads is derived from `value` in one place: a boolean as
is, a string as the variant, null as false, and a number or object as true
with the value as its payload. A record without `value` is an older-server
record, read as before with config version 1; each client logs that once.

A known field with the wrong JSON type makes only that record unreadable.
It reads as a disabled flag, and a single-flag read of it reports what a
failed /flags request reports: unknown_error and no request details.

The parsed record is kept internally for the typed flag API: beside each
legacy detail, and on each remotely evaluated flag of an evaluateFlags()
snapshot. No public API, type or option is added.

Tests vendor the reader, response, legacy projection and value corpora from
posthog-sdk-test-harness 1.27.0 with a digest check, and pin every legacy
getter and event to results recorded with posthog-node 5.61.2, from both
response shapes. The compliance adapter declares flags_response_v4.

@posthog posthog Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PostHog Review · Standard · reviewed 9f090d4: no findings. This pull request is large, so the review ran in 4 parts with less depth than usual.

@github-actions

github-actions Bot commented Nov 4, 2026 •

Copy link
Copy Markdown
Contributor

Coherence

📄 0 spec file errors · ⛔ 0 broken rules · 🚪 2 unchecked inputs · 🐛 0 bugs that came back

What is Coherence?

Coherence compares the code with its spec files (*.spec.md). A spec file lists the rules for one part of the code.

This check read 44 parts of the code and 7 rules.

Note

These findings do not make this check fail.

None of these findings are in files that this pull request changes. You do not need to fix them in this pull request.

🚪 Unchecked inputs (2)

  • public api in packages/web/Web.spec.md. The input comes from: host-app.
  • webpack plugin in packages/webpack-plugin/Webpack-plugin.spec.md. The input comes from: build.
What this means and how to fix it

Input from outside this code comes in at these places. The spec does not say what checks that input. 10 more places were already like this when Coherence was added. This list does not show them.

To close one of these, find the place by its name in the ## entrances section of its spec file. Add one line under it:

  • If all of the input goes through one function that a rule in the spec protects, add guard: <function>.
  • If a rule in the spec already checks input from the same source, add the place's name to the entrances: line of that rule.
  • If the input needs no check, add control: none - <reason>.

To get the line to add, run npx --no -- coherence scaffold control "<name>".

@github-actions

github-actions Bot commented Nov 4, 2026 •

Copy link
Copy Markdown
Contributor

@github-actions

github-actions Bot commented Nov 4, 2026 •

Copy link
Copy Markdown
Contributor

Node SDK acceptance v2

Commit: ec7a277
Workflow run and artifacts

Capture v0

✅ 233 passed / ❌ 4 non-passing / ⚠️ 1196 not selected

Drill-down: run artifacts → node-v2-v0 → acceptance/report.json.diagnostics.json (match case_id below).

❌ server_snapshot_payload_false — failed_assertion

Expected native data result

Code: snapshot_result

Failed step: acceptance/public/evaluate-flags.feature:868

the public snapshot outcomes should have these semantics:
❌ server_snapshot_payload_zero — failed_assertion

Expected native data result

Code: snapshot_result

Failed step: acceptance/public/evaluate-flags.feature:868

the public snapshot outcomes should have these semantics:
❌ server_snapshot_payload_null — failed_assertion

Expected native data result

Code: snapshot_result

Failed step: acceptance/public/evaluate-flags.feature:868

the public snapshot outcomes should have these semantics:
❌ migration/yaml-parity-v1/remote-flags-v1.feature::Omitted GeoIP settings default to enabled in flag requests — failed_assertion

Flags field differs

Code: flag_request_field

Failed step: migration/yaml-parity-v1/remote-flags-v1.feature:135

the first flags request field "geoip_disable" should equal JSON false

Operation: /flags/

Field: geoip_disable

Expected:

false

Actual value:

true

Harness exit: 1; report validation exit: 1.

Capture v1

✅ 298 passed / ❌ 4 non-passing / ⚠️ 1131 not selected

Drill-down: run artifacts → node-v2-v1 → acceptance/report.json.diagnostics.json (match case_id below).

❌ server_snapshot_payload_false — failed_assertion

Expected native data result

Code: snapshot_result

Failed step: acceptance/public/evaluate-flags.feature:868

the public snapshot outcomes should have these semantics:
❌ server_snapshot_payload_zero — failed_assertion

Expected native data result

Code: snapshot_result

Failed step: acceptance/public/evaluate-flags.feature:868

the public snapshot outcomes should have these semantics:
❌ server_snapshot_payload_null — failed_assertion

Expected native data result

Code: snapshot_result

Failed step: acceptance/public/evaluate-flags.feature:868

the public snapshot outcomes should have these semantics:
❌ migration/yaml-parity-v1/remote-flags-v1.feature::Omitted GeoIP settings default to enabled in flag requests — failed_assertion

Flags field differs

Code: flag_request_field

Failed step: migration/yaml-parity-v1/remote-flags-v1.feature:135

the first flags request field "geoip_disable" should equal JSON false

Operation: /flags/

Field: geoip_disable

Expected:

false

Actual value:

true

Harness exit: 1; report validation exit: 1.

@github-actions

github-actions Bot commented Nov 4, 2026 •

Copy link
Copy Markdown
Contributor

Size Change: -3.67 kB (-0.01%)

Total Size: 26.5 MB

📦 View Changed
Filename Size Change
packages/browser/dist/array.full.es5.js 585 kB -1.95 kB (-0.33%)
packages/browser/dist/array.full.js 724 kB -894 B (-0.12%)
packages/browser/dist/array.full.no-external.js 791 kB -1.88 kB (-0.24%)
packages/browser/dist/array.js 374 kB -893 B (-0.24%)
packages/browser/dist/array.no-external.js 421 kB -1.88 kB (-0.44%)
packages/browser/dist/default-extensions.js 371 kB -894 B (-0.24%)
packages/browser/dist/main.js 379 kB -894 B (-0.24%)
packages/browser/dist/module.full.cjs 728 kB -894 B (-0.12%)
packages/browser/dist/module.full.js 728 kB -894 B (-0.12%)
packages/browser/dist/module.full.no-external.cjs 795 kB -1.88 kB (-0.24%)
packages/browser/dist/module.full.no-external.js 795 kB -1.88 kB (-0.24%)
packages/browser/dist/module.js 378 kB -893 B (-0.24%)
packages/browser/dist/module.mjs 378 kB -893 B (-0.24%)
packages/browser/dist/module.no-external.cjs 425 kB -1.88 kB (-0.44%)
packages/browser/dist/module.no-external.js 425 kB -1.88 kB (-0.44%)
packages/browser/dist/module.slim.js 158 kB -879 B (-0.55%)
packages/browser/dist/module.slim.no-external.js 172 kB -1.86 kB (-1.07%)
packages/core/dist/posthog-core-stateless.js 49.4 kB +169 B (+0.34%)
packages/core/dist/posthog-core-stateless.mjs 46 kB +169 B (+0.37%)
packages/node/dist/client.js 68.3 kB +1.11 kB (+1.65%)
packages/node/dist/client.mjs 64.3 kB +947 B (+1.5%)
packages/node/dist/flags-response.js 9.77 kB +9.77 kB (new file) 🆕
packages/node/dist/flags-response.mjs 7.28 kB +7.28 kB (new file) 🆕
ℹ️ View Unchanged
Filename Size
packages/ai/dist/adk/index.cjs 41.9 kB
packages/ai/dist/adk/index.mjs 41.6 kB
packages/ai/dist/anthropic/index.cjs 47.8 kB
packages/ai/dist/anthropic/index.mjs 46.3 kB
packages/ai/dist/claude-agent-sdk/index.cjs 50.3 kB
packages/ai/dist/claude-agent-sdk/index.mjs 49.9 kB
packages/ai/dist/evaluations/index.cjs 59.1 kB
packages/ai/dist/evaluations/index.mjs 58.7 kB
packages/ai/dist/gemini/index.cjs 60.8 kB
packages/ai/dist/gemini/index.mjs 60.5 kB
packages/ai/dist/genkit/index.cjs 36.3 kB
packages/ai/dist/genkit/index.mjs 36.1 kB
packages/ai/dist/index.cjs 66.5 kB
packages/ai/dist/index.mjs 66.2 kB
packages/ai/dist/langchain/index.cjs 43.1 kB
packages/ai/dist/langchain/index.mjs 42.9 kB
packages/ai/dist/langchain/middleware/index.cjs 49.6 kB
packages/ai/dist/langchain/middleware/index.mjs 49.2 kB
packages/ai/dist/openai-agents/index.cjs 34.9 kB
packages/ai/dist/openai-agents/index.mjs 34.7 kB
packages/ai/dist/openai/index.cjs 92.3 kB
packages/ai/dist/openai/index.mjs 91.7 kB
packages/ai/dist/otel/index.browser.cjs 38.1 kB
packages/ai/dist/otel/index.browser.mjs 37.7 kB
packages/ai/dist/otel/index.cjs 38.2 kB
packages/ai/dist/otel/index.mjs 37.8 kB
packages/ai/dist/vercel/index.cjs 48.4 kB
packages/ai/dist/vercel/index.mjs 48.2 kB
packages/browser-common/dist/autocapture-config.js 585 B
packages/browser-common/dist/autocapture-config.mjs 12 B
packages/browser-common/dist/autocapture.js 29.9 kB
packages/browser-common/dist/autocapture.mjs 23.9 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 217 B
packages/browser-common/dist/console-logs.js 13 kB
packages/browser-common/dist/console-logs.mjs 11.3 kB
packages/browser-common/dist/constants.js 6.37 kB
packages/browser-common/dist/constants.mjs 1.94 kB
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-tokens.js 1.44 kB
packages/browser-common/dist/extension-tokens.mjs 98 B
packages/browser-common/dist/extension.js 585 B
packages/browser-common/dist/extension.mjs 12 B
packages/browser-common/dist/feature-flags-config.js 585 B
packages/browser-common/dist/feature-flags-config.mjs 12 B
packages/browser-common/dist/feature-flags.js 64.7 kB
packages/browser-common/dist/feature-flags.mjs 58.4 kB
packages/browser-common/dist/index.js 5.87 kB
packages/browser-common/dist/index.mjs 447 B
packages/browser-common/dist/logs-config.js 3.35 kB
packages/browser-common/dist/logs-config.mjs 1.99 kB
packages/browser-common/dist/logs-types.js 1.46 kB
packages/browser-common/dist/logs-types.mjs 133 B
packages/browser-common/dist/logs.js 20 kB
packages/browser-common/dist/logs.mjs 18.1 kB
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/rageclick.js 2.51 kB
packages/browser-common/dist/rageclick.mjs 1.21 kB
packages/browser-common/dist/survey-action-matcher.js 7.81 kB
packages/browser-common/dist/survey-action-matcher.mjs 5.96 kB
packages/browser-common/dist/survey-constants.js 4.61 kB
packages/browser-common/dist/survey-constants.mjs 2.17 kB
packages/browser-common/dist/survey-event-host.js 585 B
packages/browser-common/dist/survey-event-host.mjs 12 B
packages/browser-common/dist/survey-event-receiver-base.js 15.2 kB
packages/browser-common/dist/survey-event-receiver-base.mjs 13.5 kB
packages/browser-common/dist/survey-event-receiver.js 5.84 kB
packages/browser-common/dist/survey-event-receiver.mjs 3.7 kB
packages/browser-common/dist/survey-render-context.js 1.59 kB
packages/browser-common/dist/survey-render-context.mjs 285 B
packages/browser-common/dist/surveys-config.js 2.82 kB
packages/browser-common/dist/surveys-config.mjs 619 B
packages/browser-common/dist/surveys-renderer.js 71.1 kB
packages/browser-common/dist/surveys-renderer.mjs 60.7 kB
packages/browser-common/dist/surveys.js 28 kB
packages/browser-common/dist/surveys.mjs 23 kB
packages/browser-common/dist/surveys/components/BottomSection.js 3.4 kB
packages/browser-common/dist/surveys/components/BottomSection.mjs 1.74 kB
packages/browser-common/dist/surveys/components/ConfirmationMessage.js 4 kB
packages/browser-common/dist/surveys/components/ConfirmationMessage.mjs 2.09 kB
packages/browser-common/dist/surveys/components/IntroScreen.js 3.48 kB
packages/browser-common/dist/surveys/components/IntroScreen.mjs 1.68 kB
packages/browser-common/dist/surveys/components/PostHogLogo.js 2 kB
packages/browser-common/dist/surveys/components/PostHogLogo.mjs 614 B
packages/browser-common/dist/surveys/components/QuestionHeader.js 3.48 kB
packages/browser-common/dist/surveys/components/QuestionHeader.mjs 1.64 kB
packages/browser-common/dist/surveys/components/QuestionTypes.js 25.9 kB
packages/browser-common/dist/surveys/components/QuestionTypes.mjs 21 kB
packages/browser-common/dist/surveys/icons.js 15.5 kB
packages/browser-common/dist/surveys/icons.mjs 12.3 kB
packages/browser-common/dist/surveys/survey-branching.js 5.99 kB
packages/browser-common/dist/surveys/survey-branching.mjs 3.9 kB
packages/browser-common/dist/surveys/survey-html-sanitizer.js 5.18 kB
packages/browser-common/dist/surveys/survey-html-sanitizer.mjs 3.47 kB
packages/browser-common/dist/surveys/survey-styles.js 14.7 kB
packages/browser-common/dist/surveys/survey-styles.mjs 13.4 kB
packages/browser-common/dist/surveys/survey-translations.js 2.69 kB
packages/browser-common/dist/surveys/survey-translations.mjs 1.08 kB
packages/browser-common/dist/surveys/survey-url-prefill.js 7.99 kB
packages/browser-common/dist/surveys/survey-url-prefill.mjs 5.62 kB
packages/browser-common/dist/surveys/surveys-extension-utils.js 34.6 kB
packages/browser-common/dist/surveys/surveys-extension-utils.mjs 26.1 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/feature-flags.js 585 B
packages/browser-common/dist/types/feature-flags.mjs 12 B
packages/browser-common/dist/types/index.js 4.16 kB
packages/browser-common/dist/types/index.mjs 181 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 585 B
packages/browser-common/dist/types/surveys.mjs 12 B
packages/browser-common/dist/utils/array-at-polyfill.js 619 B
packages/browser-common/dist/utils/array-at-polyfill.mjs 437 B
packages/browser-common/dist/utils/array-find-last-polyfill.js 604 B
packages/browser-common/dist/utils/array-find-last-polyfill.mjs 422 B
packages/browser-common/dist/utils/autocapture-utils.js 26.5 kB
packages/browser-common/dist/utils/autocapture-utils.mjs 20.4 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/console-original.js 1.49 kB
packages/browser-common/dist/utils/console-original.mjs 171 B
packages/browser-common/dist/utils/convert-to-url.js 1.62 kB
packages/browser-common/dist/utils/convert-to-url.mjs 298 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 16.1 kB
packages/browser-common/dist/utils/event-utils.mjs 10.2 kB
packages/browser-common/dist/utils/general-utils.js 7.83 kB
packages/browser-common/dist/utils/general-utils.mjs 4.77 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.46 kB
packages/browser-common/dist/utils/logger.mjs 1.67 kB
packages/browser-common/dist/utils/matcher-utils.js 2.78 kB
packages/browser-common/dist/utils/matcher-utils.mjs 1.3 kB
packages/browser-common/dist/utils/patch.js 2.94 kB
packages/browser-common/dist/utils/patch.mjs 1.62 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-reachability.js 2.55 kB
packages/browser-common/dist/utils/request-reachability.mjs 996 B
packages/browser-common/dist/utils/request-utils.js 6.5 kB
packages/browser-common/dist/utils/request-utils.mjs 3.68 kB
packages/browser-common/dist/utils/sanitize-url.js 1.76 kB
packages/browser-common/dist/utils/sanitize-url.mjs 475 B
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/survey-utils.js 5.74 kB
packages/browser-common/dist/utils/survey-utils.mjs 2.05 kB
packages/browser-common/dist/utils/timezone.js 1.44 kB
packages/browser-common/dist/utils/timezone.mjs 163 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.4 kB
packages/browser-common/dist/utils/url-targeting-utils.mjs 823 B
packages/browser-common/dist/utils/uuidv7.js 6.81 kB
packages/browser-common/dist/utils/uuidv7.mjs 5.26 kB
packages/browser-next/dist/analytics-buffer.js 7.69 kB
packages/browser-next/dist/analytics-buffer.mjs 6.03 kB
packages/browser-next/dist/analytics-delivery.js 8.79 kB
packages/browser-next/dist/analytics-delivery.mjs 7.11 kB
packages/browser-next/dist/analytics-internal.js 1.95 kB
packages/browser-next/dist/analytics-internal.mjs 273 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 1.67 kB
packages/browser-next/dist/analytics.mjs 259 B
packages/browser-next/dist/autocapture-options.js 1.85 kB
packages/browser-next/dist/autocapture-options.mjs 513 B
packages/browser-next/dist/autocapture.js 4.44 kB
packages/browser-next/dist/autocapture.mjs 3.01 kB
packages/browser-next/dist/automatic-analytics.js 1.64 kB
packages/browser-next/dist/automatic-analytics.mjs 298 B
packages/browser-next/dist/automatic-surveys.js 1.54 kB
packages/browser-next/dist/automatic-surveys.mjs 189 B
packages/browser-next/dist/bot-filter.js 2.38 kB
packages/browser-next/dist/bot-filter.mjs 1.09 kB
packages/browser-next/dist/browser-client.js 585 B
packages/browser-next/dist/browser-client.mjs 12 B
packages/browser-next/dist/capture-summary.js 2.14 kB
packages/browser-next/dist/capture-summary.mjs 647 B
packages/browser-next/dist/capture-v1.js 29.9 kB
packages/browser-next/dist/capture-v1.mjs 27.2 kB
packages/browser-next/dist/core.js 1.96 kB
packages/browser-next/dist/core.mjs 244 B
packages/browser-next/dist/event-buffer.js 5.32 kB
packages/browser-next/dist/event-buffer.mjs 4.04 kB
packages/browser-next/dist/extensions/registry.js 4.42 kB
packages/browser-next/dist/extensions/registry.mjs 3.12 kB
packages/browser-next/dist/flags-internal.js 585 B
packages/browser-next/dist/flags-internal.mjs 12 B
packages/browser-next/dist/flags-options.js 585 B
packages/browser-next/dist/flags-options.mjs 12 B
packages/browser-next/dist/flags-token.js 1.4 kB
packages/browser-next/dist/flags-token.mjs 80 B
packages/browser-next/dist/flags.js 6.61 kB
packages/browser-next/dist/flags.mjs 5.02 kB
packages/browser-next/dist/id.js 2.25 kB
packages/browser-next/dist/id.mjs 983 B
packages/browser-next/dist/index.js 5.46 kB
packages/browser-next/dist/index.mjs 3.38 kB
packages/browser-next/dist/lane.js 15.1 kB
packages/browser-next/dist/lane.mjs 13.8 kB
packages/browser-next/dist/logger.js 2.08 kB
packages/browser-next/dist/logger.mjs 742 B
packages/browser-next/dist/logs-internal.js 585 B
packages/browser-next/dist/logs-internal.mjs 12 B
packages/browser-next/dist/logs-options.js 1.84 kB
packages/browser-next/dist/logs-options.mjs 529 B
packages/browser-next/dist/logs.js 5.33 kB
packages/browser-next/dist/logs.mjs 3.83 kB
packages/browser-next/dist/named-error.js 1.57 kB
packages/browser-next/dist/named-error.mjs 271 B
packages/browser-next/dist/posthog.js 34.7 kB
packages/browser-next/dist/posthog.mjs 32.3 kB
packages/browser-next/dist/rate-limiter.js 3.06 kB
packages/browser-next/dist/rate-limiter.mjs 1.75 kB
packages/browser-next/dist/remote-config.js 1.85 kB
packages/browser-next/dist/remote-config.mjs 483 B
packages/browser-next/dist/request.js 4.99 kB
packages/browser-next/dist/request.mjs 3.58 kB
packages/browser-next/dist/state.js 24.9 kB
packages/browser-next/dist/state.mjs 23.1 kB
packages/browser-next/dist/surveys-extension.js 11.3 kB
packages/browser-next/dist/surveys-extension.mjs 9.73 kB
packages/browser-next/dist/surveys-internal.js 585 B
packages/browser-next/dist/surveys-internal.mjs 12 B
packages/browser-next/dist/surveys-options.js 1.44 kB
packages/browser-next/dist/surveys-options.mjs 112 B
packages/browser-next/dist/surveys.js 1.77 kB
packages/browser-next/dist/surveys.mjs 258 B
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/all-external-dependencies.js 428 kB
packages/browser/dist/conversations.js 75.1 kB
packages/browser/dist/crisp-chat-integration.js 1.67 kB
packages/browser/dist/customizations.full.js 19.5 kB
packages/browser/dist/customizations.js 19.1 kB
packages/browser/dist/dead-clicks-autocapture.js 24 kB
packages/browser/dist/element-inference.js 5.28 kB
packages/browser/dist/exception-autocapture.js 17.8 kB
packages/browser/dist/extension-bundles.js 223 kB
packages/browser/dist/external-scripts-loader.js 3.7 kB
packages/browser/dist/intercom-integration.js 1.72 kB
packages/browser/dist/lazy-recorder.js 221 kB
packages/browser/dist/loader-bootstrap.js 4.93 kB
packages/browser/dist/loader.js 6.67 kB
packages/browser/dist/logs.js 7.21 kB
packages/browser/dist/posthog-recorder.js 220 kB
packages/browser/dist/product-tours-preview.js 78.1 kB
packages/browser/dist/product-tours.js 122 kB
packages/browser/dist/recorder-v2.js 140 kB
packages/browser/dist/recorder.js 140 kB
packages/browser/dist/rrweb-plugin-console-record.js 7.63 kB
packages/browser/dist/rrweb-types.js 2.41 kB
packages/browser/dist/rrweb.js 333 kB
packages/browser/dist/surveys-preview.js 120 kB
packages/browser/dist/surveys.js 144 kB
packages/browser/dist/tracing-headers.js 4.71 kB
packages/browser/dist/web-vitals-soft-navs.js 11.1 kB
packages/browser/dist/web-vitals-with-attribution-soft-navs.js 27 kB
packages/browser/dist/web-vitals-with-attribution.js 27 kB
packages/browser/dist/web-vitals.js 11 kB
packages/browser/react/dist/esm/index.js 23.3 kB
packages/browser/react/dist/esm/slim/index.js 19.5 kB
packages/browser/react/dist/esm/surveys/index.js 4.22 kB
packages/browser/react/dist/umd/index.js 27.8 kB
packages/browser/react/dist/umd/slim/index.js 23.5 kB
packages/browser/react/dist/umd/surveys/index.js 6.33 kB
packages/convex/dist/client/feature-flags/crypto.js 76 B
packages/convex/dist/client/feature-flags/evaluator.js 16.2 kB
packages/convex/dist/client/feature-flags/index.js 196 B
packages/convex/dist/client/feature-flags/match-property.js 5.7 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.9 kB
packages/convex/dist/component/schema.js 1.17 kB
packages/convex/dist/component/version.js 67 B
packages/core/dist/cookie.js 5.71 kB
packages/core/dist/cookie.mjs 3.4 kB
packages/core/dist/error-tracking/chunk-ids.js 3.44 kB
packages/core/dist/error-tracking/chunk-ids.mjs 2.11 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.58 kB
packages/core/dist/error-tracking/coercers/error-coercer.mjs 1.24 kB
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 10.1 kB
packages/core/dist/error-tracking/error-properties-builder.mjs 8.58 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/base.js 2.43 kB
packages/core/dist/error-tracking/parsers/base.mjs 961 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 8.87 kB
packages/core/dist/error-tracking/parsers/index.mjs 6.03 kB
packages/core/dist/error-tracking/parsers/node.js 4.33 kB
packages/core/dist/error-tracking/parsers/node.mjs 2.96 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.68 kB
packages/core/dist/error-tracking/release.mjs 366 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 28.9 kB
packages/core/dist/featureFlagLocalEvaluation.mjs 26.1 kB
packages/core/dist/featureFlagUtils.js 8.61 kB
packages/core/dist/featureFlagUtils.mjs 5.52 kB
packages/core/dist/gzip.js 5.88 kB
packages/core/dist/gzip.mjs 3.87 kB
packages/core/dist/index.js 27.9 kB
packages/core/dist/index.mjs 2.02 kB
packages/core/dist/logs/index.js 11.8 kB
packages/core/dist/logs/index.mjs 9.83 kB
packages/core/dist/logs/logs-utils.js 6.68 kB
packages/core/dist/logs/logs-utils.mjs 4.53 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 19.7 kB
packages/core/dist/metrics/index.mjs 16.6 kB
packages/core/dist/metrics/metrics-utils.js 3.67 kB
packages/core/dist/metrics/metrics-utils.mjs 1.68 kB
packages/core/dist/metrics/types.js 585 B
packages/core/dist/metrics/types.mjs 12 B
packages/core/dist/posthog-core.js 50.4 kB
packages/core/dist/posthog-core.mjs 44.7 kB
packages/core/dist/privacy.js 15.6 kB
packages/core/dist/privacy.mjs 14 kB
packages/core/dist/surveys/activation.js 2.29 kB
packages/core/dist/surveys/activation.mjs 572 B
packages/core/dist/surveys/events.js 5.82 kB
packages/core/dist/surveys/events.mjs 3.14 kB
packages/core/dist/surveys/index.js 7.48 kB
packages/core/dist/surveys/index.mjs 921 B
packages/core/dist/surveys/keys.js 1.8 kB
packages/core/dist/surveys/keys.mjs 350 B
packages/core/dist/surveys/property-matching.js 3.8 kB
packages/core/dist/surveys/property-matching.mjs 2.15 kB
packages/core/dist/surveys/shuffling.js 2.53 kB
packages/core/dist/surveys/shuffling.mjs 1.07 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.35 kB
packages/core/dist/testing/PostHogCoreTestClient.mjs 1.85 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/config.js 4.62 kB
packages/core/dist/traces/config.mjs 3.27 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/index.js 26.7 kB
packages/core/dist/traces/index.mjs 24 kB
packages/core/dist/traces/otlp.js 6.33 kB
packages/core/dist/traces/otlp.mjs 4.14 kB
packages/core/dist/traces/sanitize.js 3.59 kB
packages/core/dist/traces/sanitize.mjs 1.88 kB
packages/core/dist/traces/span.js 20 kB
packages/core/dist/traces/span.mjs 16.7 kB
packages/core/dist/traces/traceparent.js 4.54 kB
packages/core/dist/traces/traceparent.mjs 2.54 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.53 kB
packages/core/dist/types.mjs 5.37 kB
packages/core/dist/utils/backoff.js 2.36 kB
packages/core/dist/utils/backoff.mjs 611 B
packages/core/dist/utils/bot-detection.js 4.19 kB
packages/core/dist/utils/bot-detection.mjs 2.59 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/flush-timer.js 2.06 kB
packages/core/dist/utils/flush-timer.mjs 725 B
packages/core/dist/utils/index.js 17.8 kB
packages/core/dist/utils/index.mjs 3.69 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-any-value.js 7.96 kB
packages/core/dist/utils/otlp-any-value.mjs 5.77 kB
packages/core/dist/utils/otlp-resource.js 3.94 kB
packages/core/dist/utils/otlp-resource.mjs 1.97 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/retry-after.js 3.5 kB
packages/core/dist/utils/retry-after.mjs 1.96 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 19 kB
packages/core/dist/utils/user-agent-utils.mjs 15.2 kB
packages/core/dist/utils/webview-app-utils.js 3.54 kB
packages/core/dist/utils/webview-app-utils.mjs 2.23 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.65 kB
packages/mcp/dist/extensions/analytics-parameters.mjs 4.3 kB
packages/mcp/dist/extensions/capture.js 4.11 kB
packages/mcp/dist/extensions/capture.mjs 2.65 kB
packages/mcp/dist/extensions/client-identity.js 6.33 kB
packages/mcp/dist/extensions/client-identity.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.69 kB
packages/mcp/dist/extensions/constants.mjs 3.19 kB
packages/mcp/dist/extensions/context-parameters.js 2.85 kB
packages/mcp/dist/extensions/context-parameters.mjs 899 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.82 kB
packages/mcp/dist/extensions/event-types.mjs 498 B
packages/mcp/dist/extensions/exceptions.js 2.67 kB
packages/mcp/dist/extensions/exceptions.mjs 1.19 kB
packages/mcp/dist/extensions/feedback.js 12.1 kB
packages/mcp/dist/extensions/feedback.mjs 9.18 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-highlevel.js 15.8 kB
packages/mcp/dist/extensions/instrument-highlevel.mjs 12.5 kB
packages/mcp/dist/extensions/instrument-lowlevel.js 8.44 kB
packages/mcp/dist/extensions/instrument-lowlevel.mjs 5.88 kB
packages/mcp/dist/extensions/instrumentation.js 37.9 kB
packages/mcp/dist/extensions/instrumentation.mjs 30.8 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 4.99 kB
packages/mcp/dist/extensions/internal.mjs 2.88 kB
packages/mcp/dist/extensions/lib-identity.js 1.7 kB
packages/mcp/dist/extensions/lib-identity.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-payloads.js 3.96 kB
packages/mcp/dist/extensions/mcp-payloads.mjs 2.24 kB
packages/mcp/dist/extensions/mcp-sdk-compat.js 5.86 kB
packages/mcp/dist/extensions/mcp-sdk-compat.mjs 3.5 kB
packages/mcp/dist/extensions/model-parameters.js 4.6 kB
packages/mcp/dist/extensions/model-parameters.mjs 2.33 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 12.5 kB
packages/mcp/dist/extensions/posthog-events.mjs 8.49 kB
packages/mcp/dist/extensions/posthog-mcp.js 17.2 kB
packages/mcp/dist/extensions/posthog-mcp.mjs 13.8 kB
packages/mcp/dist/extensions/request-headers.js 2.27 kB
packages/mcp/dist/extensions/request-headers.mjs 963 B
packages/mcp/dist/extensions/sanitization.js 4.82 kB
packages/mcp/dist/extensions/sanitization.mjs 2.92 kB
packages/mcp/dist/extensions/server-build.js 1.94 kB
packages/mcp/dist/extensions/server-build.mjs 482 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.79 kB
packages/mcp/dist/extensions/session.mjs 4.16 kB
packages/mcp/dist/extensions/sink.js 4.47 kB
packages/mcp/dist/extensions/sink.mjs 2.67 kB
packages/mcp/dist/extensions/tool-input.js 4.82 kB
packages/mcp/dist/extensions/tool-input.mjs 3.27 kB
packages/mcp/dist/extensions/tools.js 3.81 kB
packages/mcp/dist/extensions/tools.mjs 1.68 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-identity.js 3 kB
packages/mcp/dist/extensions/transport-identity.mjs 1.09 kB
packages/mcp/dist/extensions/truncation.js 11.9 kB
packages/mcp/dist/extensions/truncation.mjs 10 kB
packages/mcp/dist/index.js 10.2 kB
packages/mcp/dist/index.mjs 5.54 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 45 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 588 B
packages/next/dist/index.js 572 B
packages/next/dist/index.react-server.js 420 B
packages/next/dist/middleware/postHogMiddleware.js 4.08 kB
packages/next/dist/otel.js 1.12 kB
packages/next/dist/otel.unsupported.js 181 B
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 1.65 kB
packages/next/dist/server/captureRequestError.js 16.4 kB
packages/next/dist/server/clientCache.edge.js 305 B
packages/next/dist/server/clientCache.js 1.53 kB
packages/next/dist/server/clientCache.node.js 828 B
packages/next/dist/server/createPostHog.js 1.44 kB
packages/next/dist/server/getPostHog.js 3.89 kB
packages/next/dist/server/onRequestError.js 2.55 kB
packages/next/dist/server/onRequestError.types.js 59 B
packages/next/dist/server/withPostHogProxy.js 4.03 kB
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/config.js 13.6 kB
packages/nextjs-config/dist/config.mjs 11.9 kB
packages/nextjs-config/dist/index.js 2.21 kB
packages/nextjs-config/dist/index.mjs 30 B
packages/nextjs-config/dist/inject-server-release.js 4.51 kB
packages/nextjs-config/dist/inject-server-release.mjs 2.68 kB
packages/nextjs-config/dist/strip-sourcemap-comments.js 5.46 kB
packages/nextjs-config/dist/strip-sourcemap-comments.mjs 3.37 kB
packages/nextjs-config/dist/utils.js 4.81 kB
packages/nextjs-config/dist/utils.mjs 2.33 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/emails/emails.js 19.9 kB
packages/node/dist/emails/emails.mjs 17.6 kB
packages/node/dist/emails/errors.js 2.79 kB
packages/node/dist/emails/errors.mjs 1.52 kB
packages/node/dist/emails/types.js 585 B
packages/node/dist/emails/types.mjs 12 B
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/entrypoints/otel.js 3.93 kB
packages/node/dist/entrypoints/otel.mjs 2.35 kB
packages/node/dist/experimental.js 852 B
packages/node/dist/experimental.mjs 279 B
packages/node/dist/exports.js 7.2 kB
packages/node/dist/exports.mjs 510 B
packages/node/dist/extensions/context/context.js 2.62 kB
packages/node/dist/extensions/context/context.mjs 1.14 kB
packages/node/dist/extensions/context/event-context.js 1.93 kB
packages/node/dist/extensions/context/event-context.mjs 501 B
packages/node/dist/extensions/context/lifetime.js 2.01 kB
packages/node/dist/extensions/context/lifetime.mjs 571 B
packages/node/dist/extensions/context/listeners.js 2.35 kB
packages/node/dist/extensions/context/listeners.mjs 788 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 17.6 kB
packages/node/dist/extensions/error-tracking/autocapture.mjs 15.7 kB
packages/node/dist/extensions/error-tracking/index.js 5.5 kB
packages/node/dist/extensions/error-tracking/index.mjs 4.1 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/error-tracking/trace-context.js 2.25 kB
packages/node/dist/extensions/error-tracking/trace-context.mjs 913 B
packages/node/dist/extensions/express.js 6.42 kB
packages/node/dist/extensions/express.mjs 4.07 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 44.7 kB
packages/node/dist/extensions/feature-flags/feature-flags.mjs 42 kB
packages/node/dist/extensions/nestjs.js 5.97 kB
packages/node/dist/extensions/nestjs.mjs 3.62 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 6.85 kB
packages/node/dist/extensions/tracing-headers.mjs 4.61 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.72 kB
packages/node/dist/feature-flag-evaluations.mjs 5.24 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.59 kB
packages/node/dist/types.mjs 292 B
packages/node/dist/version.js 1.31 kB
packages/node/dist/version.mjs 46 B
packages/nuxt/dist/module.mjs 8.05 kB
packages/nuxt/dist/runtime/composables/useFeatureFlagEnabled.js 566 B
packages/nuxt/dist/runtime/composables/useFeatureFlagPayload.js 690 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 817 B
packages/nuxt/dist/runtime/nitro-plugin-v3.js 893 B
packages/nuxt/dist/runtime/nitro-plugin.js 3.14 kB
packages/nuxt/dist/runtime/server-client.js 32 B
packages/nuxt/dist/runtime/server.js 127 B
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.66 kB
packages/openfeature-node-provider/dist/mapping.mjs 3.5 kB
packages/openfeature-node-provider/dist/provider.js 4.08 kB
packages/openfeature-node-provider/dist/provider.mjs 2.59 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.42 kB
packages/react-native/dist/error-tracking/exception-context.js 2.25 kB
packages/react-native/dist/error-tracking/fatal-payload.js 6.61 kB
packages/react-native/dist/error-tracking/index.js 17.2 kB
packages/react-native/dist/error-tracking/utils.js 6.03 kB
packages/react-native/dist/frameworks/wix-navigation.js 1.35 kB
packages/react-native/dist/hooks/useFeatureFlag.js 1.9 kB
packages/react-native/dist/hooks/useFeatureFlagResult.js 1.03 kB
packages/react-native/dist/hooks/useFeatureFlags.js 985 B
packages/react-native/dist/hooks/useNavigationTracker.js 2.31 kB
packages/react-native/dist/hooks/usePostHog.js 583 B
packages/react-native/dist/hooks/utils.js 1.02 kB
packages/react-native/dist/index.js 4.36 kB
packages/react-native/dist/logs-defaults.js 3.71 kB
packages/react-native/dist/native-deps.js 9.57 kB
packages/react-native/dist/optional/OptionalAsyncStorage.js 348 B
packages/react-native/dist/optional/OptionalExpoApplication.js 429 B
packages/react-native/dist/optional/OptionalExpoDevice.js 394 B
packages/react-native/dist/optional/OptionalExpoFileSystem.js 437 B
packages/react-native/dist/optional/OptionalExpoFileSystemLegacy.js 480 B
packages/react-native/dist/optional/OptionalExpoLocalization.js 436 B
packages/react-native/dist/optional/OptionalExpoUpdates.js 382 B
packages/react-native/dist/optional/OptionalPlugin.js 1.36 kB
packages/react-native/dist/optional/OptionalReactNativeDeviceInfo.js 473 B
packages/react-native/dist/optional/OptionalReactNativeExceptionsManager.js 626 B
packages/react-native/dist/optional/OptionalReactNativeExceptionsManager.web.js 287 B
packages/react-native/dist/optional/OptionalReactNativeLocalize.js 359 B
packages/react-native/dist/optional/OptionalReactNativeNavigation.js 473 B
packages/react-native/dist/optional/OptionalReactNativeNavigationWix.js 504 B
packages/react-native/dist/optional/OptionalReactNativeSafeArea.js 700 B
packages/react-native/dist/optional/OptionalReactNativeSvg.js 923 B
packages/react-native/dist/posthog-rn.js 97.6 kB
packages/react-native/dist/PostHogContext.js 372 B
packages/react-native/dist/PostHogErrorBoundary.js 3.98 kB
packages/react-native/dist/PostHogMaskView.js 1.72 kB
packages/react-native/dist/PostHogProvider.js 6.15 kB
packages/react-native/dist/storage.js 6.85 kB
packages/react-native/dist/surveys/components/BottomSection.js 1.69 kB
packages/react-native/dist/surveys/components/Cancel.js 1.19 kB
packages/react-native/dist/surveys/components/ConfirmationMessage.js 1.99 kB
packages/react-native/dist/surveys/components/IntroMessage.js 1.87 kB
packages/react-native/dist/surveys/components/QuestionHeader.js 1.69 kB
packages/react-native/dist/surveys/components/QuestionTypes.js 16.1 kB
packages/react-native/dist/surveys/components/SurveyModal.js 7.95 kB
packages/react-native/dist/surveys/components/Surveys.js 8.7 kB
packages/react-native/dist/surveys/getActiveMatchingSurveys.js 3.42 kB
packages/react-native/dist/surveys/icons.js 10.1 kB
packages/react-native/dist/surveys/index.js 634 B
packages/react-native/dist/surveys/PostHogSurveyProvider.js 12.7 kB
packages/react-native/dist/surveys/safeStyleSheet.js 491 B
packages/react-native/dist/surveys/survey-progress.js 7.8 kB
packages/react-native/dist/surveys/survey-shuffling.js 2.38 kB
packages/react-native/dist/surveys/survey-translations.js 1.22 kB
packages/react-native/dist/surveys/surveys-utils.js 12 kB
packages/react-native/dist/surveys/useActivatedSurveys.js 3.89 kB
packages/react-native/dist/surveys/useSurveyStorage.js 3.07 kB
packages/react-native/dist/tooling/expoconfig.js 42.3 kB
packages/react-native/dist/tooling/metroconfig.js 2.36 kB
packages/react-native/dist/tooling/posthogMetroSerializer.js 7.5 kB
packages/react-native/dist/tooling/utils.js 4.49 kB
packages/react-native/dist/tooling/vendor/expo/expoconfig.js 109 B
packages/react-native/dist/tooling/vendor/metro/countLines.js 276 B
packages/react-native/dist/tooling/vendor/metro/utils.js 3.61 kB
packages/react-native/dist/types.js 104 B
packages/react-native/dist/utils.js 1.83 kB
packages/react-native/dist/version.js 166 B
packages/react/dist/esm/index.js 23.3 kB
packages/react/dist/esm/slim/index.js 19.5 kB
packages/react/dist/esm/surveys/index.js 4.22 kB
packages/react/dist/umd/index.js 27.8 kB
packages/react/dist/umd/slim/index.js 23.5 kB
packages/react/dist/umd/surveys/index.js 6.33 kB
packages/rollup-plugin/dist/chunk-fingerprint.js 2.77 kB
packages/rollup-plugin/dist/index.js 14.9 kB
packages/rrweb/all/dist/rrweb-all.cjs 670 kB
packages/rrweb/all/dist/rrweb-all.js 669 kB
packages/rrweb/all/dist/rrweb-all.umd.cjs 699 kB
packages/rrweb/all/dist/rrweb-all.umd.min.cjs 345 kB
packages/rrweb/packer/dist/browser-********.cjs 17.9 kB
packages/rrweb/packer/dist/browser-********.js 17.5 kB
packages/rrweb/packer/dist/pack.cjs 401 B
packages/rrweb/packer/dist/pack.js 301 B
packages/rrweb/packer/dist/pack.umd.cjs 1.67 kB
packages/rrweb/packer/dist/pack.umd.min.cjs 1.11 kB
packages/rrweb/packer/dist/packer.cjs 276 B
packages/rrweb/packer/dist/packer.js 133 B
packages/rrweb/packer/dist/packer.umd.cjs 694 B
packages/rrweb/packer/dist/packer.umd.min.cjs 626 B
packages/rrweb/packer/dist/unpack.cjs 737 B
packages/rrweb/packer/dist/unpack.js 637 B
packages/rrweb/packer/dist/unpack.umd.cjs 1.14 kB
packages/rrweb/packer/dist/unpack.umd.min.cjs 953 B
packages/rrweb/plugins/rrweb-plugin-canvas-webrtc-record/dist/rrweb-plugin-canvas-webrtc-record.cjs 34.9 kB
packages/rrweb/plugins/rrweb-plugin-canvas-webrtc-record/dist/rrweb-plugin-canvas-webrtc-record.js 34.8 kB
packages/rrweb/plugins/rrweb-plugin-canvas-webrtc-record/dist/rrweb-plugin-canvas-webrtc-record.umd.cjs 37 kB
packages/rrweb/plugins/rrweb-plugin-canvas-webrtc-record/dist/rrweb-plugin-canvas-webrtc-record.umd.min.cjs 22.9 kB
packages/rrweb/plugins/rrweb-plugin-canvas-webrtc-replay/dist/rrweb-plugin-canvas-webrtc-replay.cjs 31.8 kB
packages/rrweb/plugins/rrweb-plugin-canvas-webrtc-replay/dist/rrweb-plugin-canvas-webrtc-replay.js 31.7 kB
packages/rrweb/plugins/rrweb-plugin-canvas-webrtc-replay/dist/rrweb-plugin-canvas-webrtc-replay.umd.cjs 33.7 kB
packages/rrweb/plugins/rrweb-plugin-canvas-webrtc-replay/dist/rrweb-plugin-canvas-webrtc-replay.umd.min.cjs 21.1 kB
packages/rrweb/plugins/rrweb-plugin-console-record/dist/rrweb-plugin-console-record.cjs 16.7 kB
packages/rrweb/plugins/rrweb-plugin-console-record/dist/rrweb-plugin-console-record.js 16.6 kB
packages/rrweb/plugins/rrweb-plugin-console-record/dist/rrweb-plugin-console-record.umd.cjs 15.9 kB
packages/rrweb/plugins/rrweb-plugin-console-record/dist/rrweb-plugin-console-record.umd.min.cjs 8.57 kB
packages/rrweb/plugins/rrweb-plugin-console-replay/dist/rrweb-plugin-console-replay.cjs 6.25 kB
packages/rrweb/plugins/rrweb-plugin-console-replay/dist/rrweb-plugin-console-replay.js 6.15 kB
packages/rrweb/plugins/rrweb-plugin-console-replay/dist/rrweb-plugin-console-replay.umd.cjs 6.5 kB
packages/rrweb/plugins/rrweb-plugin-console-replay/dist/rrweb-plugin-console-replay.umd.min.cjs 3.57 kB
packages/rrweb/plugins/rrweb-plugin-sequential-id-record/dist/rrweb-plugin-sequential-id-record.cjs 663 B
packages/rrweb/plugins/rrweb-plugin-sequential-id-record/dist/rrweb-plugin-sequential-id-record.js 540 B
packages/rrweb/plugins/rrweb-plugin-sequential-id-record/dist/rrweb-plugin-sequential-id-record.umd.cjs 1.1 kB
packages/rrweb/plugins/rrweb-plugin-sequential-id-record/dist/rrweb-plugin-sequential-id-record.umd.min.cjs 827 B
packages/rrweb/plugins/rrweb-plugin-sequential-id-replay/dist/rrweb-plugin-sequential-id-replay.cjs 816 B
packages/rrweb/plugins/rrweb-plugin-sequential-id-replay/dist/rrweb-plugin-sequential-id-replay.js 715 B
packages/rrweb/plugins/rrweb-plugin-sequential-id-replay/dist/rrweb-plugin-sequential-id-replay.umd.cjs 1.25 kB
packages/rrweb/plugins/rrweb-plugin-sequential-id-replay/dist/rrweb-plugin-sequential-id-replay.umd.min.cjs 966 B
packages/rrweb/record/dist/rrweb-record.cjs 238 kB
packages/rrweb/record/dist/rrweb-record.js 237 kB
packages/rrweb/record/dist/rrweb-record.umd.cjs 242 kB
packages/rrweb/record/dist/rrweb-record.umd.min.cjs 118 kB
packages/rrweb/replay/dist/rrweb-replay.cjs 437 kB
packages/rrweb/replay/dist/rrweb-replay.js 437 kB
packages/rrweb/replay/dist/rrweb-replay.umd.cjs 458 kB
packages/rrweb/replay/dist/rrweb-replay.umd.min.cjs 228 kB
packages/rrweb/rrdom-nodejs/dist/rrdom-nodejs.cjs 142 kB
packages/rrweb/rrdom-nodejs/dist/rrdom-nodejs.js 141 kB
packages/rrweb/rrdom-nodejs/dist/rrdom-nodejs.umd.cjs 155 kB
packages/rrweb/rrdom-nodejs/dist/rrdom-nodejs.umd.min.cjs 76.4 kB
packages/rrweb/rrdom/dist/rrdom.cjs 168 kB
packages/rrweb/rrdom/dist/rrdom.js 167 kB
packages/rrweb/rrdom/dist/rrdom.umd.cjs 179 kB
packages/rrweb/rrdom/dist/rrdom.umd.min.cjs 86.9 kB
packages/rrweb/rrweb-snapshot/dist/rebuild-********.cjs 133 kB
packages/rrweb/rrweb-snapshot/dist/rebuild-********.js 132 kB
packages/rrweb/rrweb-snapshot/dist/record.cjs 4.48 kB
packages/rrweb/rrweb-snapshot/dist/record.js 3.14 kB
packages/rrweb/rrweb-snapshot/dist/record.umd.cjs 97.3 kB
packages/rrweb/rrweb-snapshot/dist/record.umd.min.cjs 45.6 kB
packages/rrweb/rrweb-snapshot/dist/replay.cjs 1.96 kB
packages/rrweb/rrweb-snapshot/dist/replay.js 1.31 kB
packages/rrweb/rrweb-snapshot/dist/replay.umd.cjs 206 kB
packages/rrweb/rrweb-snapshot/dist/replay.umd.min.cjs 90.9 kB
packages/rrweb/rrweb-snapshot/dist/rrweb-snapshot.cjs 4.76 kB
packages/rrweb/rrweb-snapshot/dist/rrweb-snapshot.js 3.32 kB
packages/rrweb/rrweb-snapshot/dist/rrweb-snapshot.umd.cjs 252 kB
packages/rrweb/rrweb-snapshot/dist/rrweb-snapshot.umd.min.cjs 113 kB
packages/rrweb/rrweb-snapshot/dist/snapshot-********.cjs 37.7 kB
packages/rrweb/rrweb-snapshot/dist/snapshot-CtRtJ-aJ.js 35.6 kB
packages/rrweb/rrweb-snapshot/dist/types-********.cjs 49.9 kB
packages/rrweb/rrweb-snapshot/dist/types-********.js 44.6 kB
packages/rrweb/rrweb/dist/rrweb.cjs 655 kB
packages/rrweb/rrweb/dist/rrweb.js 654 kB
packages/rrweb/rrweb/dist/rrweb.umd.cjs 681 kB
packages/rrweb/rrweb/dist/rrweb.umd.min.cjs 335 kB
packages/rrweb/types/dist/rrweb-types.cjs 5.8 kB
packages/rrweb/types/dist/rrweb-types.js 5.5 kB
packages/rrweb/types/dist/rrweb-types.umd.cjs 6.06 kB
packages/rrweb/types/dist/rrweb-types.umd.min.cjs 2.95 kB
packages/rrweb/utils/dist/rrweb-utils.cjs 10.1 kB
packages/rrweb/utils/dist/rrweb-utils.js 9.5 kB
packages/rrweb/utils/dist/rrweb-utils.umd.cjs 10.2 kB
packages/rrweb/utils/dist/rrweb-utils.umd.min.cjs 5.07 kB
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.83 kB
packages/types/dist/index.mjs 137 B
packages/types/dist/posthog-config.js 1.53 kB
packages/types/dist/posthog-config.mjs 209 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 9.09 kB
packages/web/dist/index.mjs 8.93 kB
packages/webpack-plugin/dist/config.js 3.55 kB
packages/webpack-plugin/dist/config.mjs 2.48 kB
packages/webpack-plugin/dist/index.js 20.2 kB
packages/webpack-plugin/dist/index.mjs 15.6 kB
tooling/changelog/dist/index.js 399 B
tooling/rollup-utils/dist/index.js 1.17 kB
tooling/sdk-mock-server/dist/decode.js 2.03 kB
tooling/sdk-mock-server/dist/index.js 16 kB
tooling/sdk-mock-server/dist/state.js 3.79 kB

compressed-size-action

@github-actions

github-actions Bot commented Nov 4, 2026 •

Copy link
Copy Markdown
Contributor

posthog-js Compliance Report

Date: 2026-11-09 09:52:49 UTC
Duration: 88894ms

✅ 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 ✅ 150ms
Format Validation.Event Has Uuid ✅ 20ms
Format Validation.Event Has Lib Properties ✅ 15ms
Format Validation.Distinct Id Is String Client ✅ 17ms
Format Validation.Token Is Present Client ✅ 18ms
Format Validation.Custom Properties Preserved ✅ 16ms
Format Validation.Event Has Timestamp ✅ 15ms
Retry Behavior.Retries On 503 ✅ 5020ms
Retry Behavior.Does Not Retry On 400 ✅ 2020ms
Retry Behavior.Does Not Retry On 401 ✅ 2029ms
Retry Behavior.Respects Retry After Header ✅ 5018ms
Retry Behavior.Implements Backoff ✅ 15025ms
Retry Behavior.Retries On 500 ✅ 5015ms
Retry Behavior.Retries On 502 ✅ 5012ms
Retry Behavior.Retries On 504 ✅ 5017ms
Retry Behavior.Max Retries Respected ✅ 15027ms
Deduplication.Generates Unique Uuids ✅ 21ms
Deduplication.Preserves Uuid On Retry ✅ 5017ms
Deduplication.Preserves Uuid And Timestamp On Retry ✅ 10023ms
Deduplication.Preserves Uuid And Timestamp On Batch Retry ✅ 5020ms
Deduplication.No Duplicate Events In Batch ✅ 22ms
Deduplication.Different Events Have Different Uuids ✅ 12ms
Batch Format.Flush With No Events Sends Nothing ✅ 6ms
Error Handling.Does Not Retry On 403 ✅ 2012ms
Error Handling.Does Not Retry On 413 ✅ 2015ms
Error Handling.Retries On 408 ✅ 5019ms

The adapter declares the capability when the installed client requests
/flags?v=4, read from the client's own request version. The shared
scenarios then hold posthog-node to v=4 instead of v=2.
/get_feature_flag_payload takes the /get_feature_flag arguments and
calls getFeatureFlagPayload with matchValue unset, so the SDK evaluates
the flag. The adapter declares feature_flag_payloads: the payload
getter returns the decoded JSON payload. With flags_response_v4, the
shared Gherkin scenarios then check the legacy getter and payload
getter results for each /flags?v=4 contract fixture.
@github-actions

github-actions Bot commented Nov 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 1 past incident pattern(s) (diff vs origin/main):

## Release and delivery channel integrity [path match]
The Nov 2025 supply-chain compromise started with a pull_request_target workflow checking out PR-author code. Never reintroduce that pattern, don't add package lifecycle scripts, and keep publish credentials on OIDC trusted publishing.
  Touched paths:
    - .github/workflows/sdk-compliance-tests-node-v2.yml
  Read: .agents/skills/replay-incident-risk/INCIDENTS.md#class-7-release-and-delivery-channel-integrity

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.

Move the v2 compliance job to harness 1.29.0, which runs the Gherkin
/flags?v=4 read suite and replaces the v2 query scenario with its v4
counterpart for SDKs that declare flags_response_v4.

Copy the feature flag rules v2 fixtures from harness 1.29.0 (contract
9.0.0). Reader cases now declare legacy_payload; check it through
getFeatureFlagPayload and the snapshot's getFlagPayload.

A failed v4 record reads as disabled, so its payload is now null, even
when it carries metadata.payload. Before, a snapshot read returned that
payload.
@github-actions

github-actions Bot commented Nov 9, 2026

Copy link
Copy Markdown
Contributor

SDK performance: posthog-node

Benchmarks completed. No changes flagged for review.

Flags require at least a 5% change in the median and all six pairs agreeing on direction. This is a noise filter, not proof of a performance change or a CI gate.

View all results
Test Measurement Before PR With PR Change Assessment
Capture and deliver events (32-byte payload, burst)
Shard: capture
Allocations per operation — — — unavailable; base:​ unsupported; head:​ unsupported; base:​ V8 samples do not expose total allocation count; sample count is not object count.​; head:​ V8 samples do not expose total allocation count; sample count is not object count.​
Capture and deliver events (4,096-byte payload, burst)
Shard: capture
Allocations per operation — — — unavailable; base:​ unsupported; head:​ unsupported; base:​ V8 samples do not expose total allocation count; sample count is not object count.​; head:​ V8 samples do not expose total allocation count; sample count is not object count.​
Capture and deliver events (32-byte payload, steady)
Shard: capture
Allocations per operation — — — unavailable; base:​ unsupported; head:​ unsupported; base:​ V8 samples do not expose total allocation count; sample count is not object count.​; head:​ V8 samples do not expose total allocation count; sample count is not object count.​
Capture and deliver events (4,096-byte payload, steady)
Shard: capture
Allocations per operation — — — unavailable; base:​ unsupported; head:​ unsupported; base:​ V8 samples do not expose total allocation count; sample count is not object count.​; head:​ V8 samples do not expose total allocation count; sample count is not object count.​
Queue an event (32-byte payload)
Shard: capture
Allocations per operation — — — unavailable; base:​ unsupported; head:​ unsupported; base:​ V8 samples do not expose total allocation count; sample count is not object count.​; head:​ V8 samples do not expose total allocation count; sample count is not object count.​
Queue an event (4,096-byte payload)
Shard: capture
Allocations per operation — — — unavailable; base:​ unsupported; head:​ unsupported; base:​ V8 samples do not expose total allocation count; sample count is not object count.​; head:​ V8 samples do not expose total allocation count; sample count is not object count.​
Evaluate all 10 flags
Shard: flags-scaling
Allocations per operation — — — unavailable; base:​ unsupported; head:​ unsupported; base:​ V8 samples do not expose total allocation count; sample count is not object count.​; head:​ V8 samples do not expose total allocation count; sample count is not object count.​
Evaluate all 100 flags
Shard: flags-scaling
Allocations per operation — — — unavailable; base:​ unsupported; head:​ unsupported; base:​ V8 samples do not expose total allocation count; sample count is not object count.​; head:​ V8 samples do not expose total allocation count; sample count is not object count.​
Evaluate all 1,000 flags
Shard: flags-scaling
Allocations per operation — — — unavailable; base:​ unsupported; head:​ unsupported; base:​ V8 samples do not expose total allocation count; sample count is not object count.​; head:​ V8 samples do not expose total allocation count; sample count is not object count.​
Evaluate one boolean flag
Shard: flags-single
Allocations per operation — — — unavailable; base:​ unsupported; head:​ unsupported; base:​ V8 samples do not expose total allocation count; sample count is not object count.​; head:​ V8 samples do not expose total allocation count; sample count is not object count.​
Evaluate a cohort-filtered flag
Shard: flags-single
Allocations per operation — — — unavailable; base:​ unsupported; head:​ unsupported; base:​ V8 samples do not expose total allocation count; sample count is not object count.​; head:​ V8 samples do not expose total allocation count; sample count is not object count.​
Evaluate a flag (early match)
Shard: flags-single
Allocations per operation — — — unavailable; base:​ unsupported; head:​ unsupported; base:​ V8 samples do not expose total allocation count; sample count is not object count.​; head:​ V8 samples do not expose total allocation count; sample count is not object count.​
Evaluate a flag (late match)
Shard: flags-single
Allocations per operation — — — unavailable; base:​ unsupported; head:​ unsupported; base:​ V8 samples do not expose total allocation count; sample count is not object count.​; head:​ V8 samples do not expose total allocation count; sample count is not object count.​
Evaluate a flag (no match)
Shard: flags-single
Allocations per operation — — — unavailable; base:​ unsupported; head:​ unsupported; base:​ V8 samples do not expose total allocation count; sample count is not object count.​; head:​ V8 samples do not expose total allocation count; sample count is not object count.​
Evaluate a property-filtered flag
Shard: flags-single
Allocations per operation — — — unavailable; base:​ unsupported; head:​ unsupported; base:​ V8 samples do not expose total allocation count; sample count is not object count.​; head:​ V8 samples do not expose total allocation count; sample count is not object count.​
Evaluate a regex-filtered flag
Shard: flags-single
Allocations per operation — — — unavailable; base:​ unsupported; head:​ unsupported; base:​ V8 samples do not expose total allocation count; sample count is not object count.​; head:​ V8 samples do not expose total allocation count; sample count is not object count.​
Evaluate a rollout flag
Shard: flags-single
Allocations per operation — — — unavailable; base:​ unsupported; head:​ unsupported; base:​ V8 samples do not expose total allocation count; sample count is not object count.​; head:​ V8 samples do not expose total allocation count; sample count is not object count.​
Evaluate a multivariate flag
Shard: flags-single
Allocations per operation — — — unavailable; base:​ unsupported; head:​ unsupported; base:​ V8 samples do not expose total allocation count; sample count is not object count.​; head:​ V8 samples do not expose total allocation count; sample count is not object count.​
Capture and deliver events (32-byte payload, burst)
Shard: capture
Allocated memory per operation (estimated) 10.11 KiB/op 9.84 KiB/op 2.7% less memory Not flagged
Capture and deliver events (32-byte payload, burst)
Shard: capture
Time per operation 24.53 µs/op 24.12 µs/op 1.7% less time Not flagged
Capture and deliver events (32-byte payload, burst)
Shard: capture
Idle process memory (RSS) 102.73 MiB 102.61 MiB 0.1% less memory Not flagged
Capture and deliver events (32-byte payload, burst)
Shard: capture
Observed peak process memory (RSS) 106.4 MiB 106.37 MiB <0.1% less memory Not flagged
Capture and deliver events (32-byte payload, burst)
Shard: capture
Managed heap after settling 9.97 MiB 10 MiB 0.3% more memory Not flagged
Capture and deliver events (32-byte payload, burst)
Shard: capture
Process memory after settling (RSS) 106.12 MiB 106.07 MiB <0.1% less memory Not flagged
Capture and deliver events (32-byte payload, burst)
Shard: capture
Process CPU time per operation 39.95 µs/op 41.7 µs/op 4.4% more time Not flagged
Capture and deliver events (32-byte payload, burst)
Shard: capture
Lifetime peak process memory (RSS) 106.63 MiB 106.65 MiB <0.1% more memory Not flagged
Capture and deliver events (4,096-byte payload, burst)
Shard: capture
Allocated memory per operation (estimated) 18.31 KiB/op 18.02 KiB/op 1.6% less memory Not flagged
Capture and deliver events (4,096-byte payload, burst)
Shard: capture
Time per operation 39.38 µs/op 38.84 µs/op 1.4% less time Not flagged
Capture and deliver events (4,096-byte payload, burst)
Shard: capture
Idle process memory (RSS) 103.1 MiB 103.18 MiB <0.1% more memory Not flagged
Capture and deliver events (4,096-byte payload, burst)
Shard: capture
Observed peak process memory (RSS) 113.51 MiB 113.7 MiB 0.2% more memory Not flagged
Capture and deliver events (4,096-byte payload, burst)
Shard: capture
Managed heap after settling 9.98 MiB 10.01 MiB 0.3% more memory Not flagged
Capture and deliver events (4,096-byte payload, burst)
Shard: capture
Process memory after settling (RSS) 109.43 MiB 109.57 MiB 0.1% more memory Not flagged
Capture and deliver events (4,096-byte payload, burst)
Shard: capture
Process CPU time per operation 57.06 µs/op 56.38 µs/op 1.2% less time Not flagged
Capture and deliver events (4,096-byte payload, burst)
Shard: capture
Lifetime peak process memory (RSS) 116.29 MiB 116.38 MiB <0.1% more memory Not flagged
Capture and deliver events (32-byte payload, steady)
Shard: capture
Allocated memory per operation (estimated) 10.35 KiB/op 10.2 KiB/op 1.5% less memory Not flagged
Capture and deliver events (32-byte payload, steady)
Shard: capture
Time per operation 24.12 µs/op 24.22 µs/op 0.4% more time Not flagged
Capture and deliver events (32-byte payload, steady)
Shard: capture
Idle process memory (RSS) 102.45 MiB 102.48 MiB <0.1% more memory Not flagged
Capture and deliver events (32-byte payload, steady)
Shard: capture
Observed peak process memory (RSS) 106.69 MiB 106.42 MiB 0.3% less memory Not flagged
Capture and deliver events (32-byte payload, steady)
Shard: capture
Managed heap after settling 10.05 MiB 10.08 MiB 0.3% more memory Not flagged
Capture and deliver events (32-byte payload, steady)
Shard: capture
Process memory after settling (RSS) 106.69 MiB 106.45 MiB 0.2% less memory Not flagged
Capture and deliver events (32-byte payload, steady)
Shard: capture
Process CPU time per operation 41.52 µs/op 41.45 µs/op 0.2% less time Not flagged
Capture and deliver events (32-byte payload, steady)
Shard: capture
Lifetime peak process memory (RSS) 106.83 MiB 106.63 MiB 0.2% less memory Not flagged
Capture and deliver events (4,096-byte payload, steady)
Shard: capture
Allocated memory per operation (estimated) 18.23 KiB/op 17.67 KiB/op 3% less memory Not flagged
Capture and deliver events (4,096-byte payload, steady)
Shard: capture
Time per operation 36.12 µs/op 35.54 µs/op 1.6% less time Not flagged
Capture and deliver events (4,096-byte payload, steady)
Shard: capture
Idle process memory (RSS) 102.72 MiB 102.64 MiB <0.1% less memory Not flagged
Capture and deliver events (4,096-byte payload, steady)
Shard: capture
Observed peak process memory (RSS) 109.38 MiB 109.41 MiB <0.1% more memory Not flagged
Capture and deliver events (4,096-byte payload, steady)
Shard: capture
Managed heap after settling 10.06 MiB 10.09 MiB 0.3% more memory Not flagged
Capture and deliver events (4,096-byte payload, steady)
Shard: capture
Process memory after settling (RSS) 107.99 MiB 108.22 MiB 0.2% more memory Not flagged
Capture and deliver events (4,096-byte payload, steady)
Shard: capture
Process CPU time per operation 53.87 µs/op 53.51 µs/op 0.7% less time Not flagged
Capture and deliver events (4,096-byte payload, steady)
Shard: capture
Lifetime peak process memory (RSS) 109.38 MiB 109.41 MiB <0.1% more memory Not flagged
Queue an event (32-byte payload)
Shard: capture
Allocated memory per operation (estimated) 8.49 KiB/op 8.99 KiB/op 5.9% more memory Not flagged
Queue an event (32-byte payload)
Shard: capture
Time per operation 16.07 µs/op 16.12 µs/op 0.3% more time Not flagged
Queue an event (32-byte payload)
Shard: capture
Process CPU time per operation 31 µs/op 30.71 µs/op 0.9% less time Not flagged
Queue an event (4,096-byte payload)
Shard: capture
Allocated memory per operation (estimated) 8.77 KiB/op 8.87 KiB/op 1.2% more memory Not flagged
Queue an event (4,096-byte payload)
Shard: capture
Time per operation 16.2 µs/op 16.65 µs/op 2.7% more time Not flagged
Queue an event (4,096-byte payload)
Shard: capture
Process CPU time per operation 31.57 µs/op 30.93 µs/op 2% less time Not flagged
Evaluate all 10 flags
Shard: flags-scaling
Allocated memory per operation (estimated) 132.15 KiB/op 133.7 KiB/op 1.2% more memory Not flagged
Evaluate all 10 flags
Shard: flags-scaling
Time per operation 145.14 µs/op 144.24 µs/op 0.6% less time Not flagged
Evaluate all 10 flags
Shard: flags-scaling
Process CPU time per operation 258.83 µs/op 258.75 µs/op <0.1% less time Not flagged
Evaluate all 100 flags
Shard: flags-scaling
Allocated memory per operation (estimated) 1.24 MiB/op 1.23 MiB/op 0.4% less memory Not flagged
Evaluate all 100 flags
Shard: flags-scaling
Time per operation 1.26 ms/op 1.27 ms/op 1% more time Not flagged
Evaluate all 100 flags
Shard: flags-scaling
Process CPU time per operation 2.2 ms/op 2.21 ms/op 0.4% more time Not flagged
Evaluate all 1,000 flags
Shard: flags-scaling
Allocated memory per operation (estimated) 12.11 MiB/op 12.15 MiB/op 0.3% more memory Not flagged
Evaluate all 1,000 flags
Shard: flags-scaling
Time per operation 14.1 ms/op 13.85 ms/op 1.8% less time Not flagged
Evaluate all 1,000 flags
Shard: flags-scaling
Process CPU time per operation 22.84 ms/op 22.49 ms/op 1.5% less time Not flagged
Evaluate 1,000 flags under concurrent load
Shard: flags-memory
Idle process memory (RSS) 272.61 MiB 273.44 MiB 0.3% more memory Not flagged
Evaluate 1,000 flags under concurrent load
Shard: flags-memory
Observed peak process memory (RSS) 272.67 MiB 273.64 MiB 0.4% more memory Not flagged
Evaluate 1,000 flags under concurrent load
Shard: flags-memory
Managed heap after settling 9.63 MiB 9.65 MiB 0.3% more memory Not flagged
Evaluate 1,000 flags under concurrent load
Shard: flags-memory
Process memory after settling (RSS) 272.52 MiB 272.97 MiB 0.2% more memory Not flagged
Evaluate 1,000 flags under concurrent load
Shard: flags-memory
Lifetime peak process memory (RSS) 273.83 MiB 274.55 MiB 0.3% more memory Not flagged
Refresh 1,000 flag definitions
Shard: flags-memory
Idle process memory (RSS) 227.29 MiB 227.62 MiB 0.1% more memory Not flagged
Refresh 1,000 flag definitions
Shard: flags-memory
Observed peak process memory (RSS) 239.51 MiB 240 MiB 0.2% more memory Not flagged
Refresh 1,000 flag definitions
Shard: flags-memory
Managed heap after settling 11.64 MiB 11.67 MiB 0.3% more memory Not flagged
Refresh 1,000 flag definitions
Shard: flags-memory
Process memory after settling (RSS) 235.27 MiB 235.76 MiB 0.2% more memory Not flagged
Refresh 1,000 flag definitions
Shard: flags-memory
Lifetime peak process memory (RSS) 241.92 MiB 242.16 MiB <0.1% more memory Not flagged
Evaluate one boolean flag
Shard: flags-single
Allocated memory per operation (estimated) 17.27 KiB/op 17.15 KiB/op 0.7% less memory Not flagged
Evaluate one boolean flag
Shard: flags-single
Time per operation 49.99 µs/op 50.17 µs/op 0.4% more time Not flagged
Evaluate one boolean flag
Shard: flags-single
Process CPU time per operation 55.44 µs/op 54.56 µs/op 1.6% less time Not flagged
Evaluate a cohort-filtered flag
Shard: flags-single
Allocated memory per operation (estimated) 14.15 KiB/op 14.04 KiB/op 0.7% less memory Not flagged
Evaluate a cohort-filtered flag
Shard: flags-single
Time per operation 28.36 µs/op 29.04 µs/op 2.4% more time Not flagged
Evaluate a cohort-filtered flag
Shard: flags-single
Process CPU time per operation 34.74 µs/op 35.41 µs/op 1.9% more time Not flagged
Evaluate a flag (early match)
Shard: flags-single
Allocated memory per operation (estimated) 17.67 KiB/op 17.54 KiB/op 0.7% less memory Not flagged
Evaluate a flag (early match)
Shard: flags-single
Time per operation 28.18 µs/op 28.93 µs/op 2.6% more time Not flagged
Evaluate a flag (early match)
Shard: flags-single
Process CPU time per operation 33.88 µs/op 35.03 µs/op 3.4% more time Not flagged
Evaluate a flag (late match)
Shard: flags-single
Allocated memory per operation (estimated) 22.27 KiB/op 22.45 KiB/op 0.8% more memory Not flagged
Evaluate a flag (late match)
Shard: flags-single
Time per operation 29.4 µs/op 29.08 µs/op 1.1% less time Not flagged
Evaluate a flag (late match)
Shard: flags-single
Process CPU time per operation 35.58 µs/op 34.83 µs/op 2.1% less time Not flagged
Evaluate a flag (no match)
Shard: flags-single
Allocated memory per operation (estimated) 16.93 KiB/op 16.79 KiB/op 0.8% less memory Not flagged
Evaluate a flag (no match)
Shard: flags-single
Time per operation 4.15 µs/op 4.19 µs/op 1.1% more time Not flagged
Evaluate a flag (no match)
Shard: flags-single
Process CPU time per operation 7.59 µs/op 7.61 µs/op 0.2% more time Not flagged
Evaluate a property-filtered flag
Shard: flags-single
Allocated memory per operation (estimated) 12.73 KiB/op 12.86 KiB/op 1% more memory Not flagged
Evaluate a property-filtered flag
Shard: flags-single
Time per operation 28.15 µs/op 27.82 µs/op 1.2% less time Not flagged
Evaluate a property-filtered flag
Shard: flags-single
Process CPU time per operation 33.92 µs/op 33.31 µs/op 1.8% less time Not flagged
Evaluate a regex-filtered flag
Shard: flags-single
Allocated memory per operation (estimated) 18.24 KiB/op 18.36 KiB/op 0.7% more memory Not flagged
Evaluate a regex-filtered flag
Shard: flags-single
Time per operation 54.08 µs/op 53.94 µs/op 0.3% less time Not flagged
Evaluate a regex-filtered flag
Shard: flags-single
Process CPU time per operation 61.04 µs/op 60.84 µs/op 0.3% less time Not flagged
Evaluate a rollout flag
Shard: flags-single
Allocated memory per operation (estimated) 14.28 KiB/op 14.24 KiB/op 0.3% less memory Not flagged
Evaluate a rollout flag
Shard: flags-single
Time per operation 38.14 µs/op 38.77 µs/op 1.7% more time Not flagged
Evaluate a rollout flag
Shard: flags-single
Process CPU time per operation 43.5 µs/op 44.51 µs/op 2.3% more time Not flagged
Evaluate a multivariate flag
Shard: flags-single
Allocated memory per operation (estimated) 17.51 KiB/op 17.42 KiB/op 0.5% less memory Not flagged
Evaluate a multivariate flag
Shard: flags-single
Time per operation 49.7 µs/op 49.76 µs/op 0.1% more time Not flagged
Evaluate a multivariate flag
Shard: flags-single
Process CPU time per operation 55.14 µs/op 55.67 µs/op 1% more time Not flagged

Values are medians of paired measurements. Not flagged does not mean unchanged. Unavailable means a measurement could not be provided, not zero. Estimated allocation measurements retain their instrumentation uncertainty. RSS measures the whole process, not just SDK allocations; observed peaks are sampled checkpoints. Paired ranges in the diagnostics describe variability, not confidence intervals.

Each shard uses its own runner; compare Before PR against With PR within a row, not across shards.

Compared 08654ff198bdbfd0783086d80b3d35340723d332 → ec7a2779e3deab6545499d17e77db5657654d65f.

Full report and diagnostics

102 metric rows; 102 rows shown in all results. Omitted or shortened data remain in comparison.json, including per-runner environments, resource limits, measurement methods, samples and checkpoints.

This branch has not been deployed

No deployments
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.

1 participant