Passage sur le Redmi contre `.75`. Aucun des trois n'était visible en test.
1. LA PRODUCTION S'AFFICHAIT NÉGATIVE — « -8.9 kW · Solaire » sous 9 kW de
soleil. `currentPowerProduction` est publié négatif par nymea et le service
garde les signes bruts par politique ; la carte imprimait la valeur telle
quelle. Ce qui rend le défaut net plutôt qu'opinable : la même carte
normalisait DÉJÀ le réseau et la batterie par `.abs()` — la branche solaire
était la seule oubliée, donc un oubli et non une convention.
2. LE LIBELLÉ SE COUPAIT AU MILIEU DU MOT — « Autoconsommat / ion », alors que
le commentaire du code disait vouloir l'éviter. La cause n'est pas la
longueur mais l'ÉCHELLE du texte : police système au-dessus de 100 %, et
`maxLines: 2` ne protège de rien puisque Flutter coupe un mot long sans
espace, sans même afficher l'ellipse. `FittedBox(scaleDown)` garde le mot
entier et ne fait rien quand la place suffit.
3. MA LIGNE DES RATIOS RÉPÉTAIT LES TUILES — « Instantané depuis 09:23 —
autoconsommation 52 %, autonomie 54 % » sous des tuiles affichant 52 % et
54 %. Les deux chemins étaient corrects et les valeurs coïncidaient vraiment
(bilan 51,8/54,1 sur 00:00→16:45, box 51,9/53,7 depuis 09:23). Rien de faux,
et illisible quand même : je déclenchais sur l'ORIGINE, alors qu'un lecteur
compare des NOMBRES. La ligne sort désormais quand l'origine diffère ET que
l'écart dépasse 2 points ; le relevé du jour est devenu un test.
Vérifié à l'écran après correction : le libellé tient sur une ligne, la ligne des
ratios se tait. Le signe, lui, N'A PAS pu être revu — la production du banc était
retombée à 0 W à 17:03, et `abs(0) == 0`. Une correction qu'on ne peut pas voir
demande une garde qui se voit : `flux_signe_test.dart` la pose.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GKM8FDNHZWogAsjjfB8pSw