docs: block B complete - gate B passed all 5 checks

This commit is contained in:
Agent Zero
2026-08-23 21:46:21 +02:00
parent d2434203c1
commit 8a76bfdba4
2 changed files with 9 additions and 3 deletions
+6
View File
@@ -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.
+3 -3
View File
@@ -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