meldestelle/docs/99_Journal/2026-04-18_WASM-Transition-Welle-1-3_Abschluss.md
2026-04-18 14:16:29 +02:00

2.5 KiB

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.