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>
1.9 KiB
1.9 KiB
id, number, title, status, priority, sprint, links, agentRefs, createdBy, updatedBy, createdAt, updatedAt, version
| id | number | title | status | priority | sprint | links | agentRefs | createdBy | updatedBy | createdAt | updatedAt | version | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| d54a1f20-03e6-4925-982b-923a37331749 | 75 | Écran d'appairage web : clavier numérique sur mobile alors que le code contient des lettres | qa | medium | null |
|
|
|
1784277353320 | 1784277530792 | 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) :
// 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.