Files
GameTime/.ideai/memory/gametime-session-execution-timer-refactor.md
Blomios 73cfa644c2 chore(ideai): synchronise l'état de suivi (tickets, agents, skills, mémoire)
Rattrapage de l'état runtime IdeA (nouveaux tickets #80-#91, agents
coach/commercial, skills, permissions MCP) resté non commité depuis la
clôture du ticket #79.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-21 22:26:20 +02:00

2.2 KiB

name, description, metadata
name description metadata
gametime-session-execution-timer-refactor memory note gametime-session-execution-timer-refactor
type
project

GameTime — Refonte exécution séance et logique chronos

Décision UX/architecture issue de la demande utilisateur du 2026-07-20.

Principe d'affichage

L'écran d'exécution de séance doit organiser les informations autour d'une carte Exercice actif, placée sous le compteur SÉRIE X / Y.

Cette carte regroupe :

  • nom de l'exercice ;
  • accès médias ;
  • Temps de série si la mesure temps est active ;
  • action primaire Démarrer l'exercice quand un chrono doit démarrer au début de la série.

Le temps de série ne doit plus être une information isolée en bas de l'écran.

Principe de démarrage

Démarrer l'exercice est le point de départ global. Il lance tous les chronos qui commencent logiquement au début de la série :

  • timer de série si timeEnabled ;
  • chrono de la première étape si cette première étape est de type temps ;
  • chrono score de série si scoreInputMode == stopwatch.

L'objectif est de minimiser les actions pendant l'effort, notamment quand l'utilisateur n'a pas le téléphone près de lui.

États et invariants

  • Le timer de série est un état persistant dédié, pas un simple DateTime UI volatile.
  • Pause séance suspend tous les chronos running : série, score chrono, étape, score chrono étape si présent, repos.
  • Reprise restaure l'état exact ; un état Chrono suivant prêt reste prêt et ne démarre pas automatiquement.
  • Terminer la série arrête/enregistre les chronos actifs.
  • Passer la série ignore les chronos et confirme si un chrono ou une séquence est en cours.
  • Le repos démarre seulement après terminer/passer la série et doit être pause-aware (pausedAt + accumulatedPausedMs).

Implémentation locale

Une implémentation a été réalisée sans commit : domaine/application/persistance, écran Flutter et tests ciblés. QA a validé les vérifications exécutables dans le sandbox (git diff --check, dart analyze exit 0). Les commandes flutter analyze et flutter test restent à relancer dans un environnement où le SDK Flutter peut écrire dans son cache.