V7.3 Release: Version History, Cloud Sync, and Smarter Reliability



The V7.3 release is a major leap forward in making the app more reliable, transparent, and user-controlled. With full version history, cloud sync, conflict resolution, and streak synchronization, this update ensures that your notes and progress are always safe, recoverable, and consistent across devices.
This release also modernizes the error experience, refines settings, and introduces consistent in-app feedback, making the app feel more professional and trustworthy.
Highlights
-
Complete Version History
- Keep‑style change summaries (title, content, tags).
- Redesigned version preview dialog with proper Quill rendering.
- Download and restore per version with consistent file paths.
- Version History screen with timeline cards, diffs, and restore/download actions.
- Version History settings: enable/disable toggle, max versions to keep, manual cleanup, auto-cleanup toggle, and storage info.
-
Cloud Sync for Versions
- Versions stored under each note (
users/{uid}/notes/{noteId}/versions/{versionId}
). - Integrated with the existing note sync layer — no extra service required.
- Versions stored under each note (
-
Conflict Resolution for Notes
- Deterministic policy:
- If cloud
updatedAt
≥ local → keep cloud. - If local is newer → push local to cloud.
- If cloud
- All resolutions logged to Crashlytics for transparency.
- Deterministic policy:
-
Streak Sync
- Sync streaks across devices with user control.
- Options: “Sync Now” and “Pull from Cloud.”
- Daily write guard ensures streaks sync at most once per day.
- Full error handling with rollback on failure.
-
Modernized Error Experience
- New
ErrorApp
page styled to match the app theme. - “Copy Details” button for easy reporting.
- Crashlytics logging on copy.
- “Try Again” call-to-action for recovery.
- New
Changes
-
Settings & Navigation
- Notes bottom sheet cleaned up; added Version History toggle and link to settings.
- Backup export/import now wired to
BackupService
with consistent feedback. - Settings page updated with a new “Secure Notes” entry (UI only; feature removed).
-
CustomSnackBar Everywhere
- All new flows now use
CustomSnackBar.show(context, message, isSuccess: true/false)
for consistent feedback.
- All new flows now use
-
Crashlytics Logging
- Logs metadata only (ids, timestamps, reasons) — never note content.
Fixes
-
Hive Adapter Null Cast
- Fixed crash on older installs by defaulting missing
versionNumber
to 1.
- Fixed crash on older installs by defaulting missing
-
Import Paths and Providers
- Registered
NoteVersionAdapter
andNoteVersionProvider
. - Corrected import paths for version history.
- Registered
Removed
- Secure Notes (Experimental)
- Local-only encrypted notes were prototyped but removed from this release.
- UI entry remains for a future stable implementation, but all experimental code was deleted.
Developer Notes
- Versioning:
version_history_screen.dart
,note_version_repo.dart
,note_version_provider.dart
,version_diff_utils.dart
,version_download_utils.dart
. - Sync & Conflict Resolution:
note_taking_sync.dart
,reverse_sync.dart
. - Error Page:
lib/utils/error.dart
. - Firebase Rules: Added
versions
subcollection rules under notes.
Known Limitations
- Auto-cleanup for version history runs only on user action (no background scheduling yet).
- Conflict resolution is automatic; no user-facing conflict dialog.
- “Secure Notes” entry is present in settings but feature is not active.
Why V7.3 Matters
This release is about trust and control. With version history, cloud sync, and conflict resolution, users can confidently edit notes knowing they can always roll back, recover, or sync across devices. Streak sync ensures progress is consistent, while the modernized error experience and consistent feedback make the app feel more professional and reliable.
Looking Ahead
Future updates will expand on this foundation with background cleanup, user-facing conflict resolution, and a stable Secure Notes feature. The goal is to make the app not just powerful, but also bulletproof in reliability and transparency.
We’d love to hear your feedback on the new version history and sync features. Try them out and let us know how they improve your workflow.