Commit Graph
5 Commits
Author SHA1 Message Date
Sean Oliver 71936a69da fix(telemetry): pass PostHog distinct_id in identify request (#41322) 2025-12-15 08:53:06 -08:00
Sean Oliver 364f743054 Fix PostHog user identification persisting after signout (#40158)
- Add reset() method to PostHogClient class to clear user identification
- Call posthogClient.reset() before clearLocalStorage() in signout flow
- Include proper error handling and memory leak prevention
- Clear all pending state (identification, groups, events)

Resolves GROWTH-535
2025-11-06 15:51:56 -08:00
Sean Oliver 97d746b665 fix: resolve 50% session tracking discrepancy on root route (#37853)
* fix: resolve 50% session tracking discrepancy on root route

- Fixes race condition causing ~50% discrepancy in session tracking between client and server on root route
- Implements event queuing to capture telemetry events before PostHog initializes
- Adds session ID correlation to enable unified tracking analysis between client and server events
- Uses sendBeacon API for both pageview and pageleave events to ensure reliable capture even during navigation
- Adds production safeguards with try/catch blocks and memory caps to prevent API errors from breaking tracking

* refactor(posthog-client): reduce max pending events and improve event handling

- Decreased the maximum number of queued events from 200 to 20
- Added the use of the sendBeacon API for pending events to survive page unload
- Added comments to clarify the handling of pending properties and events during posthog initialization
2025-08-13 12:54:52 -07:00
Sean Oliver 5f112a33fa fix: queue user identification calls until PostHog is initialized (#37773)
Fixes race condition where user identification was lost when PostHog
hadn't finished initializing. Now queues identification calls and
applies them once PostHog is ready, similar to how groups are handled.

Also ensures groups from pageview properties are properly set.
2025-08-07 14:02:51 -07:00
Sean Oliver e3e8528f72 feat: add client-side PostHog telemetry tracking (#37442)
Adds client-side PostHog tracking to run in parallel with server-side telemetry across studio, docs, and www. This enables session replays and resolves a race condition where page views arrive before group assignments resulting in attribution errors.

Changes:
- Created PostHog client wrapper with consent-aware initialization in common package
- Integrated PostHog client calls into existing telemetry functions to send events to both PostHog (client) and backend (server)
- Updated CSP to allow connections to PostHog endpoints
- Added environment variable support for all apps
- PostHog client accepts consent as a parameter and respects user preferences
- Events can be distinguished in PostHog by $lib property (posthog-js vs posthog-node)
- PostHog URL configured based on environment (staging/local uses ph.supabase.green)
- Maintains full backward compatibility with existing telemetry system

Resolves GROWTH-438
Resolves GROWTH-271
2025-08-06 09:15:51 -07:00