docs: 6 weitere Architektur-Fehler (ARCH-047 bis ARCH-052) — manuelle Code-Analyse
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user