docs: 127 Architektur-Fehler (ARCH-001 bis ARCH-127) durch systematisches Code-Review dokumentiert
This commit is contained in:
@@ -1514,3 +1514,63 @@ Playwright E2E: 10 passed, 24 failed (BUG-011/012/013 — Mock-Daten und data-te
|
||||
- **Problem:** authenticate_ws authentifiziert User aber prüft nicht ob das Plugin (kommunikation) aktiv ist. WebSocket bleibt offen auch wenn Plugin deaktiviert ist.
|
||||
- **Schweregrad:** Medium
|
||||
- **Status:** ⏳ Nicht gefixt
|
||||
|
||||
### ARCH-118: ai/agent_tools.py — _user_has_permission dupliziert check_permission
|
||||
- **Datei:** app/ai/agent_tools.py:22-40
|
||||
- **Problem:** _user_has_permission() dupliziert die Logik aus app/core/permissions.py:check_permission(). Zwei Implementierungen desselben Checks.
|
||||
- **Schweregrad:** Medium
|
||||
- **Status:** ⏳ Nicht gefixt
|
||||
|
||||
### ARCH-119: ai/data_policy.py — _CATEGORY_ENTITY_MAP statisch
|
||||
- **Datei:** app/ai/data_policy.py:24-28
|
||||
- **Problem:** _CATEGORY_ENTITY_MAP ist statisch. Neue Plugin-Entities werden nicht erfasst.
|
||||
- **Schweregrad:** Low
|
||||
- **Status:** ⏳ Nicht gefixt
|
||||
|
||||
### ARCH-120: ai/oversight.py — DecisionRecord als @dataclass statt Model
|
||||
- **Datei:** app/ai/oversight.py:30
|
||||
- **Problem:** DecisionRecord ist ein @dataclass, nicht in models/. Inkonsistent mit anderen Models. Wird nicht in DB gespeichert.
|
||||
- **Schweregrad:** Medium
|
||||
- **Status:** ⏳ Nicht gefixt
|
||||
|
||||
### ARCH-121: ai/action_mapper.py — _PATTERNS hardcoded Regex
|
||||
- **Datei:** app/ai/action_mapper.py:12-25
|
||||
- **Problem:** _PATTERNS und _NAME_PATTERNS sind hardcoded Regex. Nicht konfigurierbar, nicht erweiterbar durch Plugins.
|
||||
- **Schweregrad:** Low
|
||||
- **Status:** ⏳ Nicht gefixt
|
||||
|
||||
### ARCH-122: workflows/decision_guard.py — HIGH_RISK_ACTIONS statisch
|
||||
- **Datei:** app/workflows/decision_guard.py:25
|
||||
- **Problem:** HIGH_RISK_ACTIONS ist statisch. Neue Actions können nicht dynamisch hinzugefügt werden.
|
||||
- **Schweregrad:** Low
|
||||
- **Status:** ⏳ Nicht gefixt
|
||||
|
||||
### ARCH-123: workflows/engine.py — importiert post_system_message (Core→Plugin Kette)
|
||||
- **Datei:** app/workflows/engine.py:13
|
||||
- **Problem:** `from app.core.notifications import post_system_message` — notifications.py importiert wiederum von plugins.builtins.contracts. Indirekte Core→Plugin Abhängigkeit.
|
||||
- **Schweregrad:** Medium
|
||||
- **Status:** ⏳ Nicht gefixt
|
||||
|
||||
### ARCH-124: workflows/step_handlers.py — StepResult ohne __slots__
|
||||
- **Datei:** app/workflows/step_handlers.py:22
|
||||
- **Problem:** StepResult ist eine Klasse ohne __slots__. Memory-Verschwendung bei vielen Instanzen.
|
||||
- **Schweregrad:** Low
|
||||
- **Status:** ⏳ Nicht gefixt
|
||||
|
||||
### ARCH-125: ai/skill_registry.py — SkillRegistry nicht thread-safe
|
||||
- **Datei:** app/ai/skill_registry.py:40
|
||||
- **Problem:** SkillRegistry hat ein globales _skills dict ohne Locks. Bei gleichzeitiger Registrierung kann es zu Race Conditions kommen.
|
||||
- **Schweregrad:** Low
|
||||
- **Status:** ⏳ Nicht gefixt
|
||||
|
||||
### ARCH-126: ai/ai_use_case.py — KNOWN_DATA_CATEGORIES statisch
|
||||
- **Datei:** app/ai/ai_use_case.py:18
|
||||
- **Problem:** KNOWN_DATA_CATEGORIES ist statisch. Neue Plugin-Kategorien werden nicht erfasst.
|
||||
- **Schweregrad:** Low
|
||||
- **Status:** ⏳ Nicht gefixt
|
||||
|
||||
### ARCH-127: ai/transparency.py — AI_PARTICIPANT_TYPES statisch
|
||||
- **Datei:** app/ai/transparency.py:14
|
||||
- **Problem:** AI_PARTICIPANT_TYPES ist statisch. Neue AI-Participant-Types können nicht dynamisch hinzugefügt werden.
|
||||
- **Schweregrad:** Low
|
||||
- **Status:** ⏳ Nicht gefixt
|
||||
|
||||
Reference in New Issue
Block a user