Follow-up from #138 (review discussion).
Deferred items
- Preference toggle for error dialog — The error dialog should be behind a preference toggle (disabled by default). In release builds, errors should be silently reported to Crashlytics. The dialog is mainly useful for PR preview builds where reviewers need to spot errors without a debugger.
- Debug mode: rethrow instead of dialog — In local development (debug mode), rethrow unhandled exceptions instead of showing a dialog, so Flutter's default error reporting works normally.