From 8a76bfdba47ad0dc0f63aeb6a6ce050b0df8f58d Mon Sep 17 00:00:00 2001 From: Agent Zero Date: Sun, 23 Aug 2026 21:46:21 +0200 Subject: [PATCH] docs: block B complete - gate B passed all 5 checks --- PROGRESS.md | 6 ++++++ docs/test-bugs.md | 6 +++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/PROGRESS.md b/PROGRESS.md index baaaf7f..f061689 100644 --- a/PROGRESS.md +++ b/PROGRESS.md @@ -49,8 +49,14 @@ | Gate A | Block-A-Abschlussprüfung | ✅ BESTANDEN (4/4): Imports, Lifecycle-Symmetrie, Activate-Once, Contract-Roundtrip | 32f63ad | | B1 | Contacts-Domain aus Core entkoppelt: 4 Router ins Plugin verschoben, manifest.routes mit require_active_plugin-Schutz | ✅ Endpoint-Diff 409/0/0/0 identisch; Acceptance-grep fachfrei; 9 verbleibende Test-Failures als Vorbestand bewiesen (Stash-Test auf 5cee78c) | 5ad107f | +| B2 | Alle Cross-Plugin-Imports eliminiert: worker/agent_runner/workstream über Contracts, wiki-Deklaration | ✅ Scan 458 Dateien / 0 Verstöße (Gate-B-Check 5) | 7467c01 | +| B3 | ARCH-016 dynamische Entity-Registry (/registry generiert aus ENTITY_MODELS), ARCH-017 custom_fields-Permissions entkoppelt, ARCH-022 Write-Perms aus Registry generiert | ✅ Funktionstests + 23 Regressionen grün | e3fb472 | +| Gate-B-2 | Fresh-DB-Install: 7 Alembic-Migrationen konditional geguardet + 6 Plugin-Konvergenzmigrationen (ai_assistant/automation/kommunikation/report_generator/tags/tasks) | ✅ Alembic 0001→0141 komplett auf leerer DB; Plugin-Pfad 25/25 installiert+aktiviert; Schema-Konvergenz 8/8 bewiesen | ad7c763 | +| Gate-B-1/4 | Neues-Plugin ohne Core-Änderung (Inline-Route+Entity) + Dependency-Blockade bei Deaktivierung | ✅ Beide Funktionstests grün | d243420 | +| Latenter Bug | knowledge.on_activate importierte register_action als Modulfunktion (existiert nur als Registry-Methode) — Knowledge-Hooks wurden NIE registriert | ✅ get_hook_registry().register_action umgestellt | d243420-Vorbereitung | **Block A ABGESCHLOSSEN** — Gate A bestanden (32f63ad). +**Block B ABGESCHLOSSEN** — Gate B bestanden (alle 5 Checks bewiesen). ### Bekannte Vorbestände (Block D Triage) - 9 Contact/Company-Test-Failures existieren seit vor Block B (Stash-Verifikation 2026-08-23): KeyError 'id' bei Create/Delete/Link-Flows — Ursache ungeklärt, gehört zur pytest-Massen-Triage. diff --git a/docs/test-bugs.md b/docs/test-bugs.md index 355eafb..247d9cd 100644 --- a/docs/test-bugs.md +++ b/docs/test-bugs.md @@ -907,13 +907,13 @@ Playwright E2E: 10 passed, 24 failed (BUG-011/012/013 — Mock-Daten und data-te - **Datei:** app/services/entity_permission_service.py:54, app/routes/entity_permissions.py:252 - **Problem:** ENTITY_MODELS ist statisch. Neue Plugin-Entities werden dynamisch registriert, aber entity_permissions.py hat eine statische Liste. - **Schweregrad:** Medium -- **Status:** ⏳ Nicht gefixt +- **Status:** ✅ Gefixt 2026-08-23 (Block B/B3): /registry-Endpoint generiert jetzt dynamisch aus ENTITY_MODELS (Label-Map für bekannte Typen, Title-Case-Fallback für Plugin-Entities, Alias-Dedupe); notification ins Registry-Core ergänzt; neue Plugin-Entities erscheinen automatisch ohne Core-Änderung ### ARCH-017: Custom Fields an Contacts-Permission gekoppelt - **Datei:** app/routes/custom_field_definitions.py:25,42 - **Problem:** Verwendet contacts:read/write statt generischer Entity-Permissions. - **Schweregrad:** Medium -- **Status:** ⏳ Nicht gefixt +- **Status:** ✅ Gefixt 2026-08-23 (Block B/B3): Neue Core-Permissions custom_fields:read/write in CORE_PERMISSIONS registriert; alle 4 Definitions-Routes umgestellt; Values-Endpoint bleibt bei contacts (Entity-Zugriff); RBAC-Test unverändert grün ### ARCH-018: Notification/Communication und AI-Chat doppelt - **Datei:** app/plugins/builtins/system_notif/plugin.py, app/plugins/builtins/kommunikation/ @@ -943,7 +943,7 @@ Playwright E2E: 10 passed, 24 failed (BUG-011/012/013 — Mock-Daten und data-te - **Datei:** app/deps.py:22-35 - **Problem:** Hardcoded Liste mit 12 Einträgen. Neue Plugin-Write-Permissions fehlen. - **Schweregrad:** Medium -- **Status:** ⏳ Nicht gefixt +- **Status:** ✅ Gefixt 2026-08-23 (Block B/B3): _get_write_permissions() generiert die Write-Permissions lazy aus der permission_registry (Core + aktive Plugins); Legacy-Liste nur noch als Fallback bei uninitialisierter Registry; Funktionstest beweist automatische Aufnahme von custom_fields:write und Plugin-Perms ### ARCH-023: service_container.py initialize() unvollständig - **Datei:** app/core/service_container.py:36-37