Content Limitation Enforcement & Auth Flow Refactor
This release introduces a major new feature for enforcing content limits and provides a significant architectural refactoring of the authentication and account linking flows. It also includes several key bug fixes and dependency updates to improve stability and the web loading experience.
🚀 Content Limitation Enforcement
A new system has been implemented to gracefully handle and enforce limits on user actions, such as following content or bookmarking articles. This was necessary to provide a clear and consistent user experience when users reach plan-based limits.
- 📥 Introduced a
ContentLimitationService
to centralize the logic for checking user content limits based on their role and remote configuration. [#145] - 🎨 Added a
ContentLimitationBottomSheet
to provide a user-friendly UI that informs users when they hit a limit and offers tailored actions like signing in or upgrading. [#145] - ✅ Integrated content limit checks into key user actions, including following topics, sources, and countries, as well as bookmarking headlines. [#145, #159]
- 🐛 Fixed a UI bug where the
ContentLimitationBottomSheet
content could overflow on smaller screens by wrapping it in aSingleChildScrollView
. [#149]
🔐 Authentication & Account Linking Refactor
The authentication and account linking flows have been separated and re-architected to improve clarity, maintainability, and the overall user experience.
- 🔗 Separated the core sign-in/sign-up flow from the account linking process by introducing a dedicated
AccountLinkingPage
for anonymous users. [#142] - ⚙️ The
GoRouter
configuration was comprehensively refactored to support the new, distinct authentication paths and to better manage state. [#142] - 🐛 Fixed a critical bug in the authentication flow where
goNamed
was incorrectly used, preventing users from navigating back. This was corrected by usingpushNamed
. [#144] - 👍 After successful verification, navigation was changed from
pushNamed
togoNamed
to ensure users are properly redirected and cannot navigate back to previous auth steps. [#148]
🛠️ App Health & Web Experience
Several updates were made to improve project stability, maintainability, and the loading experience on the web platform.
- ⬆️ Updated several key dependencies, including
bloc
,go_router
, andvery_good_analysis
, to their latest versions. [#135] - 🕸️ Fixed a critical bug where the web splash screen would remain visible indefinitely, blocking the app. This was resolved by updating the Flutter bootstrap script and refining the splash removal timing. [#136]
- ✨ Refactored the web splash screen management to use the
flutter_native_splash
package, simplifying the codebase by removing custom logic. [#137] - 📝 Implemented a centralized logging system using the
logging
package and a newGoRouterObserver
, replacing ad-hocprint
statements for better debuggability. [#143]