docs: 389 Architektur-Fehler — alle Plugin-Manifeste gelesen
This commit is contained in:
@@ -3056,3 +3056,87 @@ Playwright E2E: 10 passed, 24 failed (BUG-011/012/013 — Mock-Daten und data-te
|
||||
- **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
|
||||
|
||||
### ARCH-376: registry.py — `from app.core.redis import get_redis` aber app/core/redis.py existiert nicht
|
||||
- **Datei:** app/plugins/registry.py:600, 650
|
||||
- **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. ImportError bei Cache-Invalidation.
|
||||
- **Schweregrad:** High
|
||||
- **Status:** ⏳ Nicht gefixt
|
||||
|
||||
### ARCH-377: registry.py — sync_notification_types löscht Types nicht vollständig bei Deaktivierung
|
||||
- **Datei:** app/plugins/registry.py:181
|
||||
- **Problem:** sync_notification_types löscht nur Types wenn das Plugin nicht mehr aktiv ist. Aber die Reihenfolge ist: on_deactivate() → sync_notification_types(). Wenn on_deactivate fehlschlägt, bleiben Types.
|
||||
- **Schweregrad:** Medium
|
||||
- **Status:** ⏳ Nicht gefixt
|
||||
|
||||
### ARCH-378: registry.py — activate() ruft on_activate() vor sync_notification_types() auf
|
||||
- **Datei:** app/plugins/registry.py:580
|
||||
- **Problem:** Reihenfolge: on_activate() → register_contributions() → sync_notification_types(). Wenn on_activate Event-Handler registriert die Notification-Types verwenden, sind die Types noch nicht in DB.
|
||||
- **Schweregrad:** Medium
|
||||
- **Status:** ⏳ Nicht gefixt
|
||||
|
||||
### ARCH-379: contracts.py — _try_lazy_load lädt deaktivierte Plugins neu
|
||||
- **Datei:** app/plugins/builtins/contracts.py:109
|
||||
- **Problem:** `get_contract()` macht `_try_lazy_load()` auch nach `unregister()`. `unregister()` entfernt Contract und setzt `_loaded`, aber `_try_lazy_load` kann ihn wiederherstellen. Problem 14 bestätigt.
|
||||
- **Schweregrad:** High
|
||||
- **Status:** ⏳ Nicht gefixt
|
||||
|
||||
### ARCH-380: base.py — on_activate registriert Event-Handler ohne Duplikatsprüfung
|
||||
- **Datei:** app/plugins/base.py:59
|
||||
- **Problem:** `event_bus.subscribe(event_name, handler)` wird bei jedem `on_activate()` aufgerufen. Bei mehrfachem `on_activate()` (pro Tenant) werden Handler doppelt registriert. Problem 2 und 20 bestätigt.
|
||||
- **Schweregrad:** High
|
||||
- **Status:** ⏳ Nicht gefixt
|
||||
|
||||
### ARCH-381: base.py — on_deactivate überschreibt _event_handlers nicht
|
||||
- **Datei:** app/plugins/base.py:75
|
||||
- **Problem:** `on_deactivate()` ruft `self._event_handlers.clear()` auf, aber wenn eine Subclass `on_deactivate()` überschreibt und `super().on_deactivate()` nicht aufruft, werden Event-Handler nicht deregistriert.
|
||||
- **Schweregrad:** Medium
|
||||
- **Status:** ⏳ Nicht gefixt
|
||||
|
||||
### ARCH-382: contacts/plugin.py — Routes=[] aber Core hat contacts routes (Doppelarchitektur)
|
||||
- **Datei:** app/plugins/builtins/contacts/plugin.py:40
|
||||
- **Problem:** `routes=[]` mit Kommentar 'Routes are registered as core routes in main.py'. Contacts ist halb Plugin halb Core — Problem 5 bestätigt.
|
||||
- **Schweregrad:** High
|
||||
- **Status:** ⏳ Nicht gefixt
|
||||
|
||||
### ARCH-383: ai_assistant/plugin.py — menu_items und page_routes für AIAssistant (Phase 2 entfernt)
|
||||
- **Datei:** app/plugins/builtins/ai_assistant/plugin.py:80
|
||||
- **Problem:** Manifest hat noch `menu_items` und `page_routes` für `/ai-assistant` — aber AIAssistant.tsx wurde in Phase 2 entfernt. Frontend wird versuchen eine nicht existierende Seite zu laden.
|
||||
- **Schweregrad:** High
|
||||
- **Status:** ⏳ Nicht gefixt
|
||||
|
||||
### ARCH-384: knowledge/plugin.py — uuid wird verwendet aber nicht importiert
|
||||
- **Datei:** app/plugins/builtins/knowledge/plugin.py:40
|
||||
- **Problem:** `uuid.UUID(str(tenant_id))` wird verwendet, aber `import uuid` fehlt am Datei-Anfang. Problem 12 bestätigt.
|
||||
- **Schweregrad:** High
|
||||
- **Status:** ⏳ Nicht gefixt
|
||||
|
||||
### ARCH-385: wiki/plugin.py — Cross-Plugin Import (unified_search)
|
||||
- **Datei:** app/plugins/builtins/wiki/plugin.py:30
|
||||
- **Problem:** `from app.plugins.builtins.unified_search.providers.wiki_provider import WikiSearchProvider` — direkter Plugin→Plugin Import. Sollte über Contract gehen. Problem 6/15 bestätigt.
|
||||
- **Schweregrad:** Medium
|
||||
- **Status:** ⏳ Nicht gefixt
|
||||
|
||||
### ARCH-386: wiki/plugin.py — on_deactivate ruft unregister_actions_by_owner aber nicht base on_deactivate
|
||||
- **Datei:** app/plugins/builtins/wiki/plugin.py:35
|
||||
- **Problem:** `unregister_actions_by_owner('wiki')` wird aufgerufen, dann `await super().on_deactivate()`. Aber wenn super().on_deactivate() fehlschlägt, sind Actions bereits deregistriert. Reihenfolge sollte umgekehrt sein.
|
||||
- **Schweregrad:** Low
|
||||
- **Status:** ⏳ Nicht gefixt
|
||||
|
||||
### ARCH-387: system_notif/plugin.py — Legacy Notifications parallel zu Kommunikation
|
||||
- **Datei:** app/plugins/builtins/system_notif/plugin.py
|
||||
- **Problem:** system_notif konvertiert System-Events in Chat-Nachrichten über kommunikation. Aber es gibt auch noch die Legacy Notification Routes (notifications.py). Doppelarchitektur. Problem 18 bestätigt.
|
||||
- **Schweregrad:** Medium
|
||||
- **Status:** ⏳ Nicht gefixt
|
||||
|
||||
### ARCH-388: self_improvement/plugin.py — dependencies deklariert ai_proactive aber nicht kommunikation
|
||||
- **Datei:** app/plugins/builtins/self_improvement/plugin.py:30
|
||||
- **Problem:** `dependencies=['permissions', 'automation', 'ai_proactive']` — aber services.py importiert von kommunikation. Nicht deklariert. Problem 13/29 bestätigt.
|
||||
- **Schweregrad:** Medium
|
||||
- **Status:** ⏳ Nicht gefixt
|
||||
|
||||
### ARCH-389: tasks/plugin.py — dependencies deklariert nicht kommunikation
|
||||
- **Datei:** app/plugins/builtins/tasks/plugin.py
|
||||
- **Problem:** `dependencies=['permissions']` — aber tasks/workstream.py importiert von kommunikation. Nicht deklariert. Problem 29 bestätigt.
|
||||
- **Schweregrad:** Medium
|
||||
- **Status:** ⏳ Nicht gefixt
|
||||
|
||||
Reference in New Issue
Block a user