feat: Sentry crash reporting integration (opt-in)#333
Merged
Conversation
Removed mention of privacy-safe data scrubbing and controls in Settings.
Member
|
related issue: #331 |
dozro
approved these changes
Mar 17, 2026
7w1
approved these changes
Mar 17, 2026
Contributor
Deploying with
|
| Status | Preview URL | Commit | Alias | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! | https://pr-333-sable.raspy-dream-bb1d.workers.dev | 992aff1 | pr-333 |
Tue, 17 Mar 2026 15:06:10 GMT |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Uses Sentry for crash reporting, error tracking, and performance monitoring. Crash reporting is opt-in — disabled by default, with a non-dismissable consent banner (No thanks / Enable) shown on first load when a DSN is configured.
Changes
src/instrument.ts— Sentry initialisation with env-based sampling (10% production, 100% preview/dev), token/Matrix-ID scrubbing viabeforeSend/beforeBreadcrumb, session rate-limit, and optional session replaysrc/app/utils/sentryScrubbers.ts— extracted scrubbing helpers (scrubMatrixIds,scrubDataObject,scrubMatrixUrl) with 43 unit testssrc/app/components/telemetry-consent/TelemetryConsentBanner.tsx— opt-in consent banner: "Help improve Sable", forced choice between No thanks (savesfalse, fades out) and Enable (savestrue, reloads so Sentry initialises)src/app/features/settings/general/General.tsx— Diagnostics & Privacy section: Sentry toggle, session replay toggle, links to privacy docssrc/app/features/settings/developer-tools/SentrySettings.tsx— developer panel showing Sentry status, sample ratessrc/app/features/bug-report/BugReportModal.tsx— optional Sentry attachment on manual bug reportssrc/app/utils/debugLogger.ts— debug log entries attached to Sentry events as structured contextdocs/SENTRY_INTEGRATION.md,docs/SENTRY_PRIVACY.md— full integration and privacy documentationdocs/PRIVACY.md— updated to document the consent noticePrivacy
sable_sentry_enabled === 'true'required before any data is sentResolves #331