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,27 @@
---
issueRef: "#140"
version: 5
updatedBy: {"kind":"user"}
updatedAt: 1785160464016
---
## Cadrage UX (agent UX, 2026-07-27)
**Nature** : gap fonctionnel réel côté montre (vérifié dans le code), prêt à implémenter avec une décision de layout.
**Constat technique** : `watch_session_view_model.dart`/`watch_session_screen.dart` — quand `projection.hasManualScore` est vrai, `_ActiveContent` bascule exclusivement sur `_ManualScoreContent` (score +/-) et n'affiche plus jamais le chrono ni le bouton pause/play, même si l'étape en a un. C'est le bug exact décrit par le ticket.
**Décision UX** : le score reste la donnée dominante de l'écran (l'action principale sur la montre est +/-). Le chrono devient une **donnée secondaire compacte**, affichée sous le nom d'exercice — même emplacement/style que `secondaryTimers` déjà utilisé côté purement-chrono (réutiliser `_compactTimerText`), aujourd'hui invisible dans `_ManualScoreContent`.
**Layout `_ManualScoreContent`** :
```
[objectif score, si présent]
SCORE
[-] 12 [+]
ÉTAPE · 00:07 ← nouvelle ligne compacte
Nom exercice
[status]
```
**Contrôle du chrono** : uniquement si ce chrono est piloté manuellement par l'utilisateur (cas "chrono score d'étape" sur étape à répétitions, cf. [[gametime-ux-score-chrono]]) — ajouter un petit bouton pause/play à côté de la ligne, en réutilisant `_TimerToggleButton` réduit (≈32 au lieu de 48, peu de place sur la montre), pas un nouveau composant. Si le chrono est un simple compte à rebours automatique d'étape "Temps" (avance seule, cf. enchaînement [[gametime-ux-step-chaining-override]]), ne pas ajouter de bouton — afficher la valeur seule, cohérent avec l'avancement automatique.
**Bridge** : vérifier avec Architect si `dominantTimer`/`secondaryTimers` projettent déjà cette donnée quand `hasManualScore` est vrai ; si non, ajouter la projection manquante — pas de nouveau concept de commande nécessaire.

View File

@ -0,0 +1,16 @@
---
id: "0502272b-32b9-43a0-b276-cec620137482"
number: 140
title: "Ajouter le chrono sur la montre"
status: "closed"
priority: "medium"
sprint: null
links: []
agentRefs: [{"agentId":"57695b92-24d0-4876-837c-76116e70a6ae","role":"assigned"}]
createdBy: {"kind":"user"}
updatedBy: {"kind":"user"}
createdAt: 1785142112185
updatedAt: 1785160464016
version: 5
---
Dans le cas ou une étape possède un score et un chrono, il faudrait qu'en plus de pouvoir incrémenter ou decrementer le score, on puisse voir et gérer le chrono