docs(ideai): mémoire chaînage de chronos, clôture ticket #75, cadrage #76-#79

Ajoute les notes mémoire d'architecture et UX pour l'auto-enchaînement
des chronos d'étapes, clôture le ticket #75, reflète les tickets
#63/#70, ajoute le cadrage des tickets #76 à #79.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-20 13:42:54 +02:00
parent e61365277b
commit d771bf672f
19 changed files with 615 additions and 19 deletions

View File

@ -1,6 +1,6 @@
---
issueRef: "#63"
version: 8
updatedBy: {"kind":"user"}
updatedAt: 1784482673684
version: 9
updatedBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"}
updatedAt: 1784533228302
---

View File

@ -2,15 +2,15 @@
id: "17f54d9f-0317-429d-a275-480966976ced"
number: 63
title: "Ajouter les features déjà présentes sur le serveur au client"
status: "open"
status: "qa"
priority: "medium"
sprint: "4237adfd-91eb-45ff-9f32-6ce1daa39822"
links: [{"target":"#57","kind":"dependsOn"},{"target":"#46","kind":"dependsOn"}]
agentRefs: [{"agentId":"57695b92-24d0-4876-837c-76116e70a6ae","role":"assigned"}]
createdBy: {"kind":"user"}
updatedBy: {"kind":"user"}
updatedBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"}
createdAt: 1784482089895
updatedAt: 1784482673684
version: 8
updatedAt: 1784533228302
version: 9
---
Une première version du serveur est disponible. J'aimerais que les features serveur soient ajouté à l'application (j'entends ici l'ajout de la totalité de la stack de la logique méier comme la sync des historiques etc, à la connexion). Pour la connexion, comme indiqué dans le ticket #57, la connexion n'est pas obligatoire pour l'acces à l'applicaiton, elle ne doit être que optionnelle, je pense entre autre à un menu "Profile" à créer. Le bon fonctionnement de l'application reste prioritaire sur le serveur, à savoir que le serveur sert l'applciation et pas l'inverse, c'est a dire que si une structure de donnée est actuellement différente entre le serveur et l'applciation, alors il faut modifier le serveur pour qu'il accepte la donnée du client. Je pense par exemple aux exercices, entre la création serveur et la réalisation du ticket, je pense que la forme des exercice a été modifiée (ajout entre autre des étapes dans une serie d'un exercice), il faudra alors adapter le serveur à ça.

View File

@ -1,6 +1,6 @@
---
issueRef: "#70"
version: 1
updatedBy: {"kind":"agent","agent_id":"f8f40941-ecf7-4830-b9de-8818a099f448"}
updatedAt: 1784488373778
version: 2
updatedBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"}
updatedAt: 1784533224103
---

View File

@ -2,15 +2,15 @@
id: "cb93ee24-0041-4926-b0c6-3ab26aab46ec"
number: 70
title: "[QA] Validation client online offline-first"
status: "open"
status: "qa"
priority: "medium"
sprint: null
links: [{"target":"#63","kind":"relatesTo"},{"target":"#68","kind":"dependsOn"},{"target":"#69","kind":"dependsOn"}]
agentRefs: [{"agentId":"7efa512f-3b3a-47b5-ade0-a2dd13073055","role":"assigned"}]
createdBy: {"kind":"agent","agent_id":"f8f40941-ecf7-4830-b9de-8818a099f448"}
updatedBy: {"kind":"agent","agent_id":"f8f40941-ecf7-4830-b9de-8818a099f448"}
updatedBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"}
createdAt: 1784488373778
updatedAt: 1784488373778
version: 1
updatedAt: 1784533224103
version: 2
---
Valider le chantier client online : app utilisable sans compte, login/register/logout optionnels, tokens persistés, profil cache hors ligne, sync push/pull LWW, erreurs réseau silencieuses, retry différé, partage sortant ciblé, inbox, accept/decline/revoke, import local offline, absence de régression sur les parcours locaux exercices/programmes/séances/historique.

View File

@ -0,0 +1,6 @@
---
issueRef: "#75"
version: 1
updatedBy: {"kind":"agent","agent_id":"f8f40941-ecf7-4830-b9de-8818a099f448"}
updatedAt: 1784547220555
---

View File

@ -0,0 +1,16 @@
---
id: "0197daa2-674e-4b03-9142-d0180874ffc4"
number: 75
title: "[DevBackend] Modèle et migration pour auto-enchaînement des chronos d'étapes"
status: "open"
priority: "medium"
sprint: null
links: [{"target":"#73","kind":"relatesTo"}]
agentRefs: [{"agentId":"10ee045b-1c41-479e-ba03-dceed9edd495","role":"assigned"}]
createdBy: {"kind":"agent","agent_id":"f8f40941-ecf7-4830-b9de-8818a099f448"}
updatedBy: {"kind":"agent","agent_id":"f8f40941-ecf7-4830-b9de-8818a099f448"}
createdAt: 1784547220555
updatedAt: 1784547220555
version: 1
---
Ajouter le réglage `autoStartNextTimedStep` côté modèle. Sur `Exercise` : bool non-null par défaut true. Sur `ProgramExercise` : `autoStartNextTimedStepSnapshot` non-null + `autoStartNextTimedStepOverride` nullable pour revenir au réglage exercice snapshoté. Sur `WorkoutTemplateExerciseOverride` : `autoStartNextTimedStepOverride` nullable, décision consciente d'élargir l'override séance à un comportement booléen non structurel. Propager dans `ProgramExerciseConfig`, `_ProgramExerciseDraft`, snapshots JSON et mappers Drift. Migration Drift schemaVersion 13 -> 14 avec defaults true et colonnes nullable d'override.

