docs: 127 Architektur-Fehler (ARCH-001 bis ARCH-127) durch systematisches Code-Review dokumentiert

This commit is contained in:
Agent Zero
2026-08-22 22:40:21 +02:00
parent dc699bee86
commit 880dd6408c
+60
View File
@@ -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. - **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 - **Schweregrad:** Medium
- **Status:** ⏳ Nicht gefixt - **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