Improve local backup permissions and change tracking
All checks were successful
Deploy Sokko G / deploy (push) Successful in 19s

This commit is contained in:
Shinuwa 2026-09-25 10:45:12 +02:00
parent 34e542be28
commit ee823d2c37
13 changed files with 372 additions and 37 deletions

View file

@ -24,21 +24,31 @@ Clés principales dans `kv` :
"setting:autoBackup": {
"enabled": false,
"directoryHandle": null,
"lastBackup": ""
"lastBackup": "",
"lastBackupSignature": "",
"hasUnsavedChanges": false
}
}
```
`setting:autoBackup` conserve le `FileSystemDirectoryHandle` choisi par l'utilisateur
et le dernier timestamp de réussite. Le handle n'est jamais inclus dans les exports.
`setting:autoBackup` conserve le `FileSystemDirectoryHandle` choisi par l'utilisateur,
le dernier timestamp de réussite, l'empreinte du dernier contenu sauvegardé et un
indicateur de modifications non sauvegardées. Ces valeurs ne sont jamais incluses
dans les exports.
Les sauvegardes utilisent le format de l'export global, sont nommées avec la date
locale du navigateur et conservent les dix fichiers `sokkog-global-YYYY-MM-DD.json`
les plus récents. La vérification au démarrage ne demande pas de permission et ne
crée pas les jours manquants lorsque l'application était fermée. Une nouvelle
sauvegarde automatique est ignorée si son contenu est identique à la version la
plus récente, en excluant uniquement l'horodatage d'export. Si le navigateur ne
conserve pas l'autorisation du dossier entre deux sessions, l'interface propose
une réautorisation explicite ; le démarrage n'ouvre aucune demande de permission.
conserve pas l'autorisation du dossier entre deux sessions, l'indicateur passe à
`true` après chaque écriture toolbox confirmée et évite de générer un export au
démarrage. Une alerte persistante propose alors la sauvegarde. Son bouton fournit
l'interaction nécessaire à la demande système ; une fois l'accès accordé,
l'application vérifie précisément le contenu réel du dossier avant toute écriture.
L'indicateur revient à `false` uniquement lorsque le contenu courant est sauvegardé
ou confirmé identique. Si l'autorisation est toujours accordée, cette vérification
reste silencieuse et démarre automatiquement.
Entrée type dans `modules` :