docs(android): record the sha comparison as open, not solved

Verified on device: opening the vault no longer calls the server on every
open. The throttle works.

What it does not do is explain the underlying defect, so the plan now carries
it as an open item with the measurement, what has been ruled out (the Gitea
transport is selected, SaveVault stores what it is given, vault.bin is
rewritten, the container decrypts), and the distinction between worked around
and fixed. Two fingerprints print identically and compare unequal; only an
invisible character explains that, and reading the path did not find it.

Written down rather than left in a commit message, because the cost is now
paid once a quarter of an hour instead of on every open - which is exactly the
kind of defect that stops being noticed before it stops existing.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
r-zakarya
2026-08-17 16:18:30 +01:00
parent 65f5659d06
commit 60e3cae3e4
+36
View File
@@ -170,6 +170,42 @@ tentée d'abord : MSBuild l'ignore, comme il ignore toutes les autres ici.
régénération de `web.res` — l'oublier embarque la page d'avant l'édition, et le régénération de `web.res` — l'oublier embarque la page d'avant l'édition, et le
symptôme se lit alors comme un bug applicatif. symptôme se lit alors comme un bug applicatif.
## 1 quater. OUVERT — la comparaison de sha ne se declenche pas
Mesure sur appareil, deux ouvertures successives du cache :
```
Vault opened from cache in 139 ms
displayed in 14 ms <- l''ouverture ne coute rien
known sha: 03960ff908fb0d09a900ab69f8738fd581aef98f
remote sha: 03960ff908fb0d09a900ab69f8738fd581aef98f
decrypted in 5492 ms <- alors qu''elles sont identiques
```
Les deux empreintes s''affichent **egales** et `PMA.SyncClient` les compare
**differentes** : la branche `ssNotModified` n''est pas prise, et l''avertissement
place juste apres, qui ne s''affiche que si `LRes.ETag = FETag`, ne sort pas non
plus. Seul un caractere invisible explique cela, et une relecture du chemin
complet ne l''a pas trouve.
**Ce qui est ecarte** : le transport Gitea est bien choisi (le journal ecrit
« known sha » et non « If-None-Match », ligne conditionnee par `IsGitea`) ;
`SaveVault` enregistre l''empreinte qu''on lui passe ; `vault.bin` est bien
reecrit (191 146 octets, horodatage a jour) ; et le dechiffrement reussit, donc
le conteneur extrait est le bon.
**Contourne, pas corrige** : la comparaison passe par `SameText` sur des valeurs
elaguees - correct en soi sur un hexadecimal, ou deux empreintes distinctes ne
peuvent pas differer par la seule casse ou un blanc - et le journal affiche
desormais les deux **longueurs**. Le prochain rafraichissement reel dira ce
qu''etait le caractere de trop.
**Rendu peu visible** par `REFRESH_MIN_MINUTES` : l''ouverture n''appelle plus le
serveur qu''au plus une fois par quart d''heure. Le cout ne se paie donc plus a
chaque ouverture, mais il se paiera encore une fois par quart d''heure tant que
la comparaison reste inerte.
---
## 2. Durcissement — petit, à faire avant tout usage réel ## 2. Durcissement — petit, à faire avant tout usage réel
Par ordre de gravité, pas de taille. Par ordre de gravité, pas de taille.