diff --git a/_adn/memory/learnings.md b/_adn/memory/learnings.md index 97fc7a7..a529ff5 100644 --- a/_adn/memory/learnings.md +++ b/_adn/memory/learnings.md @@ -283,3 +283,19 @@ Catégories possibles : 4. **Si je dois réviser une estimation**, dire pourquoi avec les nouvelles données : "j'avais Z GB/h, maintenant W GB/h car [raison]". Sinon, ne pas réviser. **Implication psychologique** : je suis biaisé vers l'optimisme parce que je veux annoncer de bonnes nouvelles. C'est une forme de flatterie déguisée. À bannir au même titre que "excellente idée !". **Source** : conversation 2026-04-29 (sync Bibliothèque) + +--- + +### 2026-04-29 — #outil — Dashboards CLI : règles obligatoires +**Contexte** : durant la sync iCloud → Drive, j'ai construit un dashboard terminal pour suivre l'avancement. Plusieurs bugs ont nui à son utilité : (1) noms avec accents (é, É) en NFD côté state JSON vs NFC côté code → 2 sous-dossiers affichés ⌛ alors qu'ils étaient ✅, sous-estimation 84 GB au lieu de 126 ; (2) ETA calculée sur la moyenne depuis le début (plein de bugs/restarts cumulés) → 110h au lieu de ~3h ; (3) sous-dossiers en état "partial" (échec sur 1 chunk) traités comme not-done, leur volume non compté ; (4) creux entre batches upload (download + evict) affichés en "0 KiB/s" trompeur, ressemble à un stall. + +**Apprentissage** : un dashboard qui affiche des chiffres faux est PIRE qu'un dashboard absent — il fait perdre la confiance et le temps à débugger. + +**Implication DAEMON — RÈGLES OBLIGATOIRES pour tout dashboard CLI futur** : +1. **Normaliser Unicode (NFC) sur toutes les comparaisons de strings** côté macOS, surtout pour des chemins/noms de fichiers (le système macOS stocke en NFD pour le filesystem, NFC ailleurs). +2. **Calculer les ETA sur le débit récent** (dernière heure, pas depuis le début). Sinon les bugs et restarts cumulés faussent l'estimation. +3. **Afficher les états intermédiaires** : "partial", "in-progress with errors", "evicting", "checking" — pas juste "done" ou "todo". Si une partie d'un truc est OK, le dire. +4. **Ne pas montrer juste le débit instantané rclone** (qui tombe à 0 entre batches). Montrer aussi le débit moyen dernière minute, avec un label clair. +5. **Tester le dashboard avec un cas réel** avant de dire "c'est bon" — ne pas se fier à l'apparence du code. + +**Source** : conversation 2026-04-29, feedback Jerem sur dashboards bugés répétés