Sur un réseau faible, une proposition, un souvenir, une photo posée sur l'arbre ou un moment pouvait être
créé deux fois : la réponse se perdait (délai dépassé), la personne renvoyait, le serveur recréait tout.
- Navigateur (api/client.js) : un envoi qui n'a pas abouti garde sa clé, et le même envoi refait (même
adresse, même contenu) la réutilise. Une réussite libère la clé.
- Serveur (lib/idempotency.ts) : sur les quatre routes de création, une clé déjà vue par la même personne
renvoie la réponse du premier envoi ; deux essais simultanés n'en traitent qu'un ; un échec n'est pas gardé.
En mémoire, 24 h, 5 000 clés au plus.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Un reseau mobile qui decroche laissait l'app en chargement pour toujours.
30 s par appel, 5 min pour un envoi de fichier (corps de plus de 100 Ko),
3 min pour un import GEDCOM. Le message dit que le serveur ne repond pas.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>