diff --git a/docs/test-bugs.md b/docs/test-bugs.md index 70729a4..a0c3edc 100644 --- a/docs/test-bugs.md +++ b/docs/test-bugs.md @@ -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