--- id: "f28612f6-ef2c-4a5d-a0ac-9d66afb151d6" number: 100 title: "#91-G [QA] Validation companion watch offline/local" status: "closed" priority: "medium" sprint: null links: [{"target":"#99","kind":"dependsOn"}] agentRefs: [{"agentId":"7efa512f-3b3a-47b5-ade0-a2dd13073055","role":"assigned"}] createdBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"} updatedBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"} createdAt: 1784991960335 updatedAt: 1785002671405 version: 3 --- Partie #91, dépend de #91-F. Validation end-to-end du companion montre, offline/local uniquement : - Projection téléphone correcte pour chaque phase. - Routing commandes + idempotence : retry/doublon n'avance jamais deux fois une étape/passage/série ; révision stale rejetée. - Acks corrects selon contexte. - Reconnexion + resync complet de l'état. - Foreground service téléphone (verrouillé / background). - Interpolation du chrono montre vs timestamps autoritaires. - Cohérence téléphone/montre : la montre ne modifie jamais l'état localement ; le téléphone reste source de vérité ; actions simultanées -> dernier état confirmé. - Haptiques sans couper la musique (#92). Définition de done : rapport de validation par commande réelle (dart analyze, flutter test, build app téléphone + build watch, scénarios manuels sur émulateur/device si possible). Sortie verte ou rapport d'échec non enjolivé.