feat(backup): add automatic weekly encrypted backups

A silent safety net against in-app data loss or DB corruption, with zero
friction. Driven off the app lifecycle (startup + when hidden), it writes a
sealed .tanemaki copy into the app's private storage once a week, keeping the
newest 3 (rotating). Reuses the manual backup's encryption via the extracted
ExportImportService.buildSealedBackup(); never throws, so a failed copy can't
crash startup or backgrounding. Not registered on web (no file storage).

Settings shows a quiet reassurance line with the date of the last automatic
copy (localised via intl), hidden where no automatic backup exists.
This commit is contained in:
vjrj 2026-07-10 10:17:36 +02:00
parent cf6975b748
commit 9c449964fd
19 changed files with 559 additions and 29 deletions

View file

@ -37,6 +37,8 @@ dependencies:
# i18n (Weblate-friendly JSON per locale).
slang: ^4.7.0
slang_flutter: ^4.7.0
# ICU date/number formatting (locale-aware, never ad-hoc).
intl: ^0.20.2
# Secure key storage (OS keystore).
flutter_secure_storage: ^9.2.4