Commit Graph

32 Commits

Author SHA1 Message Date
b7ba885b07 fix(exercice): suppression d'exercice ne casse plus les programmes (ticket #62)
Corrige ExerciseUseCases.delete() qui cascadait à tort vers les
ProgramExercise référents, violant le pattern snapshot (un exercice
supprimé ne doit jamais affecter les programmes déjà composés). Ajoute
le test de régression associé. Met à jour le texte de confirmation
_confirmDelete dans exercise_library_screen.dart, devenu incohérent
avec ce fix (il affirmait à tort que la suppression retirerait
l'exercice des programmes). Trouvé pendant la QA finale du chantier
"Exercice à plusieurs étapes" (#54). flutter analyze propre (mêmes
infos préexistantes), 103/103 tests verts, build APK debug validé.
Dernier ticket du chantier (#56/#58/#59/#60/#61/#62 tous faits).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-19 20:56:28 +02:00
8bf4f89276 feat(exercice): plan de séance et historique avec résultats d'étapes (ticket #61)
Affiche le plan de séance et l'historique avec les résultats par
étape sur workout_execution_screen.dart et history_screen.dart.
flutter pub get OK, dart format appliqué (3 fichiers reformatés),
analyze propre (mêmes infos préexistantes), 102/102 tests verts,
build APK debug validé. Dernier ticket UI du chantier "Exercice à
plusieurs étapes" (#54) — il ne reste que la QA finale (#62).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-19 20:19:01 +02:00
6947cee30c feat(exercice): exécution de séance avec module séquence et bips (ticket #60)
Ajoute le lecteur de bips d'étapes (presentation/exercise_step_audio.dart,
port ExerciseStepAudioCuePlayer injectable en test, jamais le vrai
audioplayers en test) et les fichiers audio associés
(assets/audio/step_countdown_short.wav, step_completion_long.wav).
Câble ActiveExerciseStepUseCases dans app_bootstrap.dart et l'expose à
WorkoutExecutionScreen. Les appels audio réels sont protégés par un
try/catch qui log sans jamais bloquer la progression d'étape. flutter
pub get OK (ajout audioplayers), analyze propre (mêmes infos
préexistantes + 2 nouvelles use_build_context_synchronously, non
bloquantes), 100/100 tests verts, build APK debug validé.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-19 20:07:56 +02:00
ebba22db56 feat(exercice): exécution persistante des étapes et éditeur d'étapes (tickets #58, #59)
Ajoute la persistance de l'exécution par étapes avec résultats par
passage (ports, use cases, entités, modèle Drift avec migration) et
l'éditeur d'exercice avec séquence d'étapes sur
exercise_library_screen.dart. Développés dans le même worktree
partagé par DevBackend et DevFrontend ; commit combiné plutôt que
séparé car les fakes de repository de test corrigés (nouvelles
interfaces #58) touchent plusieurs écrans sans lien avec l'éditeur
lui-même (historique, accueil, exécution, séance-modèle). Corrige au
passage un ListTile sans ancêtre Material dans le nouvel éditeur
d'étapes (Material(type: MaterialType.transparency)). flutter pub get
OK, build_runner OK, analyze propre (mêmes infos préexistantes),
93/93 tests verts, build APK debug validé.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-19 19:52:43 +02:00
1aa2304328 fix(exercice): score par défaut à 0 et affichage des répétitions en séance (tickets #44, #45)
Autorise un score par défaut à 0 (#44) et corrige l'affichage des
répétitions à 0 pendant l'exécution au lieu de la vraie cible (#45),
sur exercise_library_screen.dart et workout_execution_screen.dart,
avec les ajustements domain/use cases associés. flutter analyze
propre (mêmes 8 infos préexistantes), 79/79 tests verts, build APK
debug validé.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-18 22:35:52 +02:00
3605b3d99a fix(execution): carrousel de médias et chrono du score (tickets #41, #42, #43)
Corrige l'affichage des images (#41) et de la vidéo (#42) dans le
carrousel de médias, et le format du chrono de score qui n'affichait
que les secondes (#43) sur workout_execution_screen.dart. Ajoute la
dépendance video_player (2.13.0) pour la lecture vidéo. Ajuste
home_screen.dart, history_screen.dart et workout_template_screen.dart
en conséquence. flutter analyze propre, flutter test 77/77 vert (plus
aucun hang), pub get résolu.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-18 22:28:52 +02:00
1a315d586f feat(ui): affichage du chrono de score dans le plan et l'historique (ticket #28)
Affiche le chrono du score chronométré sur workout_execution_screen.dart
(plan de séance) et history_screen.dart (historique). flutter analyze
propre, 77/77 tests verts, build APK debug validé. Dernier ticket du
backlog — clôture aussi le ticket parent #18 (score chronométré).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-18 14:40:37 +02:00
cdcb0beead feat(exécution): chrono du score chronométré pendant la séance (ticket #27)
Ajoute le chrono du score chronométré (fondation domain/config des
tickets #25/#26) sur workout_execution_screen.dart, avec les use
cases associés. flutter analyze propre, 75/75 tests verts, build APK
debug validé.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-18 14:34:36 +02:00
bdd7877ea5 feat(exercice): icône d'exercice (ticket #38)
Étend le modèle Drift (tables.dart, app_database.dart/.g.dart), les
entités/use cases/repositories et les écrans bibliothèque d'exercices
et programme pour associer une icône à chaque exercice. flutter
analyze propre, 72/72 tests verts, build APK debug validé. Dernier
ticket du backlog.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-18 14:25:26 +02:00
ff6b79b66e feat(exercice): affichage des médias pendant l'exécution (ticket #36)
Expose la galerie d'images d'exercice (backend du ticket #35) pendant
l'exécution de séance sur workout_execution_screen.dart et
program_screen.dart, avec les ajustements domain/use cases/repositories
nécessaires. flutter analyze propre, 67/67 tests verts, build APK
debug validé.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-18 14:16:31 +02:00
8bda4758f2 feat(exercice): galerie de 5 images par exercice (ticket #35)
Étend le modèle Drift (tables.dart, app_database.dart/.g.dart), les
entités/use cases/repositories et exercise_library_screen.dart pour
supporter jusqu'à 5 images par exercice au lieu d'une seule. flutter
analyze propre, 63/63 tests verts, build APK debug validé.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-18 14:02:40 +02:00
d1efb41844 feat(ui): compteur de série visible pendant l'exécution (ticket #34)
Affiche le compteur de série en cours sur workout_execution_screen.dart.
flutter analyze propre, 58/58 tests verts, build APK debug validé.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-18 10:38:46 +02:00
1a0d01f038 feat(gestion): suppression en cascade exercice/programme/séance-modèle (ticket #37)
Ajoute la suppression avec gestion des dépendances en cascade sur les
écrans bibliothèque d'exercices, programme et séance-modèle, avec les
use cases et le bootstrap applicatif associés. flutter analyze propre,
58/58 tests verts, build APK debug validé.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-18 10:33:06 +02:00
88af0387da feat(exercice): valeurs par défaut d'exercice (tickets #39/#40, parent #30)
Étend le modèle Drift (tables.dart, app_database.dart/.g.dart), les
entités/use cases/repositories et les écrans bibliothèque d'exercices
et programme pour supporter des valeurs par défaut par exercice
(répétitions/temps/poids proposés à la création d'une série).
flutter analyze propre, 51/51 tests verts, build APK debug validé.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-18 10:18:31 +02:00
82226677a9 fix(ui): popup séance déjà en cours (ticket #33)
Corrige le popup averti quand une séance est déjà en cours sur
workout_template_screen.dart. flutter analyze propre, 46/46 tests
verts, build APK debug validé. Ticket laissé en QA : validation
manuelle sur APK par l'utilisateur avant clôture. Clôture le sprint
Bug resolution (tickets #24, #29, #31, #32, #33).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-18 09:57:07 +02:00
212418e062 fix(ui): bandeau de reprise de séance en cours (ticket #32)
Ajoute/corrige le bandeau de reprise sur home_screen.dart, avec les
ajustements de bootstrap applicatif nécessaires, et sa couverture de
tests. flutter analyze propre, 45/45 tests verts, build APK debug
validé. Ticket laissé en QA : validation manuelle sur APK par
l'utilisateur avant clôture.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-18 09:52:40 +02:00
3a2d26ac49 fix(ui): popup de confirmation d'ajout d'exercice (ticket #24)
Corrige le popup de confirmation quand un exercice est ajouté sur
program_screen.dart. flutter analyze propre, 43/43 tests verts, build
APK debug validé. Ticket laissé en QA : validation manuelle sur APK
par l'utilisateur avant clôture.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-18 09:23:12 +02:00
1e402a55c6 fix(execution): série qu'on ne pouvait pas terminer (ticket #29)
Corrige le blocage empêchant de terminer une série sur
workout_execution_screen.dart. flutter analyze propre, 42/42 tests
verts, build APK debug validé. Ticket laissé en QA : validation
manuelle sur APK par l'utilisateur avant clôture.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-18 09:12:44 +02:00
2f732aa1b1 feat(ui): configuration du score chronométré (ticket #26)
Ajoute la configuration du score chronométré sur exercise_library_screen.dart
et program_screen.dart, s'appuyant sur les fondations domain du ticket
#25. flutter analyze propre, 41/41 tests verts, build APK debug validé.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-18 09:08:16 +02:00
d521bdffb6 feat(domain): fondation domain du score chronométré (ticket #25)
Étend le modèle Drift (tables.dart, app_database.dart/.g.dart), les
entités du domaine, les ports et use cases pour poser les fondations
du score chronométré. build_runner OK, flutter analyze propre, 39/39
tests verts, build APK debug validé.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-18 01:10:14 +02:00
05a935afc1 fix(execution): comportement de la flèche retour en séance (ticket #31)
Corrige la flèche de retour sur workout_execution_screen.dart : elle
ouvre désormais le choix pause/abandon ou quitter-et-sauvegarder au
lieu de ne rien faire. flutter analyze propre, 36/36 tests verts,
build APK debug validé.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-18 00:58:10 +02:00
c2f807e588 feat(ui): édition ponctuelle des séries en séance (ticket #23)
Expose l'édition ponctuelle des séries (backend du ticket #21) sur
workout_execution_screen.dart, sans impacter le modèle de séance.
flutter analyze propre, 33/33 tests verts, build APK debug validé.
Clôture le lot navigation libre / programme simplifié (tickets #20 à #23).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-18 00:37:57 +02:00
a936478413 feat(ui): navigation libre dans le plan de séance (ticket #22)
Permet de circuler librement entre les exercices/séries du plan de
séance sur workout_execution_screen.dart, au lieu d'un déroulé
strictement linéaire. flutter analyze propre, 31/31 tests verts, build
APK debug validé.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-18 00:30:41 +02:00
bf1134d4ff feat(ui): programme simplifié en cartes compactes (ticket #20)
Simplifie l'affichage du programme sur program_screen.dart avec des
cartes compactes. flutter analyze propre, 30/30 tests verts, build APK
debug validé.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-18 00:24:29 +02:00
cb5cfc48ff fix(media): sélecteur de média pour les exercices (ticket #15)
Corrige/ajoute le sélecteur de média sur exercise_library_screen.dart
suite aux retours de QA. flutter analyze propre (1 warning mineur
"paramètre inutilisé" dans un test, sans impact), 27/27 tests verts,
build APK debug validé.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-17 22:22:59 +02:00
576238b490 fix(execution): reprise en temps réel de la séance en cours (ticket #14)
Corrige la reprise de séance sur workout_execution_screen.dart suite
aux retours de QA. flutter analyze propre, 26/26 tests verts, build
APK debug validé.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-17 22:18:24 +02:00
9f9d0dbe3b fix(persistence): correctifs post-QA sur les repositories (ticket #13)
Corrige les ports, use cases, entités et l'implémentation Drift des
repositories suite aux retours de QA. flutter analyze propre, 24/24
tests verts, build APK debug validé.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-17 22:14:07 +02:00
34b3638ce3 feat(ui): écran Historique des séances
Ajoute l'écran d'historique des séances (presentation/history_screen.dart),
avec les ajustements application/domaine/repositories nécessaires et la
navigation depuis l'accueil. Complète le dernier écran du périmètre UI.
flutter analyze propre, 18/18 tests verts, build APK debug validé.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-17 19:17:55 +02:00
bfd727a6a2 feat(ui): écran Exécution de séance
Ajoute l'écran d'exécution de séance (presentation/workout_execution_screen.dart),
avec les ajustements application/domaine/repositories nécessaires et la
navigation depuis l'accueil et l'écran séance-modèle. flutter analyze
propre, 15/15 tests verts, build APK debug validé.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-17 19:08:23 +02:00
89d89a3005 feat(ui): écran Composition de séance-modèle
Ajoute l'écran de composition de séance-modèle
(presentation/workout_template_screen.dart), avec les ajustements
application/domaine/repositories nécessaires et la navigation depuis
l'accueil. flutter analyze propre, 12/12 tests verts, build APK debug
validé.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-17 18:59:59 +02:00
1ae6248fb4 feat(ui): écran Création/édition de programme
Ajoute l'écran de programme (presentation/program_screen.dart) et un
écran d'accueil (presentation/home_screen.dart) pour la navigation,
avec les ajustements application/domaine/repositories nécessaires.
flutter analyze propre, 11/11 tests verts, build APK debug validé.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-17 18:51:49 +02:00
318fc6fcb9 feat(ui): écran Bibliothèque d'exercices
Ajoute l'écran de bibliothèque d'exercices (presentation/exercise_library_screen.dart)
et ajuste la couche application/domaine (bootstrap, ports, use cases,
entités, repositories Drift) pour l'alimenter. flutter analyze propre,
9/9 tests verts, build APK debug validé.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-17 18:42:41 +02:00