From 247771bfec18cbc0339fd03a6c2fc782b94180d3 Mon Sep 17 00:00:00 2001
From: r-zakarya <82443831+r-zakarya@users.noreply.github.com>
Date: Mon, 28 Sep 2026 18:42:12 +0100
Subject: [PATCH] docs: formulaire d'edition, scan QR 2FA, synchro et reseau,
Copy / Fill
CLAUDE.md : interrupteur Copy / Fill de la recherche rapide et pourquoi le
tray copie seulement ; QR lu mais pas de 2FA ; nom par defaut data.json,
messages de commit neutres, 8 s / 3 essais sur le reseau.
README Android : edition de l'entree entiere en un commit, oeil, icone depuis
la galerie, scan 2FA ; verification a l'ouverture, depot vide = creation ; les
pieges 'view' qui defocalisait les champs et 'toast' qui etait un
.
Co-Authored-By: Claude Opus 5.5
---
CLAUDE.md | 38 ++++++++++++++++++--
android-client/README.md | 75 ++++++++++++++++++++++++++++++++++++++++
2 files changed, 111 insertions(+), 2 deletions(-)
diff --git a/CLAUDE.md b/CLAUDE.md
index 0570bce..9bb3fe0 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -513,7 +513,10 @@ faire semblant couterait plus que de l'admettre.
**Le reste du travail Android est dans
[android-client/README.md](android-client/README.md)**, tenu a jour le
-2026-09-17 : les trois facons d'ouvrir le coffre (verrouillage d'ecran, code
+2026-09-28 — dont le formulaire d'edition de l'entree entiere, le scan du QR
+2FA, la verification a l'ouverture au lieu du retelechargement, et deux pieges
+de la page (`view` qui defocalisait les champs, `toast` qui etait un `
`) ;
+et avant cela, le 2026-09-17 : les trois facons d'ouvrir le coffre (verrouillage d'ecran, code
d'application, mot de passe), la copie de secours `vault-recover.bin` qui
survit au schema retire, le scanner de QR (`ThirdParty/ZXing`), le define
`AllowCreateLocal` — creer un coffre sur le telephone est reserve au debogage —
@@ -794,7 +797,10 @@ bureau virtuel** en mémoire (GDI, octets bruts, jamais sur disque) et le décod
par ZXing.Delphi — le même que l'APK, `android-client\ThirdParty\ZXing` dans le
chemin de recherche du `.dproj`. Pas de sélection de zone : le décodeur trouve
le QR où qu'il soit. **Seul un `otpauth://` repart vers la page**
-(`Bridge.onScreenQr`), le reste de l'écran ne quitte pas l'exe. Format `BGR32`
+(`Bridge.onScreenQr(texte, trouvé)`), le reste de l'écran ne quitte pas l'exe.
+Le second argument dit qu'**un QR a été lu** même s'il n'est pas un code 2FA :
+« This QR code is not a 2FA code » plutôt que « aucun QR » (cas vu : un QR
+**dynamique** de générateur en ligne encode un lien de suivi, pas le texte). Format `BGR32`
et non `BGRA32` : l'octet alpha d'une capture GDI vaut 0, lu comme transparent
→ image blanche.
@@ -1163,6 +1169,25 @@ QR que l'application Android scanne elle-meme.
- Telephone : `https://github.com/O/R` <-> URL d'API, comme pour Gitea. Le QR
du PC porte aussi la forme courte `github.com/O/R`.
+### Ce que le depot laisse voir, et le reseau (2026-09-26)
+
+- **Nom par defaut `data.json`** (`SYNC_DEFAULT_FILE`, JS et page du
+ telephone ; `SyncDefaultFile` dans le QR). `vault-sync.json` annoncait un
+ coffre a qui parcourt la liste des depots. Les configurations existantes
+ gardent leur nom : c'est l'URL complete qui est enregistree. **Le QR ne
+ raccourcit que le nom par defaut courant** — un autre nom voyage en URL
+ complete, sinon le telephone rallongerait vers `data.json` et les deux
+ appareils ne liraient pas le meme fichier.
+- **Messages de commit neutres** : `update from desktop` / `update from phone`.
+ Le poste ecrivait `sync from `, le telephone decrivait
+ ce qu'il faisait. Le detail reste dans le journal local.
+- **8 s pour se connecter, 30 s pour repondre, trois essais sur status 0**
+ (poste et telephone). Mesure : `api.github.com` rend plusieurs adresses ;
+ `140.82.121.5` n'est joignable depuis ce reseau ni par l'application ni par un
+ navigateur, `140.82.121.6` repond en 0,22 s. Un navigateur passe a la
+ suivante aussitot ; nous attendions le delai entier. Un 404 ou un 409 sont
+ des reponses et ne relancent rien.
+
### 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).
@@ -1484,6 +1509,15 @@ après chaque `DELETE /attachments/{id}`. Un petit vault sain ne paie rien.
→ retombe sur pwd).
Fix clipboard : `MinimizeToTray(AClearClipboard=False)` via `keepclip=1`
pour ne pas effacer le pwd juste copié quand on re-minimise.
+ **Boutons par ligne** (2026-09-18) : utilisateur, mot de passe ou note, 2FA —
+ seulement ceux qui existent. Une **note est toujours copiée**, même en Fill :
+ tapée, chacun de ses retours à la ligne partirait comme un Entrée.
+ **Interrupteur Copy / Fill** (2026-09-28, `qsFills()`) : visible seulement
+ quand une fenêtre cible existe (Ctrl+Shift+Q, bouton Search de la barrette).
+ Depuis le tray, pas de cible — cliquer le tray donne le premier plan à la
+ barre des tâches — donc copie seule ; suivre « la dernière fenêtre active »
+ a été écarté : les frappes partiraient au mauvais endroit si l'utilisateur a
+ changé d'application entre-temps. Choix retenu en pref DPAPI `qsCopy`.
- **Custom fields combobox éditable** : les champs avec `options` (card
brand, expiry…) rendent un `` + menu custom `.so-combo` (flèche =
toutes les options, input = frappe libre). PAS un `