From 4b7c605a9cad1c3b44faed8b57d65a1e11411e5c Mon Sep 17 00:00:00 2001 From: Till JS Date: Mon, 25 May 2026 23:16:35 +0200 Subject: [PATCH] =?UTF-8?q?Doku:=20ManaWebShell=20bewusst=20behalten=20(Hy?= =?UTF-8?q?brid-Scaffold=20f=C3=BCr=20neue=20Apps)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit CLAUDE.md war veraltet (nannte nur ManaAuthUI). Aktualisiert auf alle drei Products (ManaAuthUI, ManaWebShell, ManaLLMUI) + dokumentiert die Entscheidung (Till, 2026-05-25), ManaWebShell trotz 0 Konsumenten zu behalten: Baustein zum schnellen Hybrid-Start neuer Apps (Web-App in nativer Schale), bevor sie schrittweise nativ werden — der Weg von zitare + seepuls. Inkl. Bootstrap-Hinweis + Entfern-Rezept. Co-Authored-By: Claude Opus 4.7 (1M context) --- CLAUDE.md | 57 ++++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 44 insertions(+), 13 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index e2e54ce..1ccfbda 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -8,15 +8,42 @@ Guidance für Claude Code in diesem Repo. ## Was dieses Repo ist Swift-Package mit native UI-Komponenten für alle nativen -mana-e.V.-Apps. Heute genau ein Library-Product: +mana-e.V.-Apps. Drei Library-Products: - **ManaAuthUI** — vollständige Auth-Reise als SwiftUI-Views: Login, Sign-Up, Email-Verifikation, Passwort-Reset, Account-Management. Konsumiert `ManaCore` (für API-Calls) und - `ManaTokens` (für Vereins-Designwerte). + `ManaTokens` (für Vereins-Designwerte). Breit konsumiert (memoro, + seepuls, mukke, herbatrium, …). +- **ManaWebShell** — dünne `WKWebView`-Hülle (`WebShellView` + + `WebShellConfig` + `WebShellScripts`) zum Anzeigen einer Web-App in + einer nativen Schale. **Siehe Retention-Hinweis unten.** +- **ManaLLMUI** — Settings-UI für lokale LLMs (konsumiert `ManaLLM`). -Wird konsumiert von `cards-native`, `manaspur-native`, `memoro-native`, -geplant `nutriphi-native` und weiteren. +## ManaWebShell — bewusst behalten, aktuell ohne Konsument + +**Stand 2026-05-25: ManaWebShell hat null Konsumenten.** Die beiden +Hybrid-Apps wurden voll nativ (zitare η-0..η-9, seepuls σ-7); mukkes +toter Dependency-Eintrag wurde entfernt. + +**Wir behalten das Paket trotzdem** — Entscheidung Till, 2026-05-25. +Begründung: Es ist der naheliegende Baustein, um eine **neue App +schnell als Hybrid zu starten** (Web-App in nativer Schale + Widget/ +Share/Universal-Links), bevor sie — wenn sie sich bewährt — schrittweise +nativ wird. Genau diesen Weg sind zitare und seepuls gegangen. Das +Paket ist getestet (`ManaWebShellTests`), pure SwiftUI/WKWebView, ohne +Laufzeitkosten solange es niemand importiert. + +**Wenn du eine neue App schnell bootstrappen willst:** `ManaWebShell` +als Dependency ziehen, `WebShellView(target:config:)` in einen Tab, +`WebShellConfig` mit `allowedHosts` + `userScripts` (z.B. +`preferDarkScheme`, `hideElements`) konfigurieren. Vorbild-Pattern (vor +der De-Hybridisierung): `seepuls-native` Git-History vor σ-7 bzw. +`zitare-native` vor η-0. + +**Beim Entfernen** (falls je beschlossen): Library-Target + +`ManaWebShellTests` aus `Package.swift`, dann prüfen dass `swift build` +sauber bleibt. ## Status @@ -55,16 +82,20 @@ mana-swift-ui/ ├── CHANGELOG.md ├── CLAUDE.md dieses File ├── Sources/ -│ └── ManaAuthUI/ -│ ├── Brand/ ManaBrandConfig (App-injiziert) -│ ├── Components/ ManaAuthScaffold, ManaTextField, ... -│ ├── Login/ ManaLoginView + ViewModel -│ ├── Register/ ManaSignUpView + ViewModel -│ ├── Verify/ ManaEmailVerifyGateView -│ ├── Reset/ ManaForgotPasswordView, ManaResetPasswordView -│ └── Account/ ChangeEmail/ChangePassword/DeleteAccount +│ ├── ManaAuthUI/ +│ │ ├── Brand/ ManaBrandConfig (App-injiziert) +│ │ ├── Components/ ManaAuthScaffold, ManaTextField, ... +│ │ ├── Login/ ManaLoginView + ViewModel +│ │ ├── Register/ ManaSignUpView + ViewModel +│ │ ├── Verify/ ManaEmailVerifyGateView +│ │ ├── Reset/ ManaForgotPasswordView, ManaResetPasswordView +│ │ └── Account/ ChangeEmail/ChangePassword/DeleteAccount +│ ├── ManaWebShell/ WebShellView + WebShellConfig + WebShellScripts +│ │ (Hybrid-Scaffold, aktuell ohne Konsument) +│ └── ManaLLMUI/ Lokal-LLM-Settings-UI └── Tests/ - └── ManaAuthUITests/ + ├── ManaAuthUITests/ + └── ManaWebShellTests/ ``` ## Konventionen