Repository navigation
fix(analytics): create Mixpanel installation profiles - #87
Merged
Merged
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
Collaborator
Author
|
@lauridskern damit haben wir dann user tracking drin, GDPRC comapt! |
hannojg
marked this pull request as ready for review
November 5, 2026 12:12
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
In #85 we added Mixpanel event tracking, but only sent requests to
/track. Events have installation IDs, but do not create user profiles, so Mixpanel's Users view stays empty.This creates or updates a pseudonymous installation profile for each connected session using the existing installation ID, host, plugin version and OS. Profiles use the EU
/engageendpoint with IP geolocation disabled and respect the existing release-only and opt-out checks. Failed profile updates stay pending for the next flush while event delivery continues. The privacy policy now describes these profiles, and Sentry'sanalytics.flushmetric distinguishes event batches from profile updates.Regression tests use in-memory MCP sessions and intercepted Mixpanel requests to verify matching profile/event IDs, opt-outs, retrying rejected updates without resending events, and waiting for in-flight requests during shutdown. The batching test holds delivery until the full burst is queued so its batch-size assertion is independent of promise scheduling. The full
npm testsuite passes on Node 22.23.2: 1,239 passed and one skipped.