Part of #74. Depends on #75 (uses the renamed applicationUsageData toggle).
Spec: docs/sentry-integration-plan.md §9b.2 (installation ID + rotation), §11.4 (the user.id contract), §9b.9 (resetting exit-tracking timestamps when toggles flip).
Deliverables
Tests
- Hash changes across a month boundary; raw id stays stable when the usage tier is on; flipping the toggle changes
user.id at the next launch
- Timestamp reset on both toggle setters
Part of #74. Depends on #75 (uses the renamed
applicationUsageDatatoggle).Spec:
docs/sentry-integration-plan.md§9b.2 (installation ID + rotation), §11.4 (theuser.idcontract), §9b.9 (resetting exit-tracking timestamps when toggles flip).Deliverables
user.idderived when the app starts: a monthly-rotating hash of the UUID by default, or the raw UUID whenapplicationUsageDatais on. The hash rotates so activity in different months can't be linked; the raw UUID means a user who shares their installation ID for a bug report can be found in Sentry (§11.4)user.idon all three Sentry SDKs: computed natively (the Android background process needs it before React Native starts), exposed to JS viasentryConfig, passed to Node via a command-line flag; set withSentry.setUserand locked so the host app can't override itTests
user.idat the next launch