Skip to content

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 BehaviorSubject for 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 authStateSettled flag 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() with verifyBeforeUpdateEmail() 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.
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 IllegalStateException when 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_links dependency and migrate prompt sharing to App Links.