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>
23 lines
1.7 KiB
Markdown
23 lines
1.7 KiB
Markdown
---
|
|
issueRef: "#120"
|
|
version: 2
|
|
updatedBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"}
|
|
updatedAt: 1785137390334
|
|
---
|
|
|
|
## Implémentation DevBackend — 2026-07-26
|
|
|
|
- Contrat montre étendu avec `WatchCommandType.incrementScore` / `decrementScore` et champs de projection `hasManualScore`, `currentManualScoreValue`, `canDecrementScore`.
|
|
- Score manuel routé via `WatchCompanionCommandHandler` vers `ActiveWorkoutSessionUseCases.incrementManualScore` / `decrementManualScore`, sans logique métier dans le bridge.
|
|
- Support strict `ScoreInputMode.manual` : les commandes score sont applicables seulement si la projection expose un score manuel, et le use case revalide le snapshot courant.
|
|
- État vivant ajouté pour le score manuel (`ActiveManualScoreState`) avec table Drift `active_manual_score_states` et migration schéma 20.
|
|
- Acks couverts : décrément au plancher `0` => `acceptedNoOp`; rafale score avec révision décalée acceptée; commandes non-score gardent la vérification stricte de révision.
|
|
|
|
Vérifications exécutées :
|
|
- `dart test` dans `packages/watch_bridge_contract`
|
|
- `flutter test test/application/watch_companion_command_handler_test.dart test/application/watch_companion_projection_test.dart`
|
|
- `flutter test test/application/use_cases_test.dart test/application/watch_companion_command_handler_test.dart test/application/watch_companion_projection_test.dart`
|
|
- `flutter test test/infrastructure/watch_bridge/wear_data_layer_adapter_test.dart`
|
|
- `dart analyze` ciblé sur les fichiers touchés : sortie 0 (reste un lint `prefer_single_quotes` préexistant dans `tables.dart`)
|
|
- `flutter analyze` complet : plus d'erreur, échec uniquement sur infos/lints préexistants
|