docs: section H — 2FA hotkey scenarios

H1 fill (confirmed working), H2 entry without TOTP, H3 picker eligibility,
H4 configurable combo + collision + reset, H5 locked vault, H6 code freshness
at period boundary.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
r-zakarya
2026-07-25 17:42:27 +01:00
parent 7c86f35fce
commit 4c745d2dd9
+28
View File
@@ -286,6 +286,34 @@ l'éditeur slideover : créer + éditer une entrée, ajouter/retirer des tags,
--- ---
## H — Hotkey 2FA (`Ctrl+Shift+T`, série 2026-07-25)
### H1 · remplissage simple ✅
- **ACTION** : entrée avec TOTP → ouvrir son site → **cliquer le champ 2FA** → `Ctrl+Shift+T`.
- **ATTENDU** : le code à 6 chiffres est tapé dans le champ focalisé, toast « 2FA code filled: … ».
### H2 · entrée sans TOTP
- **ACTION** : fenêtre dont le titre matche une entrée **sans** secret TOTP → `Ctrl+Shift+T`.
- **ATTENDU** : « No 2FA code stored for "…" » (et **pas** le « no match » générique, ni un remplissage du mot de passe).
### H3 · picker multi-match
- **PRÉ** : 2 entrées matchent le titre, **une seule** a un TOTP.
- **ATTENDU** : le picker s'ouvre uniquement s'il reste ≥ 2 candidats **avec** TOTP ; ici il ne doit pas s'ouvrir (1 seul candidat éligible → remplissage direct). En-tête du picker : « Pick entry (2FA code) — ».
### H4 · combo configurable
- **ACTION** : Settings → Autofill → cliquer le bouton `Ctrl+Shift+T` → capturer un autre combo.
- **ATTENDU** : accepté et actif immédiatement ; **refusé** s'il duplique un des 4 autres hotkeys ; *Reset to defaults* le remet à `Ctrl+Shift+T` ; le réglage survit à un redémarrage (synced via `settings_json`).
### H5 · coffre verrouillé
- **ACTION** : verrouiller → `Ctrl+Shift+T`.
- **ATTENDU** : l'app revient au premier plan avec le focus sur le master password (même comportement que les autres hotkeys), pas de no-op silencieux.
### H6 · code en fin de période
- **ACTION** : presser le hotkey juste avant la fin du compte à rebours de 30 s.
- **ATTENDU** : le code tapé est celui de la période **courante** au moment de la frappe (généré à la demande, pas mis en cache).
---
## Reste à traiter (constaté pendant l'audit, non corrigé) ## Reste à traiter (constaté pendant l'audit, non corrigé)
1. **Attachments hors garde A11.** Le contrôle « changed elsewhere » couvre le 1. **Attachments hors garde A11.** Le contrôle « changed elsewhere » couvre le