From 47866ddee3d1d0342484d0123c478d020319bbf0 Mon Sep 17 00:00:00 2001 From: Patrick Schurig Date: Sun, 30 Aug 2026 10:18:36 +0200 Subject: [PATCH] =?UTF-8?q?docs(sondes):=20d=C3=A9faire=20son=20action=20n?= =?UTF-8?q?'est=20pas=20restaurer=20l'=C3=A9tat?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Payé le 2026-08-30 en cherchant à provoquer EV_GRID_START. Trois erreurs, aucune n'a produit de code d'erreur : - `connect` bascule `connected` (la liaison du Thing), pas `pluggedIn` — lecture seule, qu'aucune action n'écrit. La borne n'est jamais entrée dans `loads[]` ; - le `finally` défaisait le GESTE, pas l'ÉTAT : `connected` valait déjà `true` avant, donc la « restauration » a laissé la borne déconnectée dix minutes ; - `ThingErrorNoError` est un VRAI succès, et c'est ce qui rend le cas plus vicieux que `status: "success"` : l'action a réussi, elle ne faisait pas ce qu'on croyait. Aucun code ne dira « tu t'es trompé d'action » — le seul verdict est l'état relu. La règle que `fault_probe.dart` tenait déjà pour la configuration est généralisée à `ExecuteAction` : capturer avant, restaurer VERS la capture, comparer état par état. Et le fait mesuré, pour qui réessaiera : EV_GRID_START n'est pas provocable depuis la frontière RPC (pas de prise véhicule exposée, pas d'`assignedCarId`). La fenêtre, elle, s'ouvre seule — 07:46, surplus 905 W, sous le minimum de la borne. La preuve du partage viendra donc de la suite de simulation du moteur ; le critère ne bouge pas, et la branche reste jusqu'à sa trace. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01GKM8FDNHZWogAsjjfB8pSw --- lib/models/load_telemetry.dart | 7 +++++++ tools/rpc/README.md | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+) diff --git a/lib/models/load_telemetry.dart b/lib/models/load_telemetry.dart index ed263b7..b61d72c 100644 --- a/lib/models/load_telemetry.dart +++ b/lib/models/load_telemetry.dart @@ -583,6 +583,13 @@ class LoadTelemetryEntry { /// **Cette branche tient jusqu'à l'observation d'un `EV_GRID_START` réel.** Retirer sur /// la foi de l'annonce ferait exactement ce que la mesure a déjà démenti une fois cette /// semaine. + /// + /// **Et la trace ne viendra pas du banc** : mesuré le 2026-08-30, le motif n'y est pas + /// provocable — aucune action n'expose la prise véhicule, et sans `assignedCarId` la borne + /// reste hors `loads[]` même branchée (`tools/rpc/README.md`). La preuve viendra de la + /// suite de simulation du moteur, qui assère le partage depuis `+etm31` ; le critère, lui, + /// ne bouge pas : `params.budgetW` dans `budget.allocatedW` **et** `params.gridW` dans + /// `draw.committedW`. double get surplusShareW { // L'exception passe avant tout : elle vaut pour les deux formes. if (decision.code == 'EV_GRID_START' && !isSurplusFunded) { diff --git a/tools/rpc/README.md b/tools/rpc/README.md index dabf00c..b8ed1df 100644 --- a/tools/rpc/README.md +++ b/tools/rpc/README.md @@ -62,6 +62,40 @@ dart tools/rpc/