Skip to content

Échanges avec Kazis : repas dictés et sauvegarde - #23

Merged
Kaz229 merged 2 commits into
mainfrom
file-repas-kazis
Nov 2, 2026
Merged

Kaz229 merged 2 commits into
mainfrom
file-repas-kazis

Conversation

@Kaz229

@Kaz229 Kaz229 commented Nov 1, 2026 •

Copy link
Copy Markdown
Owner

Relie FitTrack à ton serveur Kazis, dans les deux sens. Complète kazis#20, kazis#21 et kazis#25.

Ce que l'app reçoit

Les repas dictés à Kazis (Telegram ou MCP) arrivent dans le journal, au lancement et sur demande.

  • Un repas donné par code-barres arrive sans valeurs : il est résolu chez Open Food Facts, via le cache existant
  • Un produit introuvable reste dans la file plutôt que d'être enregistré faux
  • L'accusé de réception ne porte que les repas réellement enregistrés

Ce que l'app envoie

Séances, séries et journal alimentaire, en entier, au lancement et sur demande.

Tout vivait à un seul endroit : désinstaller l'app ou changer de téléphone perdait l'historique. Health Connect ne rattrape ni les séries ni les charges — ce qui a le plus de valeur. Côté Kazis, ces données entrent dans la sauvegarde chiffrée.

Un identifiant d'installation accompagne l'envoi : les identifiants des séances repartent à 1 après une réinstallation, et la nouvelle sauvegarde écraserait la précédente sans lui.

Le bug que seul le test sur appareil pouvait révéler

Cleartext HTTP traffic to 10.0.2.2 not permitted. Android refuse le HTTP en clair depuis API 28, et le serveur Kazis parle en HTTP simple sur Tailscale — où le chiffrement vient du tunnel WireGuard. Sans cette correction, rien n'aurait marché sur le téléphone, et aucun test unitaire ne l'aurait vu. Open Food Facts reste en HTTPS obligatoire, déclaré explicitement.

Vérifié sur appareil, contre un vrai serveur Kazis

Réception :

Récupération : Success(added=3, skipped=0)
Produit résolu : Nutella 162 kcal

Envoi :

Sauvegarde : Success(sessions=1, sets=2, meals=1)

et, côté serveur :

séance|gym|2026-11-02|75|492|Push day
série|0025|10|60.0|2026-11-02
série|0025|8|65.0|2026-11-02
repas|ravioles fraiches|420|24.0|36.0|21.0|dejeuner

Une seconde sauvegarde ne duplique rien ; jeton refusé et réglages absents donnent des messages distincts.

7 tests unitaires, 6 tests instrumentés.

Ce qui reste à vérifier de ton côté

La saisie des réglages depuis l'interface : l'émulateur est devenu instable en fin de session. Les chemins de données, eux, sont prouvés par les tests instrumentés.

🤖 Generated with Claude Code

Un assistant (Telegram ou MCP) dépose des repas sur le serveur Kazis ;
FitTrack vient les chercher au lancement, et à la demande depuis les
réglages.

- Un repas donné par code-barres arrive sans valeurs : c'est ici qu'il est
  résolu chez Open Food Facts, en passant par le cache. Un produit
  introuvable reste dans la file plutôt que d'être enregistré faux — il
  sera retenté, et reste annulable depuis Telegram.
- L'accusé de réception ne porte que les repas réellement enregistrés.
- Écran de réglages dans le profil : adresse, jeton, récupération manuelle,
  et le détail de ce que la dernière tentative a donné.

Le trafic en clair devait être autorisé : Android le refuse depuis API 28,
et le serveur Kazis parle en HTTP simple sur Tailscale, où le chiffrement
vient du tunnel WireGuard. Open Food Facts reste en HTTPS obligatoire,
déclaré explicitement dans la configuration réseau.

Vérifié sur appareil contre un vrai serveur Kazis : trois repas récupérés,
dont un code-barres résolu en « Nutella 162 kcal » pour 30 g, file vidée
côté Kazis, et un second passage qui ne ramène rien.
Tout vivait à un seul endroit : désinstaller l'app ou changer de téléphone
perdait l'historique. Health Connect ne rattrape ni les séries ni les
charges, c'est-à-dire ce qui a le plus de valeur.

L'app envoie maintenant tout son contenu au serveur Kazis, au lancement et
sur demande depuis les réglages. Elle réutilise l'adresse et le jeton déjà
saisis pour les repas dictés.

Rien n'est filtré sur la date : l'historique complet est petit, le serveur
remplace ce qu'il a déjà, et une sauvegarde partielle laisserait des trous
après une restauration.

Un identifiant d'installation accompagne l'envoi. Les identifiants des
séances repartent à 1 après une réinstallation : sans lui, la nouvelle
sauvegarde écraserait la précédente côté serveur.

Vérifié sur appareil contre un vrai serveur : une séance, deux séries
(10 × 60 kg, 8 × 65 kg) et un repas arrivent avec leurs valeurs, et une
seconde sauvegarde ne duplique rien.
@Kaz229 Kaz229 changed the title Récupérer les repas dictés à Kazis Échanges avec Kazis : repas dictés et sauvegarde Nov 2, 2026
@Kaz229
Kaz229 merged commit 4810597 into main Nov 2, 2026
1 check passed
@Kaz229
Kaz229 deleted the file-repas-kazis branch November 2, 2026 13:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant