docs(android): section 4 verified on device

save: attempt 1 - GET
    save: decrypt+patch in 4519 ms
    save: re-encrypt in 23 ms
    save: published, new sha 802515d4...

The phone writes to the vault. The 23 ms measure the reused key: the second
derivation was worth the same 4.5 seconds as the first.

Three things are recorded as open rather than left to be rediscovered: the 409
retry is written but has never run, there is no offline editing (the phone
patches the snapshot it just pulled, so Save needs the network - that is the
price of having no merge to write), and only one field is editable.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
r-zakarya
2026-08-17 20:35:57 +01:00
parent 7528146a4e
commit 3e020acf24
+28 -5
View File
@@ -387,11 +387,34 @@ d'interface d'édition.
gagne par `uuid` sur `updated_at`, tombstones qui propagent les gagne par `uuid` sur `updated_at`, tombstones qui propagent les
suppressions, et l'arbitrage de résurrection (une entrée modifiée après sa suppressions, et l'arbitrage de résurrection (une entrée modifiée après sa
date de suppression survit à la tombstone). date de suppression survit à la tombstone).
5. **L'interface d'édition.** Modifier un champ, marquer l'entrée sale, bumper 5. ~~**L'interface d'édition**~~ — **faite**, éditeur en ligne sur la ligne du
`updated_at` en UTC (`toISOString` côté JS, `NowUTC` côté Delphi — mélanger mot de passe. `updated_at` est bumpé en UTC par `PMA.VaultPatch`.
heure locale et UTC a déjà décalé l'arbitrage une fois). 6. ~~**Le conflit 412**~~ — **écrit**, sous forme de **409** (le code de Gitea),
6. **Le conflit 412** — retirer, refusionner, renvoyer, avec un nombre trois essais, en rejouant tirer→patcher→publier. **Jamais éprouvé** : il
d'essais borné. Le poste Windows fait exactement cela, en trois essais. faudrait publier depuis le poste pendant que le téléphone enregistre.
### Vérifié sur appareil — 2026-08-17
```
save: attempt 1 - GET
save: decrypt+patch in 4519 ms
save: re-encrypt in 23 ms
save: published, new sha 802515d4...
```
Les 23 ms mesurent l'économie de la clé réutilisée : la seconde dérivation
valait les mêmes 4,5 secondes que la première.
**Ce qui reste ouvert**, par ordre d'importance :
- le **409** n'a jamais tourné ;
- **pas d'édition hors ligne** : le téléphone patche l'instantané qu'il vient
de tirer, donc sans réseau *Save* échoue. C'est le prix de ne pas avoir de
fusion à écrire. Une file de modifications en attente la ramènerait, avec
l'arbitrage qui va avec ;
- **un seul champ** est modifiable. `PatchEntryField` prend déjà le nom du
champ, donc l'identifiant ou le site coûteraient une ligne ; créer ou
supprimer une entrée, en revanche, exige uuid et tombstones.
### Ce qu'on peut s'épargner ### Ce qu'on peut s'épargner