# Journal: Umstellung auf JVM + wasmJs (Welle 1-3) **Datum:** 18. April 2026 **Status:** Abgeschlossen **Agent:** 🏗️ [Lead Architect] & 🧹 [Curator] ## 🎯 Zielsetzung Vollständige Eliminierung des redundanten `js(IR)` Targets aus allen Modulen des Projekts. Strategische Fokussierung auf **JVM (Desktop)** und **wasmJs (Web)** gemäß der "Meldestelle"-Architekturvorgaben. ## 🛠️ Durchgeführte Maßnahmen ### 1. Gradle-Bereinigung (Entfernung `js(IR)`) In den folgenden Modul-Kategorien wurde der `js(IR) { ... }` Block sowie JS-spezifische Dependencies aus den `build.gradle.kts` Dateien entfernt: - **Core-Module:** `auth`, `domain`, `local-db`, `network`, `core-domain`, `design-system`, `navigation`, `sync`, `core-utils`. - **Feature-Module:** `billing`, `funktionaer`, `nennung`, `pferde`, `ping`, `profile`, `reiter`, `turnier`, `veranstalter`, `veranstaltung`, `verein`, `zns-import`, `device-initialization`. - **Contracts & Backend-Common:** `ping-api`, `entries-api`, `entries-domain`, `masterdata-domain`, `billing-domain`, `events-common`, `zns-parser`. - **Shells:** `meldestelle-web`, `meldestelle-desktop`. ### 2. Quellcode-Migration & Cleanup - Alle `src/jsMain/` und `src/jsTest/` Verzeichnisse wurden in den oben genannten Modulen gelöscht. - Logik wurde (falls noch nicht geschehen) nach `wasmJsMain` migriert. - Veraltete JS-spezifische Ktor-Client Abhängigkeiten wurden entfernt. ### 3. Stabilität & Bugfixes (KMP & Yarn) - **Network-Modul:** Die `NoOpDiscoveryService`-Implementierung in `wasmJsMain` wurde aktualisiert, um dem `NetworkDiscoveryService`-Interface (`commonMain`) zu entsprechen. - **Yarn Lock:** Korrektur des `yarn.lock` für WASM via `kotlinWasmUpgradeYarnLock` nach Wegfall der JS-Targets. - **Dependency Resolution:** Beseitigung aller KMP-Fehlermeldungen ("Unresolved platforms: [js]") durch vollständige Bereinigung der Target-Ketten. ## ✅ Verifizierung - `./gradlew clean build`: **ERFOLGREICH** (keine KMP-Auflösungsfehler mehr) - `./gradlew :frontend:shells:meldestelle-desktop:jvmJar`: **ERFOLGREICH** - `./gradlew :frontend:shells:meldestelle-web:wasmJsBrowserDistribution -PenableWasm=true`: **ERFOLGREICH** ## 📝 Fazit Die technische Schuld der redundanten JS-Targets wurde getilgt. Das Projekt verfügt nun über eine saubere, zweigleisige Architektur (JVM & WASM), was die Build-Stabilität erhöht und die Komplexität der Plattform-Implementierungen ( `expect/actual`) reduziert. --- *Dokumentiert durch den Curator am 18.04.2026.*