Repository navigation
Échanges avec Kazis : repas dictés et sauvegarde - #23
Merged
Merged
Conversation
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.
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 :
Envoi :
et, côté serveur :
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