56abe28a82
CrashlyticsService was wired only for the is_premium custom key. Route the swallowed errors in the main catch blocks through CrashlyticsService.record with a context tag, so non-fatals show up in Firebase (StoreKit load/purchase/ restore, calendar access/create/update/delete, reset-all-data, onboarding save). Debug prints kept. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BkanrydYtrme8wipTzWssG