diff --git a/.ideai/memory/MEMORY.md b/.ideai/memory/MEMORY.md index ce793f5..3346b57 100644 --- a/.ideai/memory/MEMORY.md +++ b/.ideai/memory/MEMORY.md @@ -7,3 +7,5 @@ - [gametime-visual-identity](gametime-visual-identity.md) — memory note gametime-visual-identity - [gametime-ux-execution-nav-and-program-simplification](gametime-ux-execution-nav-and-program-simplification.md) — memory note gametime-ux-execution-nav-and-program-simplification - [gametime-architecture-set-editing](gametime-architecture-set-editing.md) — memory note gametime-architecture-set-editing +- [gametime-ux-score-chrono](gametime-ux-score-chrono.md) — memory note gametime-ux-score-chrono +- [gametime-architecture-score-chrono](gametime-architecture-score-chrono.md) — memory note gametime-architecture-score-chrono diff --git a/.ideai/memory/gametime-architecture-score-chrono.md b/.ideai/memory/gametime-architecture-score-chrono.md new file mode 100644 index 0000000..756a6ed --- /dev/null +++ b/.ideai/memory/gametime-architecture-score-chrono.md @@ -0,0 +1,29 @@ +--- +name: gametime-architecture-score-chrono +description: memory note gametime-architecture-score-chrono +metadata: + type: project +--- +# GameTime — Cadrage Architect : score chronométré (ticket #18, 2026-07-18) + +## Stockage validé +- `actualScoreTimeMs` (nullable) sur `ActiveSetResult` et `WorkoutHistorySetResult`, distinct de `actualScore`. +- `targetScoreTimeMs` sur `ProgramExercise`, `targetScoreTimeMsOverride` sur `WorkoutTemplateExerciseOverride`, distincts de `targetScore`/`targetScoreOverride`. +- Invariant : `manual` utilise `actualScore/targetScore` ; `stopwatch` utilise `actualScoreTimeMs/targetScoreTimeMs` ; jamais les deux familles remplies simultanément. `skipped` implique aucune valeur `actual*` (y compris `actualScoreTimeMs`). + +## État transitoire du chrono +Nouvelle table Drift `ActiveScoreStopwatchState`, sur le même principe que `ActiveRestState` (horodatages persistés, pas de compteur mémoire) : +- clé logique : `activeWorkoutSessionId + programIndex + exerciseIndex + setIndex` +- `status` : `running | stopped` +- `startedAt`, `accumulatedMs`, `stoppedAt?` +- Absence de ligne = chrono non démarré. +- À la validation de la série, copier la durée finale vers `ActiveSetResult.actualScoreTimeMs`. +- Pause de séance : si `running`, figer `accumulatedMs` ; reprise explicite après resume (pas de décompte pendant la pause). +- Terminer la série avec chrono `running` → auto-stop puis enregistrement (comportement UX demandé). + +## Propagation du mode (snapshot pattern existant, réutilisé tel quel) +`ScoreInputMode` (`manual|stopwatch`) : source de vérité sur `Exercise`, copié dans `ProgramExercise`, puis dans le snapshot de séance (`WorkoutTemplateProgram`/exercice snapshotté), puis dans `ActiveSetResult` et `WorkoutHistorySetResult` pour affichage autonome sans dépendre de la source. +**Important** : `WorkoutTemplateExerciseOverride` ne porte JAMAIS le mode lui-même (cohérent avec la règle produit déjà en place : l'override en séance-modèle ne change que des valeurs numériques, jamais la structure/le mode) — seulement `targetScoreTimeMsOverride` en plus des overrides numériques existants. + +## Migration Drift +Le schéma est actuellement en `schemaVersion = 2` (ticket #21). Le ticket #18 doit passer en **3** : ajout des colonnes mode/chrono sur les tables concernées + création de la table `ActiveScoreStopwatchState`, migration `from < 3`. \ No newline at end of file diff --git a/.ideai/memory/gametime-ux-score-chrono.md b/.ideai/memory/gametime-ux-score-chrono.md new file mode 100644 index 0000000..9ff333a --- /dev/null +++ b/.ideai/memory/gametime-ux-score-chrono.md @@ -0,0 +1,42 @@ +--- +name: gametime-ux-score-chrono +description: memory note gametime-ux-score-chrono +metadata: + type: project +--- +# GameTime — Score chronométré (ticket #18, UX 2026-07-18) + +Décision structurante : **le score chronométré est un MODE du Score existant** (`manual` vs `stopwatch`), pas une 4e mesure. Le mental model Temps/Répétitions/Score reste inchangé. + +## Configuration exercice +Si "Score" activé → sous-choix "Mode de saisie" : "Saisie libre" (comportement actuel, label+unité) ou "Chrono intégré" (label par défaut "Temps réalisé", pas d'unité libre, unité implicite "temps"). Badge résumé : "Score chrono" au lieu de "Score" pour ce mode. + +## Configuration programme (personnaliser l'exercice) +Si mesure = Score chrono : champ "Objectif de chrono" optionnel (aide : "Le résultat réel sera mesuré pendant la série."), pas de "cible score" classique. + +## Exécution de séance +Bloc dédié "Chrono score" avec affichage mm:ss.d et boutons Démarrer/Arrêter/Reprendre/Réinitialiser. Comportements clés : +- "Terminer la série" avec chrono non démarré → confirmation "Aucun temps chronométré / Tu n'as pas démarré le chrono score." avec actions "Démarrer le chrono" / "Terminer sans chrono". +- "Terminer la série" avec chrono en cours → arrête automatiquement et enregistre (comportement le plus utile en usage réel). +- "Passer" pendant que le chrono tourne → confirmation "Le chrono en cours sera ignoré." +- Pause de séance → le chrono score se met en pause avec la séance (jamais actif pendant une pause), reprise affiche "Reprendre le chrono". +- Action secondaire "Modifier le temps" pour corriger manuellement (champ min/s/dixièmes), disponible aussi dans la bottom sheet "Modifier la série" de la refonte de navigation (#23). +- Persistance robuste si app fermée pendant que le chrono tourne : horodatage de départ + accumulé, pas un simple compteur mémoire (cohérent avec le reste de l'app). + +## Cumul avec les autres mesures +- Avec Répétitions : oui, cas d'usage principal (ex: "10 suicides · chrono score"). +- Avec Score libre : non — un seul mode de score actif à la fois, pas les deux simultanément. +- Avec Temps (objectif) : possible mais avertissement explicite affiché en configuration si les deux sont actifs ensemble ("Temps sert d'objectif de durée ; Score chrono enregistre le temps réalisé."). + +## Cas limites +- Oubli de démarrer + "Terminer sans chrono" → série Terminée si reps/temps renseignés sinon Passée. +- Réinitialiser le chrono après arrêt avec valeur → confirmation ("Le temps mesuré sera supprimé."). +- Libellés utilisateur : jamais "Score (s)", toujours "Score chrono" dans les listes/badges et "Temps réalisé" dans le détail historique. + +## Découpage proposé par UX +1. Domain · mode de score (enum ScoreInputMode manual/stopwatch, propagation dans tous les snapshots). +2. Exercices/Programmes · configuration Score chrono (choix du mode, objectif de chrono). +3. Exécution · chrono score intégré (démarrer/arrêter/reprendre/réinitialiser, auto-stop, confirmations). +4. Historique/Plan · affichage Score chrono (résumé, détail, édition ponctuelle avec durée manuelle). + +Stockage recommandé par UX (à confirmer par Architect) : champ dédié `actualScoreTimeMs` plutôt que réutiliser `actualScore` en secondes — évite d'ambiguïser une durée avec un score numérique libre, facilite l'affichage mm:ss.d. \ No newline at end of file diff --git a/.ideai/tickets/12/carnet.md b/.ideai/tickets/12/carnet.md index b672a51..f52a273 100644 --- a/.ideai/tickets/12/carnet.md +++ b/.ideai/tickets/12/carnet.md @@ -1,7 +1,7 @@ --- issueRef: "#12" -version: 3 +version: 5 updatedBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"} -updatedAt: 1784301400489 +updatedAt: 1784328818712 --- Portée volontairement limitée : pas de backend à développer. Juste s'assurer que change_log est alimenté de façon fiable à chaque mutation (create/update/delete/archive) sur les agrégats définis en #3, et qu'une interface de sync (no-op) existe pour ne pas avoir à toucher au domaine quand le serveur arrivera. Documenter aussi où s'accrochera la notion de profil utilisateur (futureOwnerProfileId, nullable pour l'instant). \ No newline at end of file diff --git a/.ideai/tickets/12/issue.md b/.ideai/tickets/12/issue.md index 9bd945c..1b7f8c7 100644 --- a/.ideai/tickets/12/issue.md +++ b/.ideai/tickets/12/issue.md @@ -2,7 +2,7 @@ id: "756cfcb4-8f5a-412f-ba13-5038284679bd" number: 12 title: "[DevBackend] Préparation technique de la synchro serveur future" -status: "open" +status: "closed" priority: "low" sprint: null links: [{"target":"#4","kind":"dependsOn"}] @@ -10,7 +10,7 @@ agentRefs: [{"agentId":"10ee045b-1c41-479e-ba03-dceed9edd495","role":"assigned"} createdBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"} updatedBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"} createdAt: 1784301314769 -updatedAt: 1784301400489 -version: 3 +updatedAt: 1784328818712 +version: 5 --- Alimenter la table change_log à chaque mutation d'agrégat. Définir une interface abstraite de synchronisation (no-op pour l'instant, sans backend serveur). Documenter les invariants nécessaires à une future synchro incrémentale multi-device (résolution de conflits, gestion des profils utilisateurs à venir). Pas de développement serveur à ce stade. \ No newline at end of file diff --git a/.ideai/tickets/24/carnet.md b/.ideai/tickets/24/carnet.md new file mode 100644 index 0000000..5550653 --- /dev/null +++ b/.ideai/tickets/24/carnet.md @@ -0,0 +1,6 @@ +--- +issueRef: "#24" +version: 3 +updatedBy: {"kind":"user"} +updatedAt: 1784328229518 +--- diff --git a/.ideai/tickets/24/issue.md b/.ideai/tickets/24/issue.md new file mode 100644 index 0000000..1268ae7 --- /dev/null +++ b/.ideai/tickets/24/issue.md @@ -0,0 +1,16 @@ +--- +id: "3dbea39a-1466-47d9-b12a-95a601ec287d" +number: 24 +title: "Popup \"Exercie ajouté\" qui ne s'enlève pas quand on ajoute un exercice" +status: "open" +priority: "high" +sprint: null +links: [] +agentRefs: [{"agentId":"57695b92-24d0-4876-837c-76116e70a6ae","role":"assigned"}] +createdBy: {"kind":"user"} +updatedBy: {"kind":"user"} +createdAt: 1784328185359 +updatedAt: 1784328229518 +version: 3 +--- +Quand j'ajoute un exercice, la popup "Exercie ajouté" s'affiche mais ne s'enleve pas. Il faudrait qu'elle s'enleve au bout que 3 sec par exemple ou si on appuie sur Personnlaiser \ No newline at end of file diff --git a/.ideai/tickets/25/carnet.md b/.ideai/tickets/25/carnet.md new file mode 100644 index 0000000..7b85911 --- /dev/null +++ b/.ideai/tickets/25/carnet.md @@ -0,0 +1,6 @@ +--- +issueRef: "#25" +version: 1 +updatedBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"} +updatedAt: 1784328239814 +--- diff --git a/.ideai/tickets/25/issue.md b/.ideai/tickets/25/issue.md new file mode 100644 index 0000000..67d5233 --- /dev/null +++ b/.ideai/tickets/25/issue.md @@ -0,0 +1,16 @@ +--- +id: "da78f1df-ff9b-4745-b108-b312eec9efe7" +number: 25 +title: "[DevBackend] Domain et migration pour le score chronométré" +status: "open" +priority: "high" +sprint: null +links: [{"target":"#18","kind":"relatesTo"}] +agentRefs: [{"agentId":"10ee045b-1c41-479e-ba03-dceed9edd495","role":"assigned"}] +createdBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"} +updatedBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"} +createdAt: 1784328239814 +updatedAt: 1784328239814 +version: 1 +--- +Fondation du ticket #18 (score chronométré). Ajouter ScoreInputMode (manual|stopwatch) sur Exercise avec propagation snapshot pattern (ProgramExercise, snapshot de séance, ActiveSetResult, WorkoutHistorySetResult). Ajouter actualScoreTimeMs/targetScoreTimeMs/targetScoreTimeMsOverride distincts de actualScore/targetScore/targetScoreOverride. Nouvelle table Drift ActiveScoreStopwatchState (status running|stopped, startedAt, accumulatedMs, stoppedAt, clé programIndex/exerciseIndex/setIndex). Migration Drift schemaVersion 2 -> 3. Use cases : démarrer/arrêter/reprendre/réinitialiser le chrono d'une série, copie de la durée finale vers ActiveSetResult à la validation. Cf. mémoires "gametime-ux-score-chrono" et "gametime-architecture-score-chrono" pour le détail complet. \ No newline at end of file diff --git a/.ideai/tickets/26/carnet.md b/.ideai/tickets/26/carnet.md new file mode 100644 index 0000000..1fa7919 --- /dev/null +++ b/.ideai/tickets/26/carnet.md @@ -0,0 +1,6 @@ +--- +issueRef: "#26" +version: 2 +updatedBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"} +updatedAt: 1784328255774 +--- diff --git a/.ideai/tickets/26/issue.md b/.ideai/tickets/26/issue.md new file mode 100644 index 0000000..3cb0910 --- /dev/null +++ b/.ideai/tickets/26/issue.md @@ -0,0 +1,16 @@ +--- +id: "37a022d8-b152-48c9-a4d1-72528e2d63af" +number: 26 +title: "[DevFrontend] Configuration du Score chrono (exercice + programme)" +status: "open" +priority: "high" +sprint: null +links: [{"target":"#18","kind":"relatesTo"},{"target":"#25","kind":"dependsOn"}] +agentRefs: [{"agentId":"9933c93a-b8a1-4164-a3bb-7063fdad747d","role":"assigned"}] +createdBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"} +updatedBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"} +createdAt: 1784328244539 +updatedAt: 1784328255774 +version: 2 +--- +Dans la création/édition d'exercice (lib/presentation/exercise_library_screen.dart), si Score est activé, ajouter le sous-choix "Mode de saisie" : Saisie libre (actuel) vs Chrono intégré (label par défaut "Temps réalisé", pas d'unité libre). Badge résumé "Score chrono" pour ce mode. Dans l'écran de personnalisation d'exercice en programme (lib/presentation/program_screen.dart), pour un exercice en Score chrono : champ "Objectif de chrono" optionnel au lieu de "cible score". Avertissement si Temps ET Score chrono actifs simultanément. Cf. mémoire "gametime-ux-score-chrono" pour le détail complet. \ No newline at end of file diff --git a/.ideai/tickets/27/carnet.md b/.ideai/tickets/27/carnet.md new file mode 100644 index 0000000..35a82b9 --- /dev/null +++ b/.ideai/tickets/27/carnet.md @@ -0,0 +1,6 @@ +--- +issueRef: "#27" +version: 3 +updatedBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"} +updatedAt: 1784328260160 +--- diff --git a/.ideai/tickets/27/issue.md b/.ideai/tickets/27/issue.md new file mode 100644 index 0000000..e0c674e --- /dev/null +++ b/.ideai/tickets/27/issue.md @@ -0,0 +1,16 @@ +--- +id: "1b0116c4-ccb5-4d58-b977-fbe122e043fa" +number: 27 +title: "[DevFrontend] Chrono score intégré dans l'exécution de séance" +status: "open" +priority: "high" +sprint: null +links: [{"target":"#18","kind":"relatesTo"},{"target":"#25","kind":"dependsOn"},{"target":"#26","kind":"dependsOn"}] +agentRefs: [{"agentId":"9933c93a-b8a1-4164-a3bb-7063fdad747d","role":"assigned"}] +createdBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"} +updatedBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"} +createdAt: 1784328248186 +updatedAt: 1784328260160 +version: 3 +--- +Dans lib/presentation/workout_execution_screen.dart, bloc dédié "Chrono score" (affichage mm:ss.d, boutons Démarrer/Arrêter/Reprendre/Réinitialiser) quand la mesure Score est en mode chrono. Terminer la série avec chrono non démarré -> confirmation "Aucun temps chronométré" (Démarrer le chrono / Terminer sans chrono). Terminer avec chrono en cours -> auto-stop et enregistrement. Passer pendant que le chrono tourne -> confirmation. Pause de séance -> chrono se met en pause avec la séance. Action secondaire "Modifier le temps" pour correction manuelle. Cf. mémoire "gametime-ux-score-chrono" pour le détail complet des cas limites. \ No newline at end of file diff --git a/.ideai/tickets/28/carnet.md b/.ideai/tickets/28/carnet.md new file mode 100644 index 0000000..09dc37c --- /dev/null +++ b/.ideai/tickets/28/carnet.md @@ -0,0 +1,6 @@ +--- +issueRef: "#28" +version: 2 +updatedBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"} +updatedAt: 1784328260662 +--- diff --git a/.ideai/tickets/28/issue.md b/.ideai/tickets/28/issue.md new file mode 100644 index 0000000..98140b4 --- /dev/null +++ b/.ideai/tickets/28/issue.md @@ -0,0 +1,16 @@ +--- +id: "dd96c2f3-63a7-4e0d-b976-b1e4a2f58240" +number: 28 +title: "[DevFrontend] Affichage du Score chrono dans le plan de séance et l'historique" +status: "open" +priority: "medium" +sprint: null +links: [{"target":"#18","kind":"relatesTo"},{"target":"#27","kind":"dependsOn"}] +agentRefs: [{"agentId":"9933c93a-b8a1-4164-a3bb-7063fdad747d","role":"assigned"}] +createdBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"} +updatedBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"} +createdAt: 1784328251633 +updatedAt: 1784328260662 +version: 2 +--- +Dans le plan de séance (bottom sheet de workout_execution_screen.dart) et l'écran d'historique (history_screen.dart) : afficher "Score chrono" avec la durée formatée (ex "00:38.7") au lieu d'un score numérique brut, avec l'objectif si défini ("00:38.7 / objectif 00:45"). La bottom sheet "Modifier la série" (édition ponctuelle, ticket #23) doit permettre de saisir/corriger manuellement une durée (min/s/dixièmes) pour une série en Score chrono. Cf. mémoire "gametime-ux-score-chrono". \ No newline at end of file diff --git a/.ideai/tickets/29/carnet.md b/.ideai/tickets/29/carnet.md new file mode 100644 index 0000000..b479c87 --- /dev/null +++ b/.ideai/tickets/29/carnet.md @@ -0,0 +1,6 @@ +--- +issueRef: "#29" +version: 3 +updatedBy: {"kind":"user"} +updatedAt: 1784328670579 +--- diff --git a/.ideai/tickets/29/issue.md b/.ideai/tickets/29/issue.md new file mode 100644 index 0000000..a5a85b8 --- /dev/null +++ b/.ideai/tickets/29/issue.md @@ -0,0 +1,16 @@ +--- +id: "89da284b-871c-4e5b-9bfa-ab16f386ba8f" +number: 29 +title: "[Bug] Serie qu'on ne peut pas temriner" +status: "open" +priority: "critical" +sprint: null +links: [] +agentRefs: [] +createdBy: {"kind":"user"} +updatedBy: {"kind":"user"} +createdAt: 1784328426827 +updatedAt: 1784328670579 +version: 3 +--- +Dans un programme j'ai un exercice qui se compose de 3 series, une mesure a suivre de temps, de répétition et un score. J'ai mis le temps cible à 30, le nombre de répétition à 5. Une fois dans ma séance, je suis sur la série 2/3, temps indiqué à 30 s, j'ai mis Répétitions sur 3 et score sur 5, mais quand je clique sur temriner la série, rien ne se passe \ No newline at end of file diff --git a/.ideai/tickets/30/carnet.md b/.ideai/tickets/30/carnet.md new file mode 100644 index 0000000..2539cfb --- /dev/null +++ b/.ideai/tickets/30/carnet.md @@ -0,0 +1,6 @@ +--- +issueRef: "#30" +version: 2 +updatedBy: {"kind":"user"} +updatedAt: 1784328751807 +--- diff --git a/.ideai/tickets/30/issue.md b/.ideai/tickets/30/issue.md new file mode 100644 index 0000000..c69f683 --- /dev/null +++ b/.ideai/tickets/30/issue.md @@ -0,0 +1,16 @@ +--- +id: "d4793c3f-a308-42f3-89e6-335cb2f95310" +number: 30 +title: "Ajouter ajouter des valeurs par défaut à la création d'un exercice" +status: "open" +priority: "critical" +sprint: null +links: [] +agentRefs: [] +createdBy: {"kind":"user"} +updatedBy: {"kind":"user"} +createdAt: 1784328704260 +updatedAt: 1784328751807 +version: 2 +--- +Il faut qu'a la création d'un exercice, il soit obligatoire de donner des valeurs par défaut pour les cibles choisies pour l'exercice. Il faut que ces valeurs oient positives et différentes de 0 pour éviter tout soucis. \ No newline at end of file diff --git a/.ideai/tickets/31/carnet.md b/.ideai/tickets/31/carnet.md new file mode 100644 index 0000000..1650265 --- /dev/null +++ b/.ideai/tickets/31/carnet.md @@ -0,0 +1,6 @@ +--- +issueRef: "#31" +version: 1 +updatedBy: {"kind":"user"} +updatedAt: 1784328786412 +--- diff --git a/.ideai/tickets/31/issue.md b/.ideai/tickets/31/issue.md new file mode 100644 index 0000000..bbbaf10 --- /dev/null +++ b/.ideai/tickets/31/issue.md @@ -0,0 +1,15 @@ +--- +id: "2f55c804-65e7-465a-9296-f66dd6db684a" +number: 31 +title: "[Bug] Fleche retour non fonctionnelle dans une seance en cours" +status: "open" +priority: "high" +sprint: null +links: [] +agentRefs: [] +createdBy: {"kind":"user"} +updatedBy: {"kind":"user"} +createdAt: 1784328786412 +updatedAt: 1784328786412 +version: 1 +--- diff --git a/.ideai/tickets/counter.json b/.ideai/tickets/counter.json index 2ada877..5981494 100644 --- a/.ideai/tickets/counter.json +++ b/.ideai/tickets/counter.json @@ -1,3 +1,3 @@ { - "nextNumber": 24 + "nextNumber": 32 } \ No newline at end of file diff --git a/.ideai/tickets/index.json b/.ideai/tickets/index.json index 037bffc..057ee58 100644 --- a/.ideai/tickets/index.json +++ b/.ideai/tickets/index.json @@ -137,13 +137,13 @@ "issueRef": "#12", "path": "12", "title": "[DevBackend] Préparation technique de la synchro serveur future", - "status": "open", + "status": "closed", "priority": "low", "sprint": null, "assignedAgentIds": [ "10ee045b-1c41-479e-ba03-dceed9edd495" ], - "updatedAt": 1784301400489 + "updatedAt": 1784328818712 }, { "issueRef": "#13", @@ -262,6 +262,96 @@ "9933c93a-b8a1-4164-a3bb-7063fdad747d" ], "updatedAt": 1784327862613 + }, + { + "issueRef": "#24", + "path": "24", + "title": "Popup \"Exercie ajouté\" qui ne s'enlève pas quand on ajoute un exercice", + "status": "open", + "priority": "high", + "sprint": null, + "assignedAgentIds": [ + "57695b92-24d0-4876-837c-76116e70a6ae" + ], + "updatedAt": 1784328229518 + }, + { + "issueRef": "#25", + "path": "25", + "title": "[DevBackend] Domain et migration pour le score chronométré", + "status": "open", + "priority": "high", + "sprint": null, + "assignedAgentIds": [ + "10ee045b-1c41-479e-ba03-dceed9edd495" + ], + "updatedAt": 1784328239814 + }, + { + "issueRef": "#26", + "path": "26", + "title": "[DevFrontend] Configuration du Score chrono (exercice + programme)", + "status": "open", + "priority": "high", + "sprint": null, + "assignedAgentIds": [ + "9933c93a-b8a1-4164-a3bb-7063fdad747d" + ], + "updatedAt": 1784328255774 + }, + { + "issueRef": "#27", + "path": "27", + "title": "[DevFrontend] Chrono score intégré dans l'exécution de séance", + "status": "open", + "priority": "high", + "sprint": null, + "assignedAgentIds": [ + "9933c93a-b8a1-4164-a3bb-7063fdad747d" + ], + "updatedAt": 1784328260160 + }, + { + "issueRef": "#28", + "path": "28", + "title": "[DevFrontend] Affichage du Score chrono dans le plan de séance et l'historique", + "status": "open", + "priority": "medium", + "sprint": null, + "assignedAgentIds": [ + "9933c93a-b8a1-4164-a3bb-7063fdad747d" + ], + "updatedAt": 1784328260662 + }, + { + "issueRef": "#29", + "path": "29", + "title": "[Bug] Serie qu'on ne peut pas temriner", + "status": "open", + "priority": "critical", + "sprint": null, + "assignedAgentIds": [], + "updatedAt": 1784328670579 + }, + { + "issueRef": "#30", + "path": "30", + "title": "Ajouter ajouter des valeurs par défaut à la création d'un exercice", + "status": "open", + "priority": "critical", + "sprint": null, + "assignedAgentIds": [], + "updatedAt": 1784328751807 + }, + { + "issueRef": "#31", + "path": "31", + "title": "[Bug] Fleche retour non fonctionnelle dans une seance en cours", + "status": "open", + "priority": "high", + "sprint": null, + "assignedAgentIds": [], + "updatedAt": 1784328786412 } ] } \ No newline at end of file