View File

@ -0,0 +1,6 @@
---
issueRef: "#76"
version: 1
updatedBy: {"kind":"agent","agent_id":"f8f40941-ecf7-4830-b9de-8818a099f448"}
updatedAt: 1784547227107
---

View File

@ -0,0 +1,16 @@
---
id: "8896c34d-bc57-424b-967f-d3ef767185e1"
number: 76
title: "[DevBackend] Résolution effective et auto-advance des chronos d'étapes"
status: "open"
priority: "medium"
sprint: null
links: [{"target":"#73","kind":"relatesTo"},{"target":"#75","kind":"dependsOn"}]
agentRefs: [{"agentId":"10ee045b-1c41-479e-ba03-dceed9edd495","role":"assigned"}]
createdBy: {"kind":"agent","agent_id":"f8f40941-ecf7-4830-b9de-8818a099f448"}
updatedBy: {"kind":"agent","agent_id":"f8f40941-ecf7-4830-b9de-8818a099f448"}
createdAt: 1784547227107
updatedAt: 1784547227107
version: 1
---
Adapter la résolution de séance et `ActiveExerciseStepUseCases` pour appliquer `séance > programme > exercice` à `autoStartNextTimedStep`. Inclure la valeur effective dans le snapshot résolu ou dans `_StepSequenceContext`. Modifier `_advanceState` et `_autoAdvanceElapsedTimers` : si une étape Temps expirée est suivie d'une étape Temps et que la valeur effective est false, enregistrer le résultat de l'étape expirée puis s'arrêter sur l'étape suivante en `stoppedTimer`, sans consommer l'overflow ni démarrer le chrono suivant. Conserver l'auto-enchaînement existant quand true.

View File

@ -0,0 +1,6 @@
---
issueRef: "#77"
version: 1
updatedBy: {"kind":"agent","agent_id":"f8f40941-ecf7-4830-b9de-8818a099f448"}
updatedAt: 1784547232756
---

View File

@ -0,0 +1,16 @@
---
id: "835be070-248f-42fb-b996-4df86445f154"
number: 77
title: "[DevFrontend] Réglages auto-enchaînement exercice, programme et séance"
status: "open"
priority: "medium"
sprint: null
links: [{"target":"#73","kind":"relatesTo"},{"target":"#75","kind":"dependsOn"}]
agentRefs: [{"agentId":"9933c93a-b8a1-4164-a3bb-7063fdad747d","role":"assigned"}]
createdBy: {"kind":"agent","agent_id":"f8f40941-ecf7-4830-b9de-8818a099f448"}
updatedBy: {"kind":"agent","agent_id":"f8f40941-ecf7-4830-b9de-8818a099f448"}
createdAt: 1784547232756
updatedAt: 1784547232756
version: 1
---
Ajouter l'UI du réglage `Enchaîner automatiquement les chronos consécutifs` aux trois niveaux : `ExerciseFormScreen` valeur de base visible si séquence activée; `ProgramExerciseCustomizationScreen` override nullable avec indication héritage et action `Revenir au réglage de l'exercice`; `WorkoutTemplateProgramDetailScreen` override nullable avec action `Revenir au réglage du programme`. Attention à propager le champ dans `ProgramExerciseConfig` et `_ProgramExerciseDraft` comme pour `exerciseStepsSnapshot` corrigé au #72.

View File

@ -0,0 +1,6 @@
---
issueRef: "#78"
version: 1
updatedBy: {"kind":"agent","agent_id":"f8f40941-ecf7-4830-b9de-8818a099f448"}
updatedAt: 1784547239512
---

View File

@ -0,0 +1,16 @@
---
id: "e7769413-3d3d-48af-b55e-361c69aef4b2"
number: 78
title: "[DevFrontend] État d'exécution Chrono suivant prêt"
status: "open"
priority: "medium"
sprint: null
links: [{"target":"#73","kind":"relatesTo"},{"target":"#76","kind":"dependsOn"},{"target":"#77","kind":"dependsOn"}]
agentRefs: [{"agentId":"9933c93a-b8a1-4164-a3bb-7063fdad747d","role":"assigned"}]
createdBy: {"kind":"agent","agent_id":"f8f40941-ecf7-4830-b9de-8818a099f448"}
updatedBy: {"kind":"agent","agent_id":"f8f40941-ecf7-4830-b9de-8818a099f448"}
createdAt: 1784547239512
updatedAt: 1784547239512
version: 1
---
Adapter l'écran d'exécution des étapes pour afficher `Chrono suivant prêt` quand une étape Temps est prête après une étape Temps et que l'auto-enchaînement effectif est désactivé. Réutiliser `stoppedTimer` côté domaine; l'UI dérive le libellé/bouton depuis l'étape courante, le résultat précédent et la valeur effective. Bouton `Démarrer le chrono`, pas de pause séance, pas de rouge/erreur. Après kill/reprise, l'écran doit revenir à cet état sans démarrage automatique.

View File

@ -0,0 +1,6 @@
---
issueRef: "#79"
version: 1
updatedBy: {"kind":"agent","agent_id":"f8f40941-ecf7-4830-b9de-8818a099f448"}
updatedAt: 1784547247343
---

View File

@ -0,0 +1,16 @@
---
id: "107fc29b-cd1d-40cc-9505-61180d081022"
number: 79
title: "[QA] Validation auto-enchaînement configurable des chronos d'étapes"
status: "open"
priority: "medium"
sprint: null
links: [{"target":"#73","kind":"relatesTo"},{"target":"#78","kind":"dependsOn"}]
agentRefs: [{"agentId":"7efa512f-3b3a-47b5-ade0-a2dd13073055","role":"assigned"}]
createdBy: {"kind":"agent","agent_id":"f8f40941-ecf7-4830-b9de-8818a099f448"}
updatedBy: {"kind":"agent","agent_id":"f8f40941-ecf7-4830-b9de-8818a099f448"}
createdAt: 1784547247343
updatedAt: 1784547247343
version: 1
---
Valider le réglage d'auto-enchaînement des chronos d'étapes : défaut true sur anciens/nouveaux exercices, override programme puis séance avec retour héritage, résolution séance > programme > exercice, comportement Temps->Temps true et false, plusieurs chronos consécutifs, fin de passage vers passage suivant, pause/reprise/kill app dans l'état `Chrono suivant prêt`, absence de régression sur étapes répétitions et skips.

View File

@ -1,3 +1,3 @@
{
"nextNumber": 75
"nextNumber": 80
}

View File

@ -703,13 +703,13 @@
"issueRef": "#63",
"path": "63",
"title": "Ajouter les features déjà présentes sur le serveur au client",
"status": "open",
"status": "qa",
"priority": "medium",
"sprint": "4237adfd-91eb-45ff-9f32-6ce1daa39822",
"assignedAgentIds": [
"57695b92-24d0-4876-837c-76116e70a6ae"
],
"updatedAt": 1784482673684
"updatedAt": 1784533228302
},
{
"issueRef": "#64",
@ -787,13 +787,13 @@
"issueRef": "#70",
"path": "70",
"title": "[QA] Validation client online offline-first",
"status": "open",
"status": "qa",
"priority": "medium",
"sprint": null,
"assignedAgentIds": [
"7efa512f-3b3a-47b5-ade0-a2dd13073055"
],
"updatedAt": 1784488373778
"updatedAt": 1784533224103
},
{
"issueRef": "#71",
@ -842,6 +842,66 @@
"57695b92-24d0-4876-837c-76116e70a6ae"
],
"updatedAt": 1784526657602
},
{
"issueRef": "#75",
"path": "75",
"title": "[DevBackend] Modèle et migration pour auto-enchaînement des chronos d'étapes",
"status": "open",
"priority": "medium",
"sprint": null,
"assignedAgentIds": [
"10ee045b-1c41-479e-ba03-dceed9edd495"
],
"updatedAt": 1784547220555
},
{
"issueRef": "#76",
"path": "76",
"title": "[DevBackend] Résolution effective et auto-advance des chronos d'étapes",
"status": "open",
"priority": "medium",
"sprint": null,
"assignedAgentIds": [
"10ee045b-1c41-479e-ba03-dceed9edd495"
],
"updatedAt": 1784547227107
},
{
"issueRef": "#77",
"path": "77",
"title": "[DevFrontend] Réglages auto-enchaînement exercice, programme et séance",
"status": "open",
"priority": "medium",
"sprint": null,
"assignedAgentIds": [
"9933c93a-b8a1-4164-a3bb-7063fdad747d"
],
"updatedAt": 1784547232756
},
{
"issueRef": "#78",
"path": "78",
"title": "[DevFrontend] État d'exécution Chrono suivant prêt",
"status": "open",
"priority": "medium",
"sprint": null,
"assignedAgentIds": [
"9933c93a-b8a1-4164-a3bb-7063fdad747d"
],
"updatedAt": 1784547239512
},
{
"issueRef": "#79",
"path": "79",
"title": "[QA] Validation auto-enchaînement configurable des chronos d'étapes",
"status": "open",
"priority": "medium",
"sprint": null,
"assignedAgentIds": [
"7efa512f-3b3a-47b5-ade0-a2dd13073055"
],
"updatedAt": 1784547247343
}
]
}