chore(wip): consolidation intermédiaire multi-tickets (sprints Statistiques, UI, Bug resolution, Serveur-client)

Regroupe l'état de travail en cours réalisé dans un même worktree sur
plusieurs tickets/sprints (#85, #136, #145, #155-160, #162-164),
mélangeant des tickets QA et inProgress. Ne constitue pas une feature
terminée : commit de sauvegarde avant triage/split par ticket en
branches feature/* dédiées. Exclut les dossiers d'environnement de
build locaux et le heap dump parasite (.gitignore mis à jour).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-28 16:48:54 +02:00
parent 58272e354a
commit 917777e18b
279 changed files with 13546 additions and 674 deletions

View File

@ -0,0 +1,36 @@
---
issueRef: "#121"
version: 1
updatedBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"}
updatedAt: 1785093288487
---
## Implémentation DevFrontend — 2026-07-26
- Contrôles score manuel `` / `+` ajoutés sur l'écran séance active montre uniquement quand la projection expose `hasManualScore`.
- Feedback optimiste immédiat côté montre : valeur locale atténuée pendant pending, indicateur discret après délai, recalage sur projection téléphone confirmée.
- Commandes envoyées via les types backend #120 `incrementScore` / `decrementScore`; la montre ne persiste ni ne décide la valeur source.
- Les commandes score ont un pending dédié et ne bloquent pas les actions de transition existantes; la sync/reconnexion montre existante reste inchangée.
- L'écran téléphone relit l'état vivant `ActiveManualScoreState` et met à jour le champ score manuel si l'utilisateur n'est pas en train de l'éditer.
Vérifications exécutées :
- `dart format` ciblé OK.
- `git diff --check` OK.
- `dart analyze watch_app/lib` OK.
- `dart analyze lib test/application/session_notification_use_cases_test.dart` OK avec infos préexistantes uniquement.
- `dart test` dans `packages/watch_bridge_contract` OK.
Non fait / à valider :
- `flutter test` / build Wear OS via wrapper Flutter bloqués par cache Flutter en lecture seule.
- Test réel montre+téléphone requis : taps rapides +/-, pending visuel, recalage après ack/projection, décrément à 0, perte/reprise connexion.
## Complément symétrie téléphone ↔ montre — 2026-07-27
- Symétrie téléphone ↔ montre confirmée dans le worktree : le téléphone persiste le champ score manuel via `setManualScore` à la perte de focus et avant `Terminer la série`.
- La montre consomme la projection confirmée `currentManualScoreValue` et continue à envoyer uniquement des commandes au téléphone.
- Aucun message utilisateur ajouté sur latence watch ; le feedback reste visuel et discret.
## Correctif QA DevFrontend — 2026-07-27
- Reproduction QA 192x192 traitée sur la colonne score manuel : `_ManualScoreContent` passe par `_ScaledContent` et une colonne `mainAxisSize.min`, avec boutons score conservés.
- Validation locale : test widget compact OK, analyse Dart ciblée OK, build APK debug montre OK.

View File

@ -0,0 +1,23 @@
---
id: "1a1a4f69-c17c-464f-86e5-7ea862a72c9d"
number: 121
title: "#105-D [DevFrontend] Contrôles score montre synchronisés au téléphone"
status: "QA"
priority: "medium"
sprint: null
links: [{"target":"#105","kind":"relatesTo"},{"target":"#118","kind":"dependsOn"},{"target":"#119","kind":"dependsOn"},{"target":"#120","kind":"dependsOn"}]
agentRefs: [{"agentId":"9933c93a-b8a1-4164-a3bb-7063fdad747d","role":"assigned"}]
createdBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"}
updatedBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"}
createdAt: 1785093288487
updatedAt: 1785093288487
version: 1
---
Partie du ticket #105, dépend de #118, #119 et #120.
Implémenter les contrôles score +/- sur la montre :
- rendu conforme à l'UX ;
- latence et pending cohérents ;
- recalage exclusif sur l'état confirmé du téléphone.
Définition de done : interactions score montre fonctionnelles sur build Wear OS.