Commit Graph

4 Commits

Author SHA1 Message Date
Sylvain Bettinelli
1d2d7a0e18 Une toolchain Swift sur Linux, pour ne plus ecrire de dates a l'aveugle
J'ai ecrit `asOf(_:)` hier sans pouvoir le compiler. Swift 6.3 est desormais
installe sur la machine de dev (Debian 12 x86_64) et `tests-linux/` compile
et teste la logique PURE des widgets.

10 tests, dont 5 verifies rouges en neutralisant la peremption. Ils couvrent
la remise a zero, la conservation des objectifs et des zones, le report de la
seance du lendemain, et le passage a l'heure d'hiver du 25 octobre — ou un
`+86400` naif ferait basculer le widget une heure trop tot, la veille au soir.

Les sources du paquet sont des liens symboliques vers les vrais fichiers : le
test porte sur le code livre, pas sur une copie.

⚠️ Ne remplace PAS le build Xcode et ne le remplacera jamais : WidgetKit,
SwiftUI, HealthKit et WatchKit sont absents de Swift pour Linux. Ni l'app, ni
les widgets, ni les vues ne se compilent ici.
2026-08-18 07:42:59 +00:00
Sylvain Bettinelli
a7daca02fd Lancer la seance du jour depuis la complication : etat des lieux, pour plus tard
Propose puis mis de cote aujourd'hui. Ce qui est consigne, c'est l'etat verifie
dans le code, pour que la reprise ne recommence pas l'enquete.

Les complications portent deja un widgetURL, mais CoachWatch n'implemente aucun
onOpenURL : le tap ouvre l'app sur le choix d'activite, pas sur la seance. Et la
donnee est deja sur la montre - CoachWidgetSnapshot.TodaySession y arrive par
WCSession, l'app ne la lit simplement pas. Le travail se reduit donc a lire
l'URL entrante et mapper le sport vers le HKWorkoutActivityType, environ 1 h.

La limite qui cadre le sujet : une complication ne peut pas ouvrir l'app
Exercice d'Apple sur une seance programmee, il n'existe aucune URL publique pour
ca. Le fractionne structure envoye par WorkoutKit se lancera toujours a la main
depuis Exercice > Programmees. Reimplementer le guidage d'intervalles chez nous
doublonnerait ce qu'Apple fait deja bien.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-11 14:39:48 +00:00
Sylvain
0bd5d5c5f8 docs(watchos): avancement Phases 1-3 réalisées + deltas watchOS 26
Statut chantier, commits, et 3 deltas vs pseudocode (ConnectivityManager non
@MainActor, WorkoutManager @MainActor + délégués nonisolated, registerPluginInstance
Capacitor 8). Reste : test device + TestFlight + cross-check JS /live.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-25 19:03:20 +02:00
Sylvain Bettinelli
6e4011db3f docs(watchos): plan technique + handoff Claude Code Mac mini
Préparation du chantier watchOS Live Workout (live FC/calories/distance
sur l'iPhone pendant que Sylvain fait du sport sur l'Apple Watch).

Décision archi : la phase native Swift/watchOS nécessite Xcode + Apple
Watch device, indispo dans la session Linux où ces docs ont été écrites.
D'où le handoff vers Claude Code lancé sur le Mac mini Sylvain.

Fichiers ajoutés :

- `docs/watchos-live-workout-plan.md` (444 lignes)
  Plan technique complet en 5 phases :
  1. Création target watchOS Xcode + entitlements
  2. Code Swift watchOS (4 fichiers : CoachWatchApp, WorkoutManager,
     ConnectivityManager, ContentView)
  3. Plugin Capacitor iOS (CoachLiveBridge.swift) qui reçoit les samples
     WCSession et les publie au JS via notifyListeners
  4. Route web /live + template (squelette prêt à coller dans
     coach_sportif/web/)
  5. Tests device + TestFlight internal
  Inclut décisions d'archi (HKLiveWorkoutBuilder, sendMessage avec
  fallback transferUserInfo, pas de Live Activity V1), pseudocode Swift,
  estimation effort 12-20h sur 3-5 jours, et risques + mitigations.

- `HANDOFF-WATCHOS.md` (181 lignes)
  Instructions étape par étape pour Claude Code Mac. Liste les memories
  à charger (project_coach_watchos_live, project_coach_ios,
  project_coach_app_commercial, user_sante_cardio,
  feedback_inline_display_none_toggle), workflow Step 1..6 (setup env,
  création target, lecture docs Apple, implémentation Swift, route web,
  tests device), garde-fous et règle "qui possède quoi" pendant le
  chantier (Mac = Swift natif, Linux = backend Python).

- `CLAUDE.md` (1ère commit, fichier existait en local non-tracked)
  Pointeur ajouté dans la section Backlog vers les 2 nouveaux fichiers.

Aucun fichier Swift n'a été écrit ici (décision conjointe avec Sylvain
pour ne pas risquer du code à l'aveugle sans Xcode pour valider les
APIs HealthKit/WCSession à jour).
2026-05-24 13:25:07 +00:00