AGENTS.md 3.2 KB

AGENTS.md — WatchOsm

Application Wear OS 5 qui suit la navigation initiée par OsmAnd+ (Android). Documentation d'architecture : documentation/architecture.md + diagrammes PlantUML dans documentation/puml/.

Langues

  • Commentaires, messages de commit, documentation : français.
  • Identifiants de code en anglais (conventions Kotlin/Android classiques).

Build et vérification — chaîne validée le 07/10/2026

Toutes les commandes suivantes sont vertes sur cette machine :

./gradlew :wear:assembleDebug        # APK debug
./gradlew :wear:testDebugUnitTest    # 11 tests unitaires (parseur)
./gradlew :wear:lint                 # lint Android
java -jar /tmp/opencode/plantuml.jar -checkonly documentation/puml/*.puml
  • Toolchain : Gradle wrapper 8.11.1, AGP 8.9.2, Kotlin 2.1.20 (+ plugin org.jetbrains.kotlin.plugin.compose ; ne PAS ajouter composeOptions.kotlinCompilerExtensionVersion, compilateur Compose intégré au plugin Kotlin 2.x).
  • Android SDK : installé dans ~/Android/Sdk (cmdline-tools, platforms;android-35, build-tools;35.0.0). local.properties (non versionné) pointe dessus. Si le SDK manque : voir l'historique git, les étapes sdkmanager sont dans le commit d'initialisation.
  • JDK complet requis : le JDK système est une JRE sans javac, ce qui fait échouer Gradle 8.11 sur les tâches Java. ~/.gradle/gradle.properties (hors dépôt) définit org.gradle.java.home=/home/aston/tools/jdk-21.0.12.1+1. Si ce chemin disparaît, télécharger Temurin 21 via https://api.adoptium.net/v3/binary/latest/21/ga/linux/x64/jdk/hotspot/normal/eclipse.
  • Épinglages à ne pas bouger sans raisons :
    • AGP < 8.9.2 → son lint plante (UAST vs Kotlin 2.1, KaCallableMemberCall). Ne pas revenir à 8.7.x.
    • Wear Compose 1.6.2 : la 1.7.x exige AGP 9.1 + compileSdk 37.
    • core-ktx / lifecycle / compose-bom : versions inférieures aux dernières car les suivantes demandent compileSdk ≥ 36. Monter compileSdk/AGP est un chantier à part entière (AGP 9 change le DSL).
  • lint { disable += "RememberInComposition" } dans wear/build.gradle.kts : détecteur en crash avec cette paire AGP/Kotlin, laisser tel quel.

Diagrammes UML

  • Sources uniquement en PlantUML (.puml) dans documentation/puml/.
  • PlantUML n'est pas installé ; pour valider la syntaxe localement : java -jar /tmp/opencode/plantuml.jar -checkonly documentation/puml/*.puml (le jar, téléchargé dans /tmp/opencode/, n'est pas versionné ; le retirer si absent, il se re-télécharge depuis https://github.com/plantuml/plantuml/releases).
  • Toute évolution d'architecture met à jour les diagrammes dans le même commit.

Structure

  • Module unique wear/ (application montre autonome). Le module phone/ (compagnon Android : listener renforcé + API AIDL OsmAnd + Data Layer) est prévu en phase 2, pas encore créé.
  • Package : fr.barteam.watchosm.
  • Le pont vers OsmAnd repose sur le bridging des notifications vers la montre ; le parseur de texte (OsmAndNotificationParser) est le seul point fragile face aux mises à jour d'OsmAnd — toute régression de format se corrige là, avec un test dans OsmAndNotificationParserTest.