diff --git a/android-client/PLAN.md b/android-client/PLAN.md index 61c7946..f72ec3e 100644 --- a/android-client/PLAN.md +++ b/android-client/PLAN.md @@ -813,6 +813,24 @@ Deux corrections antérieures, posées par raisonnement sans instrument, reposaient toutes deux sur une mesure qui vaut zéro ici. La leçon vaut d'être écrite : sur cet écran, **instrumenter d'abord**. +### Le code se changeait tout seul — corrigé 2026-08-21 + +Le code du cache est passé de `0000` à `00000000` sans que personne ne le +décide. Cause : **le code tapé et le code sous lequel le cache est scellé +étaient la même variable**, et toute écriture du cache rescellait donc sous ce +qui traînait dans le champ. Une synchronisation — qui ne demande pourtant aucun +code — suffisait à le changer, en silence. + +Les deux sont séparés maintenant. Seule **l'ouverture du coffre** touche au +sceau, parce que c'est le seul moment où l'on sait que l'utilisateur connaît le +code courant : le déchiffrement vient de le prouver. Tout le reste — sync, +rafraîchissement de fond, enregistrement d'entrée — réécrit le cache sous le +code déjà en place. + +D'où un second champ, *new unlock code*, visible seulement quand un code existe : +il faut ouvrir avec l'actuel pour que le nouveau prenne. Sans lui, la correction +aurait enfermé l'appareil sous le code posé par accident. + ### Ce qui devient facultatif Sans dépôt configuré, *Sync* n'a rien à faire : les réglages du serveur diff --git a/android-client/web/app.html b/android-client/web/app.html index eea1719..6c1b991 100644 --- a/android-client/web/app.html +++ b/android-client/web/app.html @@ -289,6 +289,18 @@ type="password" inputmode="numeric" autocomplete="off">
×
+ +