diff --git a/HANDOVER.md b/HANDOVER.md index 6c6720c..1bb0226 100644 --- a/HANDOVER.md +++ b/HANDOVER.md @@ -62,6 +62,21 @@ Viewport-Ersatz, sondern werden die EINZIGE Render-Wahrheit des CAD: von WebKitGTK abhängen. Brücke = Chromium-Shell (`npm run shell`), Endzustand = All-Native (ein Rust-Prozess, Engines + natives UI, kein Webview). +**RICHTUNGSENTSCHEIDUNG 2026-07-02: Electron statt Tauri, all-native aufgeschoben.** +Abgewogen mit dem User: (a) „auf Tauri bleiben" = WebKitGTK, das WEDER WebGPU (kein WASM- +Viewport) NOCH native-wgpu-Composite ins Fenster (Wayland tot) kann → Engine nur als separate +Fenster möglich, kein integrierter Viewport. (b) „all-native jetzt" = kein Shortcut, sondern +das GRÖSSERE Rewrite: ~46k Zeilen TS (UI ~18k + Modell-Gehirn ~5k + Interaktion ~23k) müssten +nach Rust; die Rust-Engines sind erst ~10% der App. → **Gewählt: Electron/Chromium-Shell + +WASM/WebGPU-Engine im Webview** (behält die funktionierende React-UI, verlässt WebKitGTK, +integrierter Engine-Viewport möglich). Die Engine-Rust-Crates sind in einem späteren All-Native- +Schritt 1:1 wiederverwendbar; nur die dünne WASM-Bindeschicht wäre dann Wegwerf. All-native +bleibt legitimes Fernziel, ist aber KEIN Weg zurück zu Tauri (Tauri IST der Webview-Shell). +Klarstellung an den User (er fragte, ob Webview = „billig"): NEIN — Figma (eigene C++/WASM-Engine +im Web-Shell), Onshape, VS Code zeigen, dass „eigene Engine + Web-UI" Top-Tier-Architektur ist. +CAD/BIM-Substanz = Modell + Engine + Normen (haben wir: parametrische Wände, SIA 416, DOSSIER- +Ebenen, ein-Modell→alle-Sichten), NICHT der Fenster-Shell. + Praxisregel ab jetzt: Darstellungs-Features NICHT mehr mehrfach (SVG/WebGL2/nativ) bauen, sondern einmal in der Engine + dünne Anbindungen.