docs(ideai): mémoire client online, clôture ticket #64, cadrage #65-#70

Ajoute les notes mémoire d'architecture, de philosophie de la couche
online et d'UX pour le client online, clôture le ticket #64, reflète
les tickets #46/#54/#57/#62, ajoute le cadrage des tickets #65 à #70.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-19 21:25:57 +02:00
parent e60c8bbdb8
commit 53b4957bc6
28 changed files with 910 additions and 37 deletions

View File

@ -0,0 +1,16 @@
---
id: "f0c554b7-e388-49b3-aa74-0a47886961ad"
number: 65
title: "[DevBackend] Sync client incrémentale LWW vers API serveur"
status: "open"
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"}
createdAt: 1784488343589
updatedAt: 1784488343589
version: 1
---
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é.