Clearful 3.30.1
Release note Version 3.30.1 was released on 2025-12-21.
Update super_editor and remove super_editor_markdown dependency
Section titled “Update super_editor and remove super_editor_markdown dependency”- Removed super_editor_markdown package (now merged into super_editor).
- Updated follow_the_leader and overlord packages.
Fix missing paywall route in analytics tracking
Section titled “Fix missing paywall route in analytics tracking”- Added RCPaywallView to routesMap so paywall screen visits are properly reported to analytics.
Fixed Unexpected Session Logout on App Restart
Section titled “Fixed Unexpected Session Logout on App Restart”- Fixed critical bug where users were unexpectedly logged out when reopening the app.
- Root cause: Router used
userChanges()stream which fires on token refreshes, causing unnecessary auth guard reevaluations that could trigger redirects during transient null states. - Implemented shared
BehaviorSubjectfor auth state, ensuring single Firebase subscription and efficient stream sharing. - Switched router to use
authStateChanges()which only fires on actual sign-in/sign-out events. - Added
authStateSettledflag to prevent premature auth guard redirects during cold start. - Added debug logging in auth guards and auth stream for easier future debugging.
- Note: Existing
userChanges()usages in UserRepository and SubscriptionRepository are unchanged (they correctly need token refresh events for Firestore subscriptions).
Migrated Email Update to verifyBeforeUpdateEmail
Section titled “Migrated Email Update to verifyBeforeUpdateEmail”- Replaced deprecated
updateEmail()withverifyBeforeUpdateEmail()for enhanced security. - Implemented browser-based email verification flow (no deep links required).
- Email updates now require user verification via email link before taking effect.
- Added comprehensive documentation in
docs/auth/email_verification_strategy.md. - Clarified relationship between Firebase Dynamic Links deprecation and auth flows.
Fix Android crash from deprecated Firebase Dynamic Links
Section titled “Fix Android crash from deprecated Firebase Dynamic Links”- Fixed crash on Android when app receives deep link while backgrounded or cold-starting.
- Root cause: Firebase Dynamic Links service was shut down in August 2025, causing the native plugin to throw
IllegalStateExceptionwhen handling intents before Firebase initialization. - Added try-catch wrapper in
MainActivity.onNewIntent()to gracefully handle the race condition. - Note: Dynamic link functionality no longer works (service is dead). Future release should remove
firebase_dynamic_linksdependency and migrate prompt sharing to App Links.