Files
GameTime/.ideai/tickets/95/issue.md
Blomios 917777e18b 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>
2026-07-28 16:48:54 +02:00

1.7 KiB

id, number, title, status, priority, sprint, links, agentRefs, createdBy, updatedBy, createdAt, updatedAt, version
id number title status priority sprint links agentRefs createdBy updatedBy createdAt updatedAt version
67ec03c4-2fba-491c-9b87-a9bd219ea7a7 95 #91-A [DevBackend] Contrats watch bridge partagés + façade WatchCompanionUseCases closed medium null
agentId role
10ee045b-1c41-479e-ba03-dceed9edd495 assigned
kind agent_id
agent 57695b92-24d0-4876-837c-76116e70a6ae
kind agent_id
agent 57695b92-24d0-4876-837c-76116e70a6ae
1784991949110 1784991949110 1

Partie #91. Cf. mémoires gametime-architecture-watch-companion et gametime-ux-watch-companion.

Créer le package Dart partagé packages/watch_bridge_contract/ avec les DTO/enums de transport versionnés :

  • WatchCommandEnvelope { schemaVersion, commandId, type, sessionId, expectedRevision, sentAtEpochMs }
  • enum WatchCommandType : startCurrentExercise, pauseSession, resumeSession, startPreparedTimedStep, skipCurrentStep, skipCurrentPassage, finishCurrentSet, skipCurrentSet, skipCurrentRest
  • enum WatchCommandAck : accepted, acceptedNoOp, rejectedStaleRevision, rejectedNotApplicable, rejectedNoActiveSession, rejectedSessionMismatch, rejectedPhoneBusy
  • WatchSessionProjection + WatchTimerProjection (champs exacts cf. mémoire archi)
  • Sérialisation JSON stable + versionnée (parsers tolérants pour champs futurs).

Ajouter la façade WatchCompanionUseCases (port application) exposant les points d'entrée que l'adapter Android (D) implémentera : envoi de projection, réception/routing de commande. Pas de logique Android ici.

Définition de done : package partagé créé, DTO/enums sérialisables, tests unitaires de sérialisation/deserialization (round-trip + champs manquants tolérés), dart analyze propre.