Files
meldestelle/docs/99_Journal/2026-04-18_WASM-Transition-Welle-1-3_Abschluss.md
T

55 lines
2.5 KiB
Markdown

# 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.*