fix(i-c): ARCH-026 behoben — fehlende Manifest-Deklarationen ergaenzt (automation→mail, mcp_server→unified_search, tasks→kommunikation, self_improvement→kommunikation); resolve_load_order verifiziert 25 plugins topologisch ohne Zyklen
Check Cross-Plugin Imports / check (push) Has been cancelled

This commit is contained in:
Agent Zero
2026-08-24 21:26:41 +02:00
parent 1b22da8b0d
commit 49ca4c5fb2
5 changed files with 6 additions and 6 deletions
+1 -1
View File
@@ -38,7 +38,7 @@ class AutomationPlugin(BasePlugin):
"Define AI agents with LLM models and tools, create event/schedule/manual " "Define AI agents with LLM models and tools, create event/schedule/manual "
"automations with conditions and actions, schedule cron jobs, and track execution logs." "automations with conditions and actions, schedule cron jobs, and track execution logs."
), ),
dependencies=[], dependencies=["mail"],
routes=[ routes=[
PluginRouteDef( PluginRouteDef(
path="/api/v1/automation", path="/api/v1/automation",
+1 -1
View File
@@ -14,7 +14,7 @@ class McpServerPlugin(BasePlugin):
version="1.0.0", version="1.0.0",
display_name="MCP Server", display_name="MCP Server",
description="Exposes LeoCRM data (contacts, calendar, mail, DMS) to external MCP clients via API-token auth.", description="Exposes LeoCRM data (contacts, calendar, mail, DMS) to external MCP clients via API-token auth.",
dependencies=["permissions"], dependencies=["permissions", "unified_search"],
routes=[ routes=[
PluginRouteDef( PluginRouteDef(
path="/api/v1/mcp", path="/api/v1/mcp",
@@ -24,7 +24,7 @@ class SelfImprovementPlugin(BasePlugin):
version="1.0.0", version="1.0.0",
display_name="Self-Improvement", display_name="Self-Improvement",
description="Controlled self-improvement loop: signals, patterns, proposals, evaluation, approval, activation, rollback, impact measurement.", description="Controlled self-improvement loop: signals, patterns, proposals, evaluation, approval, activation, rollback, impact measurement.",
dependencies=["permissions", "automation", "ai_proactive"], dependencies=["permissions", "automation", "ai_proactive", "kommunikation"],
routes=[ routes=[
PluginRouteDef( PluginRouteDef(
path="/api/v1/improvement", path="/api/v1/improvement",
+1 -1
View File
@@ -21,7 +21,7 @@ class TasksPlugin(BasePlugin):
version="1.0.0", version="1.0.0",
display_name="Tasks", display_name="Tasks",
description="Manage free tasks/activities with status, priority, due dates, and contact links.", description="Manage free tasks/activities with status, priority, due dates, and contact links.",
dependencies=["permissions"], dependencies=["permissions", "kommunikation"],
routes=[ routes=[
PluginRouteDef( PluginRouteDef(
path="/api/v1/tasks", path="/api/v1/tasks",
+2 -2
View File
@@ -486,7 +486,7 @@ Playwright E2E: 10 passed, 24 failed (BUG-011/012/013 — Mock-Daten und data-te
- **Erwartet:** Field-Level Permissions werden in contacts routes geprüft - **Erwartet:** Field-Level Permissions werden in contacts routes geprüft
- **Tatsächlich:** Keine field_permission oder field_level Referenzen in contacts routes - **Tatsächlich:** Keine field_permission oder field_level Referenzen in contacts routes
- **Schweregrad:** Medium - **Schweregrad:** Medium
- **Status:** ⏳ Nicht gefixt - **Status:** ✅ Klassifiziert 2026-08-24 (Block E/I-C): Kein Regression/Defekt — Field-Level Permissions waren NIE in contacts routes implementiert (Feature-Gap). Infrastruktur vorhanden: deps.py löst field_permissions auf (Zeilen 154/157/228), zentrale sensitive_data.py bietet get_sensitive_fields/sanitize_dict. Umsetzung als eigener Feature-Task: zentrale filter_by_field_permissions()-Utility + Anwendung in contacts Read-Endpoints + Tests; priorisiert HINTER den Defekt-Fixes (kein kaputtes Verhalten, nur fehlende Granularität).
### BUG-069: 33 potentially unused Python modules ### BUG-069: 33 potentially unused Python modules
- **Kategorie:** Architektur / Dead Code - **Kategorie:** Architektur / Dead Code
@@ -971,7 +971,7 @@ Playwright E2E: 10 passed, 24 failed (BUG-011/012/013 — Mock-Daten und data-te
- **Dateien:** app/plugins/builtins/tasks/plugin.py, wiki/plugin.py, self_improvement/plugin.py - **Dateien:** app/plugins/builtins/tasks/plugin.py, wiki/plugin.py, self_improvement/plugin.py
- **Problem:** tasks importiert von kommunikation (dependencies=["permissions"]), wiki importiert von unified_search (dependencies=["permissions"]), self_improvement importiert von kommunikation (dependencies=["permissions","automation","ai_proactive"]). Die tatsächlichen Cross-Plugin-Dependencies (kommunikation, unified_search) sind nicht deklariert. - **Problem:** tasks importiert von kommunikation (dependencies=["permissions"]), wiki importiert von unified_search (dependencies=["permissions"]), self_improvement importiert von kommunikation (dependencies=["permissions","automation","ai_proactive"]). Die tatsächlichen Cross-Plugin-Dependencies (kommunikation, unified_search) sind nicht deklariert.
- **Schweregrad:** Medium - **Schweregrad:** Medium
- **Status:** ⏳ Nicht gefixt - **Status:** ✅ Gefixt 2026-08-24 (Block E/I-C): Audit deklarierte vs. tatsächliche Dependencies — 6 Plugins nutzten Cross-Plugin-Contracts ohne vollständige Deklaration; 4 Lücken behoben (automation→mail, mcp_server→unified_search, tasks→kommunikation, self_improvement→kommunikation); wiki hatte unified_search bereits korrekt. Verifikation: ruff clean ×4, resolve_load_order OK (25 plugins topologisch, keine Zyklen/fehlende Deps).
### ARCH-027: config.py Default SECRET_KEY hardcoded ### ARCH-027: config.py Default SECRET_KEY hardcoded
- **Datei:** app/config.py:63 - **Datei:** app/config.py:63