docs(v2c): le compteur d'absences n'avance que sur les polls réussis — propriété load-bearing
Le commentaire disait déjà la propriété ; il ne disait pas qu'elle PORTE. Une réécriture qui ferait avancer le compteur au timeout, ou le piloterait depuis un minuteur, la casserait sans qu'aucun test ne le dise. Ce qu'elle garantit : un faux débranchement est IMPOSSIBLE à fabriquer par une coupure réseau. Ce n'est pas théorique — 70 % de polls perdus mesurés le 2026-08-28, 40 % encore le 2026-09-06. Un compteur piloté au timeout clôturerait une session toutes les 90 secondes sur ce lien. Et elle devient load-bearing au-delà de la session : les dérogations se terminent au débranchement, et l'asymétrie que leur design exige — prompt à conclure la fin, lent à conclure la poursuite — existe déjà ici. Quelqu'un y a pensé avant nous.
This commit is contained in:
parent
c54718d337
commit
7863517bba
@ -418,6 +418,20 @@ void IntegrationPluginV2c::accumulerEnergieDeSession(Thing *thing, TrydanModbusM
|
||||
// 1. Confirmation du débranchement. Seuls les polls RÉUSSIS parviennent ici :
|
||||
// updateFinished() n'est émis qu'après une séquence de lecture complète. Une
|
||||
// coupure réseau gèle donc le compteur d'absences, elle ne le fait pas avancer.
|
||||
//
|
||||
// ┌─ CETTE PROPRIÉTÉ PORTE. Ne pas la « corriger » en avançant le compteur sur les
|
||||
// │ polls échoués, ni en le pilotant depuis un minuteur.
|
||||
// │
|
||||
// │ Elle rend un faux débranchement IMPOSSIBLE à fabriquer par un lien mort — ce qui
|
||||
// │ n'est pas théorique ici : la campagne du 2026-08-28 a mesuré jusqu'à 70 % de polls
|
||||
// │ perdus, et le 2026-09-06 encore 40 % sur l'heure. Un compteur qui avancerait au
|
||||
// │ timeout clôturerait une session toutes les 90 s sur ce lien.
|
||||
// │
|
||||
// │ Et elle devient LOAD-BEARING au-delà de la session : les dérogations (« boost »)
|
||||
// │ se terminent au débranchement, et une dérogation terminée à tort par un lien qui
|
||||
// │ bat serait une charge interrompue sans raison. Cf. docs/DESIGN_DEROGATION.md du
|
||||
// │ dépôt moteur — l'asymétrie qu'il demande existait déjà ici.
|
||||
// └─
|
||||
suivi.absences = branche ? 0 : suivi.absences + 1;
|
||||
|
||||
// 2. Clôture, une fois le débranchement confirmé sur k_absencesPourClore polls.
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user