Skip to content

chore(web-analytics): clean up share nudge experiment - #71522

Merged
pauldambra merged 2 commits into
masterfrom
posthog-code/clean-up-web-analytics-share-nudge
Jul 16, 2026
Merged

chore(web-analytics): clean up share nudge experiment#71522
pauldambra merged 2 commits into
masterfrom
posthog-code/clean-up-web-analytics-share-nudge

Conversation

@pauldambra

@pauldambra pauldambra commented Jul 16, 2026

Copy link
Copy Markdown
Member

Problem

The completed web analytics share-nudge experiment left unreachable variant branches in the active V2 implementation.

Why: Keep the current experiment code aligned with its configured variants and remove obsolete behavior that can no longer run.

Changes

  • Remove the old button-emphasis and intent-triggered prompt paths.
  • Preserve the active V2 banner and export-prompt behavior.
  • Add regression coverage for every variant in the running V2 experiment.
  • Retire the original experiment feature flag in PostHog.

How did you test this code?

  • git diff --check
  • Added a parameterized V2 variant matrix that verifies banner visibility and exposure capture for control, control_b, banner, and export. This guards against cleanup accidentally removing a live experiment arm or its exposure event.
  • The focused Jest test could not run locally because this cloud checkout has no frontend node_modules, kea-typegen, or hogli installation. CI runs the focused frontend validation on the pushed commit.

👉 Stay up-to-date with PostHog coding conventions for a smoother review.

Automatic notifications

  • Publish to changelog?
  • Alert Sales and Marketing teams?

Docs update

No documentation changes are needed because this removes unreachable experiment code without changing the current V2 workflow.

🤖 Agent context

Autonomy: Human-driven (agent-assisted)

Codex CLI made the code changes and used the PostHog MCP to audit the experiments and retire the original flag. It invoked /auditing-experiments-flags, /writing-tests, and /using-kea-disposables. The cleanup keeps the V2 banner and export variants while removing only branches that are absent from the V2 flag configuration.


Created with PostHog Code

Remove unreachable variant behavior left by the completed share nudge experiment while preserving the active V2 banner and export paths.

Generated-By: PostHog Code
Task-Id: 2670b225-4340-4758-abb8-2bdc4e94a842
@pauldambra pauldambra self-assigned this Jul 16, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Hey @pauldambra! 👋

It looks like your git author email on this PR isn't your @posthog.com address (paul.dambra@gmail.com). Since you're on the PostHog team, it's worth pointing your local git author email at your @posthog.com address. Why it matters:

  • Consistent work identity in git history — internal tooling that attributes commits to team members keys off your @posthog.com address.
  • Keeps team contributions easy to tell apart from external community ones when scanning history.

You can fix it for this repo with:

git config user.email "you@posthog.com"

Or set it globally with git config --global user.email "you@posthog.com". No need to redo this PR — just a nudge for next time. 🙂

@github-actions

github-actions Bot commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

🤖 CI report

Bundle size — 🟢 -9.2 KiB (-0.0%)

Uncompressed size of every built .js bundle, compared against the base branch.

Total: 64.79 MiB · 🟢 -9.2 KiB (-0.0%)

File Size Δ vs base
posthog-app/_parent/products/tracing/frontend/TracingScene.js 98.2 KiB 🟢 -11.3 KiB (-10.3%)

Posted automatically by build-bundle-size-report · uncompressed bytes from dist-report

Eager graph — within budget

How much code each root ships on the eager path — downloaded and parsed before the surface is interactive. Measured from the esbuild output chunks (post-tree-shake, static imports only); lazy import() / React.lazy chunks are not counted.

Root Eager (shipped) Δ vs base Budget
entry (logged-out pages, app bootstrap)
src/index.tsx
1.22 MiB · 22 files no change ███░░░░░░░ 28.4% of 4.29 MiB
authenticated shell (every logged-in page)
src/scenes/AuthenticatedShell.tsx
8.14 MiB · 2,981 files 🔺 +337 B (+0.0%) █████████░ 87.9% of 9.25 MiB

🟢 node_modules/monaco-editor/ stays out of src/index.tsx
🟢 src/lib/components/ActivityLog/describers stays out of src/index.tsx
🟢 [object Object] stays out of src/index.tsx
🟢 [object Object] stays out of src/index.tsx
🟢 node_modules/monaco-editor/ stays out of src/scenes/AuthenticatedShell.tsx
🟢 src/lib/components/ActivityLog/describers stays out of src/scenes/AuthenticatedShell.tsx
🟢 [object Object] stays out of src/scenes/AuthenticatedShell.tsx
🟢 [object Object] stays out of src/scenes/AuthenticatedShell.tsx

