From 4ea6c4ee9c287880e3be04403caf4e446deb4951 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hartmut=20N=C3=B6renberg?= Date: Wed, 22 Jul 2026 11:10:22 +0200 Subject: [PATCH] =?UTF-8?q?docs:=20learnings=20erfasst=20=E2=80=94=20editi?= =?UTF-8?q?erbares=20branding,=20public=20settings=20endpoint?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- LEARNINGS.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/LEARNINGS.md b/LEARNINGS.md index acfe722..6003836 100644 --- a/LEARNINGS.md +++ b/LEARNINGS.md @@ -524,3 +524,6 @@ Es gibt keinen `BLENDER_CINEMATIC`-Node im Workflow-Graph-System. Cinematic-Rend ### 2026-07-21 | Render-Pipeline | `usd_path.exists()` auf str in turntable und cinematic render functions `render_turntable_to_file` und `render_cinematic_to_file` in `render_blender.py` riefen `.exists()` auf `usd_path` auf, ohne zu prüfen ob es ein `str` oder `Path` ist. Das Invocation-Dataclass speichert `usd_path` als `str | None`. `render_still_to_file` hatte den `isinstance(usd_path, str)` → `Path`-Cast bereits (Zeilen 300–301), die anderen beiden Funktionen nicht. **Lösung:** Denselben Cast (`if isinstance(usd_path, str) and usd_path.strip(): usd_path = Path(usd_path)`) vor dem `usd_path.exists()`-Check in turntable und cinematic ergänzt. + +### 2026-07-22 | Frontend | Editierbares Branding — public settings endpoint vor Auth nötig +Der Admin-Settings-Endpunkt (`GET /api/admin/settings`) erfordert `global_admin`-Auth. Die Login-Seite benötigt den App-Namen aber vor dem Login. Lösung: eigener öffentlicher `GET /api/admin/branding`-Endpunkt ohne Auth-Dependency, der nur `app_name` + `app_subtitle` aus `system_settings` liest. Frontend: `useBranding()`-Hook via React Query mit 5-min-Stale-Time — Query-Key `['branding']` wird nach dem Speichern aus dem Admin-Panel invalidiert, damit Sidebar und Login-Seite sofort aktualisieren.