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,37 @@
---
issueRef: "#110"
version: 1
updatedBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"}
updatedAt: 1785093288487
---
## Implémentation DevFrontend — 2026-07-26
- Notification Android de séance ajoutée via un foreground service dédié `SessionStatusForegroundService`, séparé du service companion montre.
- Nouveau canal `gametime_session_status`, notification persistante sans action bouton, tap vers `MainActivity`, contenu mis à jour via MethodChannel.
- Coordinateur applicatif `SessionNotificationCoordinator` branché sur le flux `WatchSessionProjection` existant : show sur séance active, tick local 1s seulement si chrono dominant running, clear sur `noActiveSession`.
- Mapping de contenu conforme au cadrage : exercice, repos, pause, chrono dominant, score manuel si présent, fallback étape/série.
Vérifications exécutées :
- `dart format` ciblé OK.
- `git diff --check` OK.
- `dart analyze lib test/application/session_notification_use_cases_test.dart` OK avec infos préexistantes uniquement.
- `dart analyze packages/watch_bridge_contract` OK.
- `dart test` dans `packages/watch_bridge_contract` OK.
Non fait / à valider :
- `flutter test` et build Android via wrapper Flutter bloqués par cache Flutter en lecture seule dans le runner.
- Compilation Gradle ciblée tentée avec cache temporaire, bloquée en configuration par `Unsupported class file major version 70`.
- Validation réelle device requise : affichage notification, tick chrono, tap, disparition en fin de séance.
## Complément permission Android 13+ — 2026-07-27
- Gap `POST_NOTIFICATIONS` fermé côté plateforme : la permission est demandée paresseusement au premier `show` de la notification de séance.
- La demande est native, non bloquante, et le foreground service continue à démarrer même si l'utilisateur refuse ou si l'activité n'est pas disponible.
- Aucun bouton d'action notification ajouté : le tap reste un retour vers `MainActivity`.
- Validation complémentaire : `JAVA_HOME=/usr/lib/jvm/java-21-openjdk HOME=/tmp GRADLE_USER_HOME=/tmp/gradle ./gradlew --no-daemon -Dkotlin.daemon.enabled=false :app:compileDebugKotlin` OK.
## Correctif build QA DevFrontend — 2026-07-27
- L'échec `share_plus-12.0.2/android` a été isolé comme dépendances Flutter pointant vers un cache Pub non disponible pour le build courant.
- `flutter pub get` relancé avec `PUB_CACHE=/tmp/.pub-cache`, puis `flutter build apk --debug` téléphone validé avec JDK 21.

View File

@ -0,0 +1,24 @@
---
id: "418e1b28-b77c-4f88-9da4-ab065a6d62e4"
number: 110
title: "#102-C [DevFrontend] Implémenter la notification téléphone pendant la séance"
status: "QA"
priority: "medium"
sprint: null
links: [{"target":"#102","kind":"relatesTo"},{"target":"#108","kind":"dependsOn"},{"target":"#109","kind":"dependsOn"}]
agentRefs: [{"agentId":"9933c93a-b8a1-4164-a3bb-7063fdad747d","role":"assigned"}]
createdBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"}
updatedBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"}
createdAt: 1785093288487
updatedAt: 1785093288487
version: 1
---
Partie du ticket #102, dépend de #108 et #109.
Implémenter la notification Android visible pendant une séance active :
- informations d'exercice/chrono conformes au cadrage UX ;
- mise à jour cohérente pendant démarrage, pause, repos, reprise et fin ;
- pas de divergence avec l'écran d'exécution ;
- build Android debug propre.
Définition de done : notification fonctionnelle sur device Android, `dart analyze` / build pertinents propres, comportement documenté dans le carnet.