Report de la règle déjà consignée dans CLAUDE.md (§ Règles de modification), avec la ligne complétée du second encodage : une chaîne QStringLiteral est stockée en UTF-16 et reste invisible à un `strings` nu.
2.4 KiB
2.4 KiB
AGENTS.md — etm-powersync-app
Application mobile Flutter ETM : lecture live + écrans add & config.
- Licence : à confirmer · Miroir public : selon licence
- Agent : app · Branche : feature/beta-add-config · Scope : écrans add & config
Invariants locaux
- Lecture live + transport JSON-RPC DÉJÀ faits — ne pas y toucher.
- Câbler sur l'API publiée (namespace
NymeaEnergyactuel ; cibleEms). - Mode Optimiser / Manuel. Héos GRISÉ par défaut (capabilities
community/false/false). Objet capabilities à 4 champs : tier / optimizerExpected / optimizerAlive / activeStrategy. - Pas de libellé « Héos » dans la config GPL. Pas d'écran tier Auto/Predict en beta.
- Distribution TestFlight (iOS) + APK/Play internal (Android) — pas de review store sur le chemin critique.
- Dater le paquet qui porte la GRANDEUR, pas celui qui porte la fonction. La fonction et
la grandeur qu'elle consomme peuvent vivre dans deux paquets différents. Le 2026-09-04,
dpkg -l | grep powersync-energyrépondait «+etm53, tout va bien » pendant que l'étalement restait inobservable : le compteur appartient ànymea-plugin-generic-energy(classesmartMeterConsumer), jamais reconstruit depuis le 2026-06-19. Le propriétaire se trouve en une ligne — avec les DEUX encodages, une chaîneQStringLiteralétant stockée en UTF-16 et invisible à unstringsnu :
Détail et corollairefor so in /usr/lib/*/nymea/plugins/*.so; do { strings -a "$so"; strings -a -el "$so"; } | grep -qx <classe> && dpkg -S "$so" donedeploy.sh:CLAUDE.md§ Règles de modification, et../etm-powersync-energy-plugin-etm/AGENTS.md§ « Dater le paquet qui porte la GRANDEUR ».
Déploiement live-demo
Sur instruction explicite uniquement ("déploie la demo" / "mets à jour app.etm-powersync.fr").
Ne pas déployer automatiquement, même après un build réussi.
flutter build web --release
rsync -avz --delete build/web/ etm@192.168.1.241:/var/www/html/app.etm-powersync.fr/
Prérequis : build --release sans erreur.
Serveur : DMZ Apache · 192.168.1.241 · user etm
URL : https://app.etm-powersync.fr
Routing : FallbackResource /index.html (go_router côté client)
Références
CLAUDE.mdexistant,TODO.md.
Carte globale et frontières : voir ../AGENTS.md.