Track checkpoint hits through the analytics events pipeline (#3994)
<!-- Thank you for contributing to Purchases! Before pressing the "Create Pull Request" button, please provide the following: --> Send checkpoint hits through the existing batched events endpoint so Khepri can register checkpoints and publish analytics without adding another SDK endpoint. https://github.com/RevenueCat/khepri/pull/24035 https://github.com/RevenueCat/purchases-ios/pull/7447 <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Low Risk** > Adds a new analytics event type following existing paywall/workflow patterns; no changes to purchase, auth, or billing logic. > > **Overview** > **Checkpoint hits are now analytics events.** When `resolveCheckpoint` runs, it records a `CheckpointEvent` (identifier + timestamp) via the same `track` path used for paywalls and workflows, *before* the workflow resolver runs. > > The PR adds the full serialization stack for Khepri: `BackendEvent.Checkpoint` (`checkpoint_hit`, schema v1), `BackendStoredEvent.Checkpoint`, polymorphic JSON registration in `JsonProvider` and `EventsManager`, and `CheckpointEvent.toBackendStoredEvent` with app user and session IDs. > > Tests cover Khepri-compatible JSON encoding/decoding, file persistence in `EventsManager`, and that resolving a checkpoint triggers exactly one tracked event. > > <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit b71bc6919bf83ec25e49d504ece83f4edcd75540. Bugbot is set up for automated code reviews on this repo. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup> <!-- /CURSOR_SUMMARY -->
C
Cesar de la Vega committed
90f74fc371ca5bcc479064e81619397ff041777b
Parent: 57befa8
Committed by GitHub <noreply@github.com>
on 8/19/2026, 3:22:53 PM