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.
47 lines
2.4 KiB
Markdown
47 lines
2.4 KiB
Markdown
# 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
|
|
1. Lecture live + transport JSON-RPC DÉJÀ faits — ne pas y toucher.
|
|
2. Câbler sur l'API publiée (namespace `NymeaEnergy` actuel ; cible `Ems`).
|
|
3. Mode Optimiser / Manuel. Héos GRISÉ par défaut (capabilities `community/false/false`).
|
|
Objet capabilities à 4 champs : tier / optimizerExpected / optimizerAlive / activeStrategy.
|
|
4. Pas de libellé « Héos » dans la config GPL. Pas d'écran tier Auto/Predict en beta.
|
|
5. Distribution TestFlight (iOS) + APK/Play internal (Android) — pas de review store sur le chemin critique.
|
|
6. **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-energy` répondait « `+etm53`, tout va bien » pendant que
|
|
l'étalement restait inobservable : le compteur appartient à `nymea-plugin-generic-energy`
|
|
(classe `smartMeterConsumer`), jamais reconstruit depuis le 2026-06-19. Le propriétaire se
|
|
trouve en une ligne — avec les DEUX encodages, une chaîne `QStringLiteral` étant stockée en
|
|
UTF-16 et invisible à un `strings` nu :
|
|
```bash
|
|
for so in /usr/lib/*/nymea/plugins/*.so; do
|
|
{ strings -a "$so"; strings -a -el "$so"; } | grep -qx <classe> && dpkg -S "$so"
|
|
done
|
|
```
|
|
Détail et corollaire `deploy.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.
|
|
|
|
```bash
|
|
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.md` existant, `TODO.md`.
|
|
|
|
Carte globale et frontières : voir `../AGENTS.md`.
|