chore(release): 1.15.2+etm33

R1 et R7 — les deux exigences livrables sans le §10.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015F7G5VeaPVSMeVNjiGj36p
This commit is contained in:
Patrick Schurig 2026-08-30 11:05:36 +02:00
parent 1732f1a640
commit 86256d0baf

View File

@ -1,3 +1,35 @@
powersync-energy-plugin-nymea (1.15.2+etm33) trixie; urgency=medium
* R7 — `decision.level` : le motif hérité dit de quel NIVEAU il parle. `decision` reste au
niveau de la charge, mais il reflète le motif d'UN niveau ; sans le dire, chaque client
réinventerait sa règle de fusion (« le motif du dernier niveau servi ? du premier refusé ? »)
et deux écrans afficheraient deux motifs pour le même cycle. Il n'y a qu'un niveau
aujourd'hui et la question ne se pose pas — c'est précisément pourquoi le champ arrive
maintenant : quand elle se posera, les clients le liront déjà.
* PRÉSENT EXACTEMENT QUAND levels[] L'EST. En mode dégradé il n'y a pas de passe, donc pas de
niveau dont le motif parlerait : ni levels[], ni decision.level.
* R1 — l'ABSENCE et le ZÉRO disent deux choses différentes, et les deux moitiés sont épinglées.
Niveau absent = passe non parcourue ; niveau à targetW 0 = passe parcourue, rien à prendre.
Un zéro forgé détruirait la première information, une absence la seconde. Aujourd'hui la
passe unique est toujours parcourue dès qu'une charge est arbitrée : c'est le mode dégradé
qui porte le cas « aucune passe ».
* testLevelAbsenceAndZeroDifferInMeaning, vérifié échouant DANS LES DEUX SENS — un niveau à
zéro omis, et un decision.level publié sans levels[].
* LM-1014 — UN CLIENT TESTE LA PRÉSENCE D'UN CHAMP, JAMAIS UNE VERSION. Règle posée par
l'agent app en déplaçant son exception EV_GRID_START plutôt qu'en la retirant : elle survit
là où la charge utile n'a pas de counts. Ce qui rend une capacité détectable est la charge
utile, pas un numéro — une box se rétrograde, un paquet se reconstruit, une branche se
déploie hors séquence. Portée en tête d'INTERFACE.md : les versions y datent les changements,
elles ne sont pas des conditions à tester.
* R5, R6 et R8 NE SONT PAS REPOUSSÉES, elles sont sans objet : vérifié que ECO_FLOOR_MET,
ECO_FLOOR_GRID et DRAW_CAP n'existent pas dans le catalogue de motifs. Écrire aujourd'hui la
garde de R6 poserait un invariant sur un code que rien n'émet — un test toujours vert, donc
un test qui ne protège rien.
* Suite complète : simulation 35/35, charging 17/17, loadmodel 20/20, spotmarket 7/7. amd64
0 erreur / 0 avertissement, doxygen 0 avertissement.
-- Patrick Schurig <etm.schurig@gmail.com> Sun, 30 Aug 2026 17:10:00 +0200
powersync-energy-plugin-nymea (1.15.2+etm32) trixie; urgency=medium
* R3 — `counts` : chaque watt publié tombe dans exactement un compteur, et le mapping est