V3-12: crash reporting (code only)
shouldInitializeCrashReporting() and scrubExtra() are pure, fully unit-tested decision/scrubbing functions wired into sentry_flutter via beforeSend/beforeBreadcrumb. Config.crashReportingEnabled defaults off; the DSN is a compile-time --dart-define, not a preference. RecordingEngine gained an injected onUnexpectedStop callback, firing once when restoreAfterProcessDeath finds a trip still 'recording' at launch -- the process died without a user stop. Marked partially done: the ticket's real acceptance criteria (a forced crash landing in a real Sentry project from a release build, inspecting a real payload) need a Sentry account and a release build this environment can't produce.
This commit is contained in:
@@ -142,6 +142,21 @@ class _SettingsBodyState extends ConsumerState<_SettingsBody> {
|
||||
},
|
||||
),
|
||||
const Divider(),
|
||||
const _SectionHeader('Crash reporting'),
|
||||
SwitchListTile(
|
||||
key: const Key('crash-reporting-switch'),
|
||||
title: const Text('Send crash reports'),
|
||||
subtitle: const Text(
|
||||
'Off by default. No location, device id, or ride content is ever included '
|
||||
'-- see V3-12. Takes effect on next launch.',
|
||||
),
|
||||
value: ref.watch(crashReportingEnabledProvider),
|
||||
onChanged: (value) async {
|
||||
await widget.config.setCrashReportingEnabled(value);
|
||||
ref.read(crashReportingEnabledProvider.notifier).state = value;
|
||||
},
|
||||
),
|
||||
const Divider(),
|
||||
const _SectionHeader('Sync'),
|
||||
Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 16),
|
||||
|
||||
Reference in New Issue
Block a user