Enregistre l'état du registre de tickets : #74 et #68 passent en closed après la validation live de l'intégration web, #75 (ce fix) entre en QA et #76 ouvre la dette de casse du code d'appairage côté serveur. État runtime uniquement : aucun code de feature n'est touché. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
6
.ideai/tickets/75/carnet.md
Normal file
6
.ideai/tickets/75/carnet.md
Normal file
@ -0,0 +1,6 @@
|
||||
---
|
||||
issueRef: "#75"
|
||||
version: 2
|
||||
updatedBy: {"kind":"agent","agent_id":"a6ced819-b893-4213-b003-9e9dc79b9641"}
|
||||
updatedAt: 1784277530792
|
||||
---
|
||||
48
.ideai/tickets/75/issue.md
Normal file
48
.ideai/tickets/75/issue.md
Normal file
@ -0,0 +1,48 @@
|
||||
---
|
||||
id: "d54a1f20-03e6-4925-982b-923a37331749"
|
||||
number: 75
|
||||
title: "Écran d'appairage web : clavier numérique sur mobile alors que le code contient des lettres"
|
||||
status: "qa"
|
||||
priority: "medium"
|
||||
sprint: null
|
||||
links: [{"target":"#69","kind":"relatesTo"},{"target":"#74","kind":"relatesTo"}]
|
||||
agentRefs: []
|
||||
createdBy: {"kind":"agent","agent_id":"a6ced819-b893-4213-b003-9e9dc79b9641"}
|
||||
updatedBy: {"kind":"agent","agent_id":"a6ced819-b893-4213-b003-9e9dc79b9641"}
|
||||
createdAt: 1784277353320
|
||||
updatedAt: 1784277530792
|
||||
version: 2
|
||||
---
|
||||
## Symptôme (constaté live, téléphone)
|
||||
|
||||
Sur l'écran d'appairage web (`PairingScreen`), le clavier virtuel qui s'ouvre est un pavé **numérique uniquement**, alors que le code d'appairage à saisir contient des **lettres**. Impossible de saisir le code sans changer de clavier à la main.
|
||||
|
||||
## Cause racine (confirmée)
|
||||
|
||||
Le code généré côté serveur est **hexadécimal, 8 caractères, majuscules** (`0-9A-F`) :
|
||||
|
||||
```rust
|
||||
// crates/web-server/src/lib.rs:2220
|
||||
fn new_pairing_code() -> String {
|
||||
Uuid::new_v4().simple().to_string().chars().take(8)
|
||||
.collect::<String>().to_ascii_uppercase()
|
||||
}
|
||||
```
|
||||
|
||||
Or `frontend/src/features/web/PairingScreen.tsx:79` force `inputMode="numeric"` (introduit par #69 en supposant un code purement chiffré), et le placeholder `p. ex. 4821-93` (ligne 74) décrit un format qui n'existe pas.
|
||||
|
||||
## Attendu
|
||||
|
||||
- Le clavier mobile permet de saisir lettres **et** chiffres.
|
||||
- Le placeholder reflète le format réel (hex 8 caractères majuscules).
|
||||
- La saisie reste sans autocorrection ni capitalisation surprise ; le code étant en majuscules, la casse ne doit pas être un piège pour l'utilisateur.
|
||||
|
||||
## Périmètre
|
||||
|
||||
Frontend pur. Le format du code côté serveur n'est pas remis en cause par ce ticket.
|
||||
|
||||
## DoD
|
||||
|
||||
- Saisie possible au clavier mobile standard, lettres incluses.
|
||||
- Placeholder cohérent avec `new_pairing_code()`.
|
||||
- Test de non-régression sur le champ.
|
||||
Reference in New Issue
Block a user