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

1.9 KiB

Journal: Welle 1 - WASM-Only Transition

Datum: 18. April 2026 Status: Welle 1 abgeschlossen Agent: 🏗️ [Lead Architect] & 🧹 [Curator]

🎯 Ziel

Vollständige Entfernung des js(IR)-Targets aus den Core-Modulen und Umstellung auf ein reines JVM (Desktop) + * wasmJs (Web)* Modell.

🛠️ Durchgeführte Änderungen

1. Gradle-Bereinigung (Entfernung js(IR))

In folgenden Modulen wurde der js(IR) { ... } Block und die entsprechenden JS-Dependencies aus den sourceSets entfernt:

  • core/core-domain
  • frontend/core/auth
  • frontend/core/domain
  • frontend/core/local-db
  • frontend/core/network
  • frontend/core/design-system
  • frontend/core/navigation
  • frontend/shells/meldestelle-web

2. Quellcode-Migration & Bereinigung

  • Löschung: Alle src/jsMain/ und src/jsTest/ Verzeichnisse in den oben genannten Modulen wurden gelöscht.
  • Migration:
    • Logik aus OidcCallback.js.kt wurde bereits zuvor weitgehend in OidcCallback.wasmJs.kt übernommen.
    • In local-db wurde die DatabaseDriverFactory.wasmJs.kt auf einen stabilen Rumpf-Stand gebracht ( WebWorkerDriver-Migration ist aufgrund fehlender DOM-Libraries für WASM aktuell noch blockiert).
  • Konsolidierung: Dependencies wie kotlinx-coroutines-core, die zuvor in jsMain lagen, wurden nach commonMain oder wasmJsMain verschoben.

🛡️ Verifizierung

  • ./gradlew clean: Erfolgreich
  • ./gradlew :frontend:shells:meldestelle-desktop:jvmJar: Erfolgreich (Desktop-Shell baut stabil).
  • Build-Check für WASM (meldestelle-web) zeigt noch Fehler in den Feature-Modulen (Welle 2), was erwartungskonform ist, da diese noch js(IR) referenzieren.

🚀 Nächste Schritte

  • Welle 2: Systematische Bereinigung aller frontend/features/* Module.
  • Welle 3: Finalisierung der Web-Shell und vollständige Entfernung aller JS-Leichen im Projekt.

Dokumentiert durch den Curator.