From 9bb1dbae0343a986802a044a3a0626f8880f6dbb Mon Sep 17 00:00:00 2001 From: Agent Zero Date: Fri, 28 Aug 2026 07:14:14 +0200 Subject: [PATCH] =?UTF-8?q?docs(progress):=20W3b=20Settings=20Contribution?= =?UTF-8?q?-Wahrheit=20dokumentiert=20=E2=80=94=203=20Plugin-Duplikate=20a?= =?UTF-8?q?us=20hardcodedNavItems=20entfernt,=20Dashboard-Loader=20als=20V?= =?UTF-8?q?ite-Technik=20verifiziert?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PROGRESS.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/PROGRESS.md b/PROGRESS.md index ddbd9af..230d51a 100644 --- a/PROGRESS.md +++ b/PROGRESS.md @@ -12,6 +12,16 @@ **Gates:** ruff exit=0 · tsc --noEmit exit=0 · pytest 11 passed · Vitest 2 passed +## W3b — Settings Contribution-Wahrheit (2026-08-28) ✅ + +**Verify-first (Live-Messung):** 7 Plugins liefern `settings_pages` via Manifest (mail, ai_assistant, ai_proactive, automation, permissions ×3, system_notif) — die hardcoded Items in `Settings.tsx` für mail/ai/notifications waren identische Duplikate. + +**Fix (b1a7551):** hardcodedNavItems auf 7 echte Core-Settings reduziert (stammdaten, user-management, system, custom-fields, webhooks, workspaces, backup) — Plugin-Settings kommen ausschließlich via pluginNavItems. Path-Dedup bleibt als Sicherheitsnetz. + +**Dashboard-Verify (Kritikpunkt 20a):** Dashboard.tsx lädt Widgets bereits dynamisch via `useDashboardWidgets()` API (Manifest-Contributions von calendar/contacts/tasks) → DashboardWidgetLoader ist nur der Vite-Code-Splitting-Renderer, **keine fachliche Doppelquelle** — Kritikpunkt 20a teilweise widerlegt. + +**Verifikation:** Vitest 90/90 (13 Dateien inkl. settings + dialog + permissions) · tsc exit 0 · frontend-only Deploy FE_EXIT=0 + ## Suite-Isolation (2026-08-28) ✅ **Mechanismus (Live-Messung):** `close_engine()` in der rbac `mail_app`-Fixture disposiert UND setzt alle globalen Engines auf None — 12 ACL-Batch-Failures (`relation "users" does not exist`) in Nachfolger-Suiten.