Largest files eagerly shipped from src/index.tsx
Size File
126.8 KiB ../node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom.production.min.js
24.6 KiB ../node_modules/.pnpm/buffer@6.0.3/node_modules/buffer/index.js
6.3 KiB ../node_modules/.pnpm/react@18.3.1/node_modules/react/cjs/react.production.min.js
4.5 KiB ../node_modules/.pnpm/@jspm+core@2.1.0/node_modules/@jspm/core/nodelibs/browser/process.js
3.9 KiB ../node_modules/.pnpm/scheduler@0.23.2/node_modules/scheduler/cjs/scheduler.production.min.js
1.4 KiB ../node_modules/.pnpm/base64-js@1.5.1/node_modules/base64-js/index.js
1.3 KiB src/RootErrorBoundary.tsx
912 B ../node_modules/.pnpm/ieee754@1.2.1/node_modules/ieee754/index.js
789 B src/scenes/ChunkLoadErrorBoundary.tsx
762 B src/index.tsx
Largest files eagerly shipped from src/scenes/AuthenticatedShell.tsx
Size File
281.3 KiB ../node_modules/.pnpm/posthog-js@1.402.3/node_modules/posthog-js/dist/rrweb.js
267.7 KiB ../node_modules/.pnpm/@posthog+icons@0.38.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/icons/dist/posthog-icons.es.js
235.5 KiB src/taxonomy/core-filter-definitions-by-group.json
222.9 KiB ../node_modules/.pnpm/posthog-js@1.402.3/node_modules/posthog-js/dist/module.js
164.0 KiB src/queries/validators.js
154.3 KiB ../node_modules/.pnpm/re2js@0.4.1/node_modules/re2js/build/index.esm.js
126.8 KiB ../node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom.production.min.js
105.8 KiB src/lib/api.ts
93.3 KiB ../node_modules/.pnpm/prosemirror-view@1.40.1/node_modules/prosemirror-view/dist/index.js
92.7 KiB ../packages/quill/packages/quill/dist/index.js

Posted automatically by check-eager-graph · sizes are eager output bytes (shipped, post-tree-shake) from the esbuild metafile · part of #32479

Dist folder size — 🔺 +1.01 MiB (+0.1%)

Total size of the built frontend/dist folder (all assets), compared against the base branch.

Total: 1316.41 MiB · 🔺 +1.01 MiB (+0.1%)

Playwright — all passed

All tests passed.

View test results →

@pauldambra
pauldambra marked this pull request as ready for review July 16, 2026 13:20
@github-actions
github-actions Bot requested a deployment to preview-pr-71522 July 16, 2026 13:20 In progress
@github-actions

github-actions Bot commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

🦔 Hogbox preview · ✅ ready

▶ Open the preview

🔑 Login test@posthog.com / 12345678 (demo data)
🧩 Running this PR's backend and frontend, on the PostHog :master base
🔗 Link stable across rebuilds — a re-push swaps the box underneath, the URL stays
🔒 Access tailnet only (PostHog VPN)
🛠️ Admin inspect & debug state in hogland
💤 Idle sleeps after ~30 min idle (snapshot to S3, zero node cost) and wakes on your next visit in ~30s, behind a brief "waking up" screen

commit 8a79b37 · box box-5c5637aec6d1 · ready in 1115s (push → usable) · build log · rebuilds on every push, torn down on close

@pr-assigner-resolver-posthog
pr-assigner-resolver-posthog Bot requested a review from a team July 16, 2026 13:20
@pauldambra pauldambra added the stamphog Request AI approval (no full review) label Jul 16, 2026
Add focused regression coverage for the four variants in the running V2 experiment, including banner visibility and exposure capture.

Generated-By: PostHog Code
Task-Id: 2670b225-4340-4758-abb8-2bdc4e94a842

@stamphog stamphog Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Straightforward dead-code cleanup removing unreachable experiment variants, with matching test coverage added for the remaining active variants; no risky territory touched, and the author has STRONG familiarity with this exact code despite being off the owning team.

  • Author wrote 86% of the modified lines and has 14 merged PRs in these paths (familiarity STRONG).
  • 👍 on the PR from chatgpt-codex-connector[bot], hex-security-app[bot].
Gate mechanics and policy version
Gate Result
prerequisites all clear
deny-list no deny categories matched
size 80L, 3F substantive, 112L/4F incl. docs/generated/snapshots — within ceiling
tier T1-agent / T1c-medium (112L, 4F, single-area, chore)
stamphog 2.0.0b3 .stamphog/policy.yml @ d0d012d · reviewed head 8a79b37

@trunk-io

trunk-io Bot commented Jul 16, 2026

Copy link
Copy Markdown

Static BadgeStatic BadgeStatic BadgeStatic Badge

View Full Report ↗︎Docs

@pauldambra
pauldambra merged commit e26c7ba into master Jul 16, 2026
214 checks passed
@pauldambra
pauldambra deleted the posthog-code/clean-up-web-analytics-share-nudge branch July 16, 2026 13:42
@deployment-status-posthog

deployment-status-posthog Bot commented Jul 16, 2026

Copy link
Copy Markdown

Deploy status

Environment Status Deployed At Workflow
dev ✅ Deployed 2026-07-16 14:18 UTC Run
prod-us ✅ Deployed 2026-07-16 14:43 UTC Run
prod-eu ✅ Deployed 2026-07-16 14:43 UTC Run

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

Labels

stamphog Request AI approval (no full review)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant