docs: 375 Architektur-Fehler — Routes+Services+Models+Schemas+AI+Workflows komplett gelesen
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user