docs: 375 Architektur-Fehler — Routes+Services+Models+Schemas+AI+Workflows komplett gelesen

This commit is contained in:
Agent Zero
2026-08-22 23:18:36 +02:00
parent dfd22916ef
commit 7e3ff9d5c7
+78
View File
@@ -2978,3 +2978,81 @@ Playwright E2E: 10 passed, 24 failed (BUG-011/012/013 — Mock-Daten und data-te
- **Problem:** Bekannte Inkonsistenz: Address-Tabelle wird für Bank-Accounts genutzt, Contacts nutzen inline Address-Felder. Doppelarchitektur.
- **Schweregrad:** Low
- **Status:** ⏳ Nicht gefixt
### ARCH-363: system_settings.py — SystemSettingsResponse gibt sensitive Felder zurück
- **Datei:** app/schemas/system_settings.py:50
- **Problem:** SystemSettingsResponse gibt tax_number, vat_id, iban, bic in Response zurück. Route maskiert für non-admin, aber Schema erlaubt es.
- **Schweregrad:** Medium
- **Status:** ⏳ Nicht gefixt
### ARCH-364: bank_account.py — BankAccountResponse gibt iban/bic zurück
- **Datei:** app/schemas/bank_account.py:35
- **Problem:** BankAccountResponse gibt iban und bic in Response zurück. Sensitive Finanzdaten.
- **Schweregrad:** Medium
- **Status:** ⏳ Nicht gefixt
### ARCH-365: agent_loop.py — Core→Plugin Imports (contracts, kommunikation, ai_assistant)
- **Datei:** app/ai/agent_loop.py:280, 300
- **Problem:** Importiert `from app.plugins.builtins.contracts import get_contract_registry`, `from app.plugins.builtins.kommunikation.models import CommConversation`, `from app.plugins.builtins.ai_assistant.tool_registry import ToolRegistry`. Core→Plugin Verstöße.
- **Schweregrad:** High
- **Status:** ⏳ Nicht gefixt
### ARCH-366: llm_client.py — Core→Plugin Import (get_contract)
- **Datei:** app/ai/llm_client.py:292
- **Problem:** `from app.plugins.builtins.contracts import get_contract` — Core→Plugin Import.
- **Schweregrad:** High
- **Status:** ⏳ Nicht gefixt
### ARCH-367: context_builder.py — Core→Plugin Import (ai_assistant contracts)
- **Datei:** app/ai/context_builder.py:224
- **Problem:** `from app.plugins.builtins.ai_assistant.contracts import get_tool_registry` — Core→Plugin Import.
- **Schweregrad:** High
- **Status:** ⏳ Nicht gefixt
### ARCH-368: agent_permissions.py — Core→Plugin Import (ai_assistant contracts)
- **Datei:** app/ai/agent_permissions.py:64
- **Problem:** `from app.plugins.builtins.ai_assistant.contracts import get_tool_registry` — Core→Plugin Import.
- **Schweregrad:** High
- **Status:** ⏳ Nicht gefixt
### ARCH-369: oversight.py — DB Model in ai/ Module statt models/
- **Datei:** app/ai/oversight.py:50
- **Problem:** `DecisionRecordDB` ist ein SQLAlchemy Model definiert in `app/ai/oversight.py` statt in `app/models/`. Sollte in models/ sein.
- **Schweregrad:** Medium
- **Status:** ⏳ Nicht gefixt
### ARCH-370: agent_loop.py — `pass # agent_workstream removed` Dead Code
- **Datei:** app/ai/agent_loop.py:280
- **Problem:** `pass # agent_workstream removed` — Dead Code Kommentar, Code wurde entfernt aber Kommentar bleibt.
- **Schweregrad:** Low
- **Status:** ⏳ Nicht gefixt
### ARCH-371: engine.py — Core→Plugin Imports (contracts, kommunikation)
- **Datei:** app/workflows/engine.py:100, 110
- **Problem:** Importiert `from app.plugins.builtins.contracts import get_contract_registry`, `from app.plugins.builtins.kommunikation.models import CommConversation`. Core→Plugin Verstöße.
- **Schweregrad:** High
- **Status:** ⏳ Nicht gefixt
### ARCH-372: step_handlers.py — Core→Plugin Imports (mail, calendar, dms, search, automation contracts)
- **Datei:** app/workflows/step_handlers.py:200, 250, 300, 350, 400
- **Problem:** Importiert direkt von `app.plugins.builtins.mail.contracts`, `calendar.contracts`, `dms.contracts`, `unified_search.contracts`, `automation.contracts`. Core→Plugin Verstöße.
- **Schweregrad:** High
- **Status:** ⏳ Nicht gefixt
### ARCH-373: step_handlers.py — crm handler importiert contact_service direkt
- **Datei:** app/workflows/step_handlers.py:450
- **Problem:** `from app.services.contact_service import create_contact, update_contact` — direkter Service-Import in Step Handler. Sollte über Contract oder generische Interface gehen.
- **Schweregrad:** Medium
- **Status:** ⏳ Nicht gefixt
### ARCH-374: engine.py — acquire_lock fail-open
- **Datei:** app/workflows/engine.py:550
- **Problem:** `return True # Fail open — allow processing without lock` — wenn Redis-Lock nicht akquiriert werden kann, wird der Workflow trotzdem ausgeführt. Das kann zu Race Conditions führen.
- **Schweregrad:** Medium
- **Status:** ⏳ Nicht gefixt
### ARCH-375: engine.py — `from app.core.redis import get_redis` aber app/core/redis.py existiert nicht
- **Datei:** app/workflows/engine.py:540
- **Problem:** `from app.core.redis import get_redis` — aber es gibt keine `app/core/redis.py`. Redis wird über `app.core.auth.get_redis` importiert. Das wird einen ImportError geben.
- **Schweregrad:** High
- **Status:** ⏳ Nicht gefixt