docs(ideai): met à jour les tickets #65/#67 après le partage client, ajoute le ticket #71

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-19 21:54:52 +02:00
parent 010e055404
commit 334d40cd1d
8 changed files with 56 additions and 19 deletions

View File

@ -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.

View File

@ -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é.

View File

@ -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
---

View File

@ -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.

View File

@ -0,0 +1,6 @@
---
issueRef: "#71"
version: 3
updatedBy: {"kind":"user"}
updatedAt: 1784490850142
---

View File

@ -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

View File

@ -1,3 +1,3 @@
{
"nextNumber": 71
"nextNumber": 72
}

View File

@ -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
}
]
}