- Set Sentry user context (id, username) in Journal root for all routes - Tag Planner errors with session_id - Use reactRouterV7BrowserTracingIntegration for route-aware traces - Hidden source maps (no sourceMappingURL in bundles, .map deleted after upload to Sentry) - Privacy manifest at /privacy documenting all data collection - robots.txt blocking all bots on both apps - Suppress i18next promotional console log Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1.3 KiB
1.3 KiB
1. User & Session Context
- 1.1 Set Sentry user context (id, username) in Journal root loader/component when authenticated, clear when not
- 1.2 Set Sentry
session_idtag in Planner's SessionView on mount
2. Route-Aware Tracing
- 2.1 Replace
browserTracingIntegration()withreactRouterV7BrowserTracingIntegrationin planner entry.client.tsx - 2.2 Replace
browserTracingIntegration()withreactRouterV7BrowserTracingIntegrationin journal entry.client.tsx
3. Source Map Hardening
- 3.1 Change
build.sourcemapfromtrueto"hidden"in both vite.config.ts files - 3.2 Add
sourcemaps.filesToDeleteAfterUploadto the Sentry Vite plugin config to clean up .map files after upload
4. Privacy Manifest
- 4.1 Create
/privacyroute in Journal with a user-visible privacy manifest documenting: what Sentry collects (errors, traces, session replays), what the Planner does NOT collect, data retention, and third-party disclosure (Sentry) - 4.2 Add link to privacy manifest in Journal footer/home page
5. Verify
- 5.1 Test locally: build, check no
.mapfiles remain in build output (or no sourceMappingURL in bundles) - 5.2 Test locally: trigger error in Journal while logged in, verify Sentry.setUser was called (check devtools)