diff --git a/CLAUDE.md b/CLAUDE.md index 6bee2d9..182b199 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -1083,6 +1083,35 @@ QR que l'application Android scanne elle-meme. toutes les icones, ce qui reduisait le QR a la taille d'une icone. La taille est donc posee **en style direct** sur le ``. +### Idee gardee : « Reinitialiser l'historique » du depot de synchro + +**Rien n'est fait, et le code actuel reste tel quel** (decide le 2026-09-17). +Chaque synchro est un commit, donc le depot garde TOUS les instantanes +precedents. Ca ne coute rien en place (Git ne stocke que les differences, +86 commits au 2026-09-17), mais **apres un changement de mot de passe de +synchro les anciens restent dechiffrables avec l'ancien** - c'est la seule +raison de vouloir les couper. + +- **L'application ne peut pas le faire par l'API des contenus de Gitea** : + elle sait ajouter un commit, rien d'autre. Supprimer des commits demande + un `git push --force`, donc un client git dans l'exe. +- **Ce qui serait possible par l'API** : `DELETE /repos/…` puis + `POST /user/repos`, puis republier. **Ecarte en automatique** : entre les + deux, le depot ne contient plus rien - une coupure reseau la et la copie + distante est perdue -, et le jeton devrait porter le droit de supprimer un + depot, ce qui en fait une bien plus grosse prise s'il fuit. +- **La forme retenue le jour ou on le fera** : un bouton + « Reinitialiser l'historique » dans Settings -> Sync, avec confirmation, + jamais a chaque synchro. +- **En attendant**, la commande manuelle sur un clone, apres une rotation du + mot de passe de synchro : + ``` + git checkout --orphan tronque HEAD~10 && git commit -m "historique tronque" + git rebase --onto tronque HEAD~10 main && git push --force origin main + ``` + Sans danger pour les appareils : Gitea identifie le fichier par le hachage + de son **contenu**, que la reecriture d'historique ne change pas. + **Tombstone purge on (re)create** : `POST /entries` and `POST /entries/bulk-import` both DELETE any `entry_tombstones` row matching the inserted uuid (same transaction). Without this, restoring