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>
25 lines
1.4 KiB
Markdown
25 lines
1.4 KiB
Markdown
---
|
|
id: "a8c9ec77-2e81-4306-841e-e9a7714afc8f"
|
|
number: 97
|
|
title: "#91-B [DevBackend] Projection compacte d'exécution téléphone -> montre"
|
|
status: "closed"
|
|
priority: "medium"
|
|
sprint: null
|
|
links: [{"target":"#95","kind":"dependsOn"}]
|
|
agentRefs: [{"agentId":"10ee045b-1c41-479e-ba03-dceed9edd495","role":"assigned"}]
|
|
createdBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"}
|
|
updatedBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"}
|
|
createdAt: 1784991949132
|
|
updatedAt: 1784992086886
|
|
version: 2
|
|
---
|
|
Partie #91, dépend de #91-A.
|
|
|
|
Côté téléphone, calculer la `WatchSessionProjection` depuis l'état d'exécution actif (même source de vérité que l'écran d'exécution, pas de deuxième modèle). Mapper :
|
|
- phase : noActiveSession | ready | running | paused | nextTimerReady | restRunning | restPaused | betweenSetsReady
|
|
- seriesIndex/seriesTotal, exerciseName, passageIndex/passageTotal?, stepIndex/stepTotal?, stepName?
|
|
- dominantTimer? + secondaryTimers avec timestamps autoritaires (referenceEpochMs, accumulatedMs, startedAtEpochMs?, targetMs?) pour interpolation locale montre
|
|
- primaryAction + secondaryActions, nextExerciseName?, statusLabel?, phoneReachable, revision
|
|
|
|
Définition de done : projection produite depuis l'état actif, tests unitaires couvrant chaque phase + transitions clés (chrono running, Chrono suivant prêt, repos, entre séries).
|