Skip to content

fix(nextjs): restore accurate integration fixtures and cooldown compliance - #5423

Merged
pauldambra merged 1 commit into
mainfrom
posthog/fix-nextjs-integration-fixtures
Oct 25, 2026
Merged

pauldambra merged 1 commit into
mainfrom
posthog/fix-nextjs-integration-fixtures

Conversation

@posthog

@posthog posthog Bot commented Oct 25, 2026

Copy link
Copy Markdown
Contributor

Problem

The Next.js integration job fails during its frozen fixture install because the lockfile selects browser data newer than the repository's dependency cooldown. A dependency update also replaced the named Next 14 and Next 16 fixtures with Next 15, hiding the intended version coverage.

Why

This blocks CI for the OpenTelemetry fix in #5422 and leaves the integration tests reporting versions they do not run. Refs #5422.

Changes

  • Pin cooldown-compliant browser data, retain patched Next 15, and restore patched Next 16.
  • Rename the React 18 fixture to match its actual Next 15 version, verify fixture version labels, and update the test guide.

Release info Sub-libraries affected

Libraries affected

None; these changes affect CI fixtures only.

Checklist

  • All commits are signed
  • Tests for new code: frozen fixture install and full Next.js integration run passed locally
  • Accounted for the impact across different platforms
  • Accounted for backwards compatibility
  • Did not increase the SDK bundle size

If releasing new changes

No changeset is needed for CI fixtures.

🤖 Agent context

Autonomy: Human-driven (agent-assisted)

The fixture versions were chosen to keep the integration job on patched Next.js releases while preserving the repository's dependency cooldown. Verified with pnpm install --frozen-lockfile --ignore-scripts in the fixture workspace and pnpm --filter=@posthog/nextjs-config test:integration after building dependencies.


Created with PostHog Desktop from an inbox report

…iance

Generated-By: PostHog Desktop
Task-Id: eac276ac-44b1-4fc2-9666-d5463c7b28c4
@posthog posthog Bot added the self-driving label Oct 25, 2026
@posthog
posthog Bot requested a review from pauldambra October 25, 2026 10:50
@github-actions

Copy link
Copy Markdown
Contributor
⚠️ `@posthog/nextjs-config` is modified but this PR has no changeset

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

Modified in this PR but no changeset added:

  • @posthog/nextjs-config

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

@github-actions

Copy link
Copy Markdown
Contributor

📝 No Changeset Found

This PR doesn't include a changeset. A changeset is required to release a new version.

How to add a changeset

Run this command and follow the prompts:

pnpm changeset

Remember: Never use major version bumps for posthog-js as it's autoloaded by clients.

@github-actions

Copy link
Copy Markdown
Contributor

Coherence

4 spec problems · 0 failing chokepoints · 2 spec gaps · 0 guard failures

44 components, 7 bullets (5 invariants, 2 requirements), 4 problems

Spec problems (spec --check)

  • packages/ai/src/otel/Otel.spec.md:7 an invariant bullet starts with <name>: <sentence>
  • packages/ai/src/otel/Otel.spec.md:8 an invariant bullet starts with <name>: <sentence>
  • Posthog-js.practice.md:20 practice add an invariant cites 187a5c5, which is no commit in this repository
  • Posthog-js.practice.md:20 practice add an invariant cites 8922ab2, which is no commit in this repository

Chokepoints: none declared.

Spec gaps: 2 entrances with outside or unknown trust and no traced control, and 10 more held by the adoption baseline

  • packages/web/Web.spec.md entrance public api (trust host-app): packages/web
  • packages/webpack-plugin/Webpack-plugin.spec.md entrance webpack plugin (trust build): packages/webpack-plugin

Close one with guard: <chokepoint>, an invariant that names it on its entrances: line, or control: none — <reason>; scaffold control proposes it.

@github-actions

Copy link
Copy Markdown
Contributor

Node SDK compliance v2

Commit: ea529bf
Workflow run and artifacts

Capture v0 — acceptance

✅ 28 passed / ❌ 3 non-passing / ⚠️ 853 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:

Harness exit: 1; report validation exit: 1.

Capture v1 — acceptance

✅ 28 passed / ❌ 3 non-passing / ⚠️ 853 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:

Harness exit: 1; report validation exit: 1.

Capture v0 — migration

✅ 55 passed / ❌ 1 non-passing / ⚠️ 101 not selected

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

❌ 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:134

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 — migration

✅ 120 passed / ❌ 1 non-passing / ⚠️ 36 not selected

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

❌ 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:134

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.

@pauldambra
pauldambra marked this pull request as ready for review October 25, 2026 10:57
@pauldambra
pauldambra requested review from a team as code owners October 25, 2026 10:57
@pauldambra
pauldambra added this pull request to the merge queue Oct 25, 2026
Merged via the queue into main with commit bd41fe4 Oct 25, 2026
78 checks passed
@pauldambra
pauldambra deleted the posthog/fix-nextjs-integration-fixtures branch October 25, 2026 11:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants