diff --git a/.ideai/tickets/65/carnet.md b/.ideai/tickets/65/carnet.md index 69b42a1..36baad2 100644 --- a/.ideai/tickets/65/carnet.md +++ b/.ideai/tickets/65/carnet.md @@ -1,6 +1,9 @@ --- issueRef: "#65" -version: 1 -updatedBy: {"kind":"agent","agent_id":"f8f40941-ecf7-4830-b9de-8818a099f448"} -updatedAt: 1784488343589 +version: 3 +updatedBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"} +updatedAt: 1784490128397 --- +SyncUseCases.synchronize() implémenté avec push/pull LWW réel, changement silencieux d'état (success/failure) sans jamais laisser remonter d'exception, réutilise la table change_log déjà présente (écrite mais jamais lue jusqu'ici). 119/119 tests verts, flutter analyze clean, APK debug buildé. + +Point de nettoyage identifié, non bloquant : `AppDependencies` expose toujours l'ancien port `SyncGateway`/`NoOpSyncGateway` (vestige du ticket #12) EN PLUS du nouveau `SyncUseCases` réel — les deux coexistent, rien n'appelle plus `syncGateway.synchronize()` de façon utile puisque #68 branchera l'UI sur `syncUseCases.synchronize()` directement. À évaluer en QA (#70) si `SyncGateway`/`NoOpSyncGateway` doivent être supprimés pour éviter la confusion entre deux abstractions de sync. \ No newline at end of file diff --git a/.ideai/tickets/65/issue.md b/.ideai/tickets/65/issue.md index 440c06e..70516c2 100644 --- a/.ideai/tickets/65/issue.md +++ b/.ideai/tickets/65/issue.md @@ -2,15 +2,15 @@ id: "f0c554b7-e388-49b3-aa74-0a47886961ad" number: 65 title: "[DevBackend] Sync client incrémentale LWW vers API serveur" -status: "open" +status: "qa" priority: "medium" sprint: null links: [{"target":"#63","kind":"relatesTo"},{"target":"#64","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"} +updatedBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"} createdAt: 1784488343589 -updatedAt: 1784488343589 -version: 1 +updatedAt: 1784490128397 +version: 3 --- Remplacer le `NoOpSyncGateway` par une orchestration réelle offline-first. Mapper Exercise, Program, WorkoutTemplate, WorkoutHistory et MediaAsset metadata vers `resourceType/clientId/schemaVersion/clientUpdatedAt/deletedAt/payload`. Utiliser `change_log`, `syncState`, `updatedAt` et `localRevision` pour pousser les mutations, stocker localement `serverCursor`, appliquer `/sync/pull` LWW sans résolution interactive, puis marquer les ressources acceptées comme synced. Les erreurs réseau restent silencieuses et déclenchent retry différé. \ No newline at end of file diff --git a/.ideai/tickets/67/carnet.md b/.ideai/tickets/67/carnet.md index 6c99454..d563e47 100644 --- a/.ideai/tickets/67/carnet.md +++ b/.ideai/tickets/67/carnet.md @@ -1,6 +1,6 @@ --- issueRef: "#67" -version: 1 -updatedBy: {"kind":"agent","agent_id":"f8f40941-ecf7-4830-b9de-8818a099f448"} -updatedAt: 1784488354627 +version: 2 +updatedBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"} +updatedAt: 1784490111791 --- diff --git a/.ideai/tickets/67/issue.md b/.ideai/tickets/67/issue.md index 0b43d48..c7a491b 100644 --- a/.ideai/tickets/67/issue.md +++ b/.ideai/tickets/67/issue.md @@ -2,15 +2,15 @@ id: "961d38c4-a124-47da-8118-be8b559fc617" number: 67 title: "[DevFrontend] Profil et écrans auth optionnels" -status: "open" +status: "qa" priority: "medium" sprint: null links: [{"target":"#63","kind":"relatesTo"},{"target":"#64","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"} +updatedBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"} createdAt: 1784488354627 -updatedAt: 1784488354627 -version: 1 +updatedAt: 1784490111791 +version: 2 --- Ajouter l'entrée `Profil` sur l'accueil et les surfaces UX connecté/déconnecté. Créer les écrans `Créer un compte`, `Se connecter`, confirmation logout. La connexion reste optionnelle, jamais affichée au démarrage. Erreurs serveur/réseau uniquement inline dans les formulaires, jamais popup globale. Profil affiché depuis cache local même hors ligne. \ No newline at end of file diff --git a/.ideai/tickets/71/carnet.md b/.ideai/tickets/71/carnet.md new file mode 100644 index 0000000..1068aee --- /dev/null +++ b/.ideai/tickets/71/carnet.md @@ -0,0 +1,6 @@ +--- +issueRef: "#71" +version: 3 +updatedBy: {"kind":"user"} +updatedAt: 1784490850142 +--- diff --git a/.ideai/tickets/71/issue.md b/.ideai/tickets/71/issue.md new file mode 100644 index 0000000..62f8d1c --- /dev/null +++ b/.ideai/tickets/71/issue.md @@ -0,0 +1,16 @@ +--- +id: "b7216520-cf5b-4e65-aeed-1839980d1fe6" +number: 71 +title: "[Bug] selection de score par défaut à 0" +status: "open" +priority: "critical" +sprint: null +links: [] +agentRefs: [{"agentId":"57695b92-24d0-4876-837c-76116e70a6ae","role":"assigned"}] +createdBy: {"kind":"user"} +updatedBy: {"kind":"user"} +createdAt: 1784490730564 +updatedAt: 1784490850142 +version: 3 +--- +Je dois pouvoir mettre un score par défaut à 0 lors de la création d'un exercice. Actuellement quand je met un score à 0, l'application me retourne une StateException car il y avisiblement un check qui se fait un le score > 0 \ No newline at end of file diff --git a/.ideai/tickets/counter.json b/.ideai/tickets/counter.json index d70a5bd..531c6bf 100644 --- a/.ideai/tickets/counter.json +++ b/.ideai/tickets/counter.json @@ -1,3 +1,3 @@ { - "nextNumber": 71 + "nextNumber": 72 } \ No newline at end of file diff --git a/.ideai/tickets/index.json b/.ideai/tickets/index.json index 33e5044..2298f65 100644 --- a/.ideai/tickets/index.json +++ b/.ideai/tickets/index.json @@ -727,13 +727,13 @@ "issueRef": "#65", "path": "65", "title": "[DevBackend] Sync client incrémentale LWW vers API serveur", - "status": "open", + "status": "qa", "priority": "medium", "sprint": null, "assignedAgentIds": [ "10ee045b-1c41-479e-ba03-dceed9edd495" ], - "updatedAt": 1784488343589 + "updatedAt": 1784490128397 }, { "issueRef": "#66", @@ -751,13 +751,13 @@ "issueRef": "#67", "path": "67", "title": "[DevFrontend] Profil et écrans auth optionnels", - "status": "open", + "status": "qa", "priority": "medium", "sprint": null, "assignedAgentIds": [ "9933c93a-b8a1-4164-a3bb-7063fdad747d" ], - "updatedAt": 1784488354627 + "updatedAt": 1784490111791 }, { "issueRef": "#68", @@ -794,6 +794,18 @@ "7efa512f-3b3a-47b5-ade0-a2dd13073055" ], "updatedAt": 1784488373778 + }, + { + "issueRef": "#71", + "path": "71", + "title": "[Bug] selection de score par défaut à 0", + "status": "open", + "priority": "critical", + "sprint": null, + "assignedAgentIds": [ + "57695b92-24d0-4876-837c-76116e70a6ae" + ], + "updatedAt": 1784490850142 } ] } \ No newline at end of file