trails/openspec/changes/sentry-improvements/tasks.md
Ullrich Schäfer 9a904d9f69
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>
2026-03-25 03:11:07 +01:00

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_id tag in Planner's SessionView on mount

2. Route-Aware Tracing

  • 2.1 Replace browserTracingIntegration() with reactRouterV7BrowserTracingIntegration in planner entry.client.tsx
  • 2.2 Replace browserTracingIntegration() with reactRouterV7BrowserTracingIntegration in journal entry.client.tsx

3. Source Map Hardening

  • 3.1 Change build.sourcemap from true to "hidden" in both vite.config.ts files
  • 3.2 Add sourcemaps.filesToDeleteAfterUpload to the Sentry Vite plugin config to clean up .map files after upload

4. Privacy Manifest

  • 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)
  • 4.2 Add link to privacy manifest in Journal footer/home page

5. Verify

  • 5.1 Test locally: build, check no .map files 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)