Sur demande explicite de Sylvain (« pour le reste vas-y »), après le § 1.2 buildé et vérifié le matin. Les cinq constats de l'audit sont désormais traités. ⚠️ § 2.3 et § 2.4 touchent `WorkoutManager.swift` — la fin de séance du live workout, que la consigne du 22/09 demandait de ne pas approcher. Fait en ne changeant AUCUNE logique : les `try?` deviennent des `do/catch` qui journalisent, et le chemin d'échec gagne la clôture qui lui manquait. La récupération par `recentlySavedWorkout()` est intacte. § 1.3 — `CoachSleep` teste `authorizationStatus` : `.notDetermined` ne se confond plus avec une nuit sans sommeil, et le serveur cessera d'enregistrer des nuits vides sur lesquelles `sleep_score.py` calculait une régularité. Un refus EXPLICITE reste indiscernable d'une absence de données — HealthKit ne le révèle pas en lecture, par conception. L'en-tête du fichier dit maintenant ce que la promesse couvre au lieu de promettre plus. § 2.3 — le `else` final distinguait deux situations opposées qui y tombaient ensemble : montre verrouillée (la séance EST écrite) et `endCollection` qui a levé (rien n'est écrit). Seule la seconde est une perte, et elle seule renseigne `statusMessage` — annoncer une perte sur une montre verrouillée serait une fausse alerte. § 2.4 — `stopTracking()` d'abord : c'est le seul geste qui réussit à coup sûr et le seul dont l'omission se paie en batterie pendant des heures. Puis une tentative de sauvegarde en best-effort, avec `recentlySavedWorkout()` en second recours. `builder = nil` n'intervient plus qu'après les tentatives — il détruisait jusqu'ici la seule référence, rendant la perte définitive dans l'instruction qui l'ignorait. § 2.6 — `NSLock` sur le tampon GPS, comme aux quatre autres endroits du même fichier. ⚠️ Invérifiable sans son déclencheur : un workout à plusieurs HKWorkoutRoute. Sa correction ne se constatera pas plus que le défaut ne se manifestait. ⛔ NON COMPILÉS. Le test qui comptera pour § 2.3 et § 2.4 n'est pas un log : c'est une séance réelle menée jusqu'au bout, puis retrouvée dans Santé et dans coach. Tant qu'elle n'a pas eu lieu, ce sont des intentions. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
26 KiB
26 KiB