- Mise à jour icônes launcher Android (toutes densités)
- Mise à jour icônes notification ongoing_gt
- Mise à jour assets source icons
- Pour phone et watch
- Mise à jour namespace et applicationId dans build.gradle.kts
- Déplacement des fichiers MainActivity.kt, session/, watch/ vers com/idea/gametime/
- Ajout garde-fou usesCleartextTraffic uniquement en debug/profile
- Nettoyage .gitignore pour exclure .gradle/ au niveau racine
Préparation ticket #261 release Android closed test
- Implémente la couche de synchronisation avec le serveur
- Ajoute les fixtures versionnées pour les tests
- Met à jour Drift database et repositories pour le support sync
- Améliore les tests de synchronisation
- Corrige et améliore le watch companion pour la collecte de métriques
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
L'état IdeA (agents, tickets, mémoire, conversations, run) est local par
agent/branche et ne doit pas être synchronisé via git ni fusionné entre
branches.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Remplace la liste partielle de sous-chemins ignorés par un ignore complet
du répertoire .ideai (déjà retiré du suivi git dans le commit précédent).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
L'état IdeA (agents, tickets, mémoire, conversations, run) est local par
agent/branche et ne doit pas être synchronisé via git ni fusionné entre
branches.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Cloture le ticket #183 (QA), ajoute les tickets #186 et #187,
re-attribue les permissions MCP entre agents.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Aligne http_api_client.dart avec la config watch (build.gradle.kts,
WatchHeartRateCollector) et couvre le comportement par des tests.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Fixe .gitignore pour exclure .build-home/ et .pub-cache-local/ des
environnements locaux de build (bruit non versionne). Documente le
checklist d'integration serveur et met a jour le README en consequence.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
QA vert cible. Complete le correctif precedent fix/distance-calories-health-services, insuffisant sur le cas seance neuve.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Corrige l'absence de distance/calories alors que la FC fonctionnait. Perimetre QA vert cible, sans changement UI.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Delta final apres QA vert : renforce la robustesse du pull des programmes quand l'exercice source reference par sourceExerciseId est absent.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Complement #183 : fusion de la strategie Health Services au niveau seance pour eviter que le premier exercice fige tout le choix de strategie sur la seance.
Fix#185 : nullification defensive de sourceExerciseId au pull quand l'exercice source est absent, pour ne plus casser le chargement des programmes apres suppression d'un exercice.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Finalise #183 : modele/persistance des types metier d'exercice, mapping vers la strategie Health Services, propagation du payload dans le contrat watch bridge et consommation cote Kotlin montre. Perimetre complet QA vert.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Cote montre pour #180 (vibration timerFinished plus longue et plus forte) et #179 (contrat/collecte des donnees stats vers le telephone).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
UI telephone pour #179 (graphes/statistiques par etape, serie, exercice, seance) et #183 (choix des types metier d'exercice, hors pont Health Services).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Reduit le cout radio des samples live et la cadence des projections telephone -> montre (#179-#183).
Restaure les statistiques live FC/distance/calories et le maintien foreground/ongoing activity (#184-#185).
Fiabilise le demarrage de seance et l'orchestration des permissions montre (#187).
Renforce la resynchronisation des statistiques live et du score apres perte puis retour de connexion (#188-#189).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Correctifs regroupes: memes hunks de drift_repositories.dart concernes par les deux tickets, decoupage atomique par ticket non applicable proprement.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Regroupe l'état de travail en cours réalisé dans un même worktree sur
plusieurs tickets/sprints (#85, #136, #145, #155-160, #162-164),
mélangeant des tickets QA et inProgress. Ne constitue pas une feature
terminée : commit de sauvegarde avant triage/split par ticket en
branches feature/* dédiées. Exclut les dossiers d'environnement de
build locaux et le heap dump parasite (.gitignore mis à jour).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Intègre le correctif de throttling des demandes de permissions
READ_HEART_RATE / ACTIVITY_RECOGNITION côté montre, qui restaient
bloquées à granted=false après une première tentative. QA verte.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
READ_HEART_RATE et ACTIVITY_RECOGNITION restaient bloquées à granted=false
à cause d'un verrou permanent après une première tentative de demande
("sensor permission request already attempted" en boucle dans les logs).
Remplace le verrou par sensorPermissionRequestInFlight avec throttling et
reprise au callback de permission, pour permettre de redemander sans
relancer l'app.
QA verte sur ce périmètre ciblé.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Intègre la mise en conformité avec le cadrage #155/#144/#142 (FC live
bridge montre -> téléphone, affichage écran de séance montre) ainsi que
la correction de la procédure de build/install montre. QA verte.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Corrige le script de build montre pour prioriser l'artefact canonique
watch_app/build/app/outputs/flutter-apk/app-release.apk et ne plus
recopier un fichier sur lui-même ; évite de réinstaller par erreur
l'artefact résiduel watch_app/build/watch_app/app/outputs/....
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Met en conformité l'implémentation avec le cadrage produit acté
(#155, #144, #142) : diffusion de la FC live depuis la montre vers le
téléphone via le bridge, affichage sur l'écran de séance montre
(watch_session_screen) en plus de l'écran Stats existant.
Validé : bridge fonctionnel bout-en-bout, tests watch_session_screen OK.
Artefact canonique d'installation montre confirmé :
watch_app/build/app/outputs/flutter-apk/app-release.apk
(package com.gametime.app) ; ne pas utiliser l'artefact résiduel
watch_app/build/watch_app/app/outputs/flutter-apk/app-release.apk.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Intègre le correctif de packaging/signature de watch_app (applicationId
com.gametime.watch, signing partagé nettoyé) qui répare la détection du
bridge côté montre après le reset/remerge de develop. QA verte.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Répare la régression de packaging introduite par le reset/remerge de
develop : l'APK montre était packagée avec com.gametime.app au lieu de
com.gametime.watch (namespace correct mais applicationId hérité du
téléphone), ce qui cassait la détection du bridge. Aligne applicationId
sur com.gametime.watch, nettoie la config de signing partagée sur les
deux modules android/app et watch_app/android/app, et ajuste
use_cases + watch_session_screen en conséquence.
Validé : APK montre release package = com.gametime.watch, même SHA-256
de certificat sur les deux APKs (70cc69e8...45c7815), tests use_cases et
watch_session_screen OK.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Finalise l'intégration de feature/ticket91-wear-os-watch-sync (clôture
lot #91 : fréquence cardiaque live, notifications de séance, finitions
montre) sur develop@fda82d7, via la branche de résolution
integration/ticket91-into-develop. Conflits résolus sur entities.dart,
workout_execution_screen.dart et watch_companion_projection_test.dart
selon l'arbitrage Architect (base ticket91, invariants chronos réinjectés).
QA verte sur comportement et builds.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Intègre le commit de clôture du lot #91 resté non fusionné. Conflits
attendus sur entities.dart, workout_execution_screen.dart et
watch_companion_projection_test.dart : arbitrage Architect - garder la
base feature/ticket91-wear-os-watch-sync sur ces 3 fichiers puis réinjecter
uniquement les invariants chronos utiles (Durée / Temps réalisé).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
# Conflicts:
# lib/domain/entities.dart
# lib/presentation/workout_execution_screen.dart
# test/application/watch_companion_projection_test.dart