Sentry improvements: context, tracing, source maps, privacy manifest

- 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>
This commit is contained in:
Ullrich Schäfer 2026-03-25 03:11:07 +01:00
parent 6c4d92f7fc
commit 9a904d9f69
No known key found for this signature in database
GPG key ID: A32FF691A0F752D9
16 changed files with 273 additions and 6 deletions

View file

@ -0,0 +1,24 @@
## 1. User & Session Context
- [x] 1.1 Set Sentry user context (id, username) in Journal root loader/component when authenticated, clear when not
- [x] 1.2 Set Sentry `session_id` tag in Planner's SessionView on mount
## 2. Route-Aware Tracing
- [x] 2.1 Replace `browserTracingIntegration()` with `reactRouterV7BrowserTracingIntegration` in planner entry.client.tsx
- [x] 2.2 Replace `browserTracingIntegration()` with `reactRouterV7BrowserTracingIntegration` in journal entry.client.tsx
## 3. Source Map Hardening
- [x] 3.1 Change `build.sourcemap` from `true` to `"hidden"` in both vite.config.ts files
- [x] 3.2 Add `sourcemaps.filesToDeleteAfterUpload` to the Sentry Vite plugin config to clean up .map files after upload
## 4. Privacy Manifest
- [x] 4.1 Create `/privacy` route 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)
- [x] 4.2 Add link to privacy manifest in Journal footer/home page
## 5. Verify
- [x] 5.1 Test locally: build, check no `.map` files remain in build output (or no sourceMappingURL in bundles)
- [x] 5.2 Test locally: trigger error in Journal while logged in, verify Sentry.setUser was called (check devtools)