docs: 6 weitere Architektur-Fehler (ARCH-047 bis ARCH-052) — manuelle Code-Analyse

This commit is contained in:
Agent Zero
2026-08-23 00:43:59 +02:00
parent 29b3e1acb9
commit 2506641b32
+36
View File
@@ -1088,3 +1088,39 @@ Playwright E2E: 10 passed, 24 failed (BUG-011/012/013 — Mock-Daten und data-te
- **Problem:** `from app.plugins.builtins.automation.models import AgentDefinition` — Core Route importiert direkt von Plugin Model. Sollte über Contract laufen.
- **Schweregrad:** Medium
- **Status:** ⏳ Nicht gefixt
### ARCH-047: step_handlers.py — SearchContract statt UnifiedSearchContract
- **Datei:** app/workflows/step_handlers.py:306
- **Problem:** `from app.plugins.builtins.unified_search.contracts import SearchContract` — die Klasse heißt `UnifiedSearchContract`, nicht `SearchContract`. ImportError zur Laufzeit.
- **Schweregrad:** High
- **Status:** ⏳ Nicht gefixt
### ARCH-048: engine.py — register_workflow_event_handlers nutzt falschen payload key
- **Datei:** app/workflows/engine.py:register_workflow_event_handlers
- **Problem:** `payload.get("event", "")` — aber der outbox envelope nutzt `event_name` als key, nicht `event`. Workflow-Events werden nie triggern weil der key immer leer ist.
- **Schweregrad:** High
- **Status:** ⏳ Nicht gefixt
### ARCH-049: engine.py — Core→Plugin direkter Import von kommunikation.models
- **Datei:** app/workflows/engine.py:94,95
- **Problem:** `from app.plugins.builtins.kommunikation.models import CommConversation` — Core importiert direkt von Plugin. Sollte über Contract laufen.
- **Schweregrad:** Medium
- **Status:** ⏳ Nicht gefixt
### ARCH-050: engine.py — acquire_lock awaitet nicht-async get_redis()
- **Datei:** app/workflows/engine.py:acquire_lock
- **Problem:** `r = await get_redis()` — `get_redis()` ist nicht async (gibt direkt aioredis.Redis zurück). `await` auf einem nicht-awaitable Objekt wirft TypeError.
- **Schweregrad:** High
- **Status:** ⏳ Nicht gefixt
### ARCH-051: Mehrere Routes nutzen dict body statt Pydantic schema
- **Dateien:** app/routes/companies.py:86,198, app/routes/entity_permissions.py:259,284, app/routes/guests.py:38, app/routes/system_settings.py:89,246, app/routes/users.py:371
- **Problem:** Mehrere Routes akzeptieren `body: dict[str, Any]` oder `body: dict` statt Pydantic schemas. Verletzt AGENTS.md: "Pydantic schemas validate input, never validate in routes".
- **Schweregrad:** Medium
- **Status:** ⏳ Nicht gefixt
### ARCH-052: storage.py — get_file_metadata nutzt asyncio.new_event_loop() in async Kontext
- **Datei:** app/core/storage.py:get_file_metadata
- **Problem:** `loop = asyncio.new_event_loop()` für S3 fallback — erstellt einen neuen Event Loop in einem async Kontext. Kann zu Deadlocks führen wenn bereits ein Loop läuft.
- **Schweregrad:** Medium
- **Status:** ⏳ Nicht gefixt