fix: BUG-073 (broken imports), BUG-009 (contact folders id=None), BUG-014 (tags assign 500), BUG-016 (search performance use_ai), BUG-030 (user delete GRANT DELETE), BUG-052 (miniapps response), BUG-047 (approval_requests columns), BUG-037 (compliance refresh), prestart.sh GRANT DELETE
Check Cross-Plugin Imports / check (push) Has been cancelled

This commit is contained in:
Agent Zero
2026-08-22 07:10:25 +02:00
parent 57f4f3daca
commit b05204db14
17 changed files with 2413 additions and 725 deletions
+18 -18
View File
@@ -1,8 +1,8 @@
{
"timestamp": "2026-08-17T07:22:14.401718",
"total_time": 5.85,
"timestamp": "2026-08-21T23:28:32.357773",
"total_time": 3.8,
"total_scripts": 7,
"total_issues": 1173,
"total_issues": 1287,
"passed": 1,
"failed": 6,
"skipped": 0,
@@ -11,24 +11,24 @@
"name": "trace_api_contracts",
"description": "Frontend\u2194Backend API Contracts",
"status": "FAIL",
"exit_code": 246,
"elapsed": 0.22,
"issues": 758
"exit_code": 91,
"elapsed": 0.12,
"issues": 859
},
{
"name": "trace_hooks",
"description": "Hook Registrations vs Triggers",
"status": "FAIL",
"exit_code": 64,
"elapsed": 0.29,
"issues": 64
"exit_code": 70,
"elapsed": 0.14,
"issues": 70
},
{
"name": "trace_functions",
"description": "Dead Functions (defined but never called)",
"status": "FAIL",
"exit_code": 3,
"elapsed": 2.47,
"elapsed": 1.58,
"issues": 3
},
{
@@ -36,7 +36,7 @@
"description": "Unused Store Actions/State",
"status": "FAIL",
"exit_code": 67,
"elapsed": 0.09,
"elapsed": 0.04,
"issues": 323
},
{
@@ -44,24 +44,24 @@
"description": "Contract Attribute Mismatches",
"status": "PASS",
"exit_code": 0,
"elapsed": 1.41,
"elapsed": 0.93,
"issues": 0
},
{
"name": "trace_plugins",
"description": "Plugin\u2192Manifest\u2192Frontend Verkabelung",
"status": "FAIL",
"exit_code": 24,
"elapsed": 0.11,
"issues": 24
"exit_code": 27,
"elapsed": 0.06,
"issues": 27
},
{
"name": "trace_imports",
"description": "Broken/Missing Imports",
"status": "FAIL",
"exit_code": 1,
"elapsed": 1.24,
"issues": 1
"exit_code": 5,
"elapsed": 0.92,
"issues": 5
}
]
}
File diff suppressed because it is too large Load Diff
@@ -321,6 +321,11 @@
"contract": "DmsContract",
"attribute": "DmsFile",
"file": "app/plugins/builtins/permissions/public_routes.py"
},
{
"contract": "KommunikationContract",
"attribute": "send_message",
"file": "app/plugins/builtins/self_improvement/services.py"
}
],
"mismatches": []
@@ -1,8 +1,8 @@
{
"py_defs": 1575,
"py_dead": 627,
"ts_defs": 959,
"ts_dead": 442,
"py_defs": 1773,
"py_dead": 692,
"ts_defs": 1020,
"ts_dead": 457,
"critical_dead": [
{
"name": "seed_default_workspace",
+50 -1
View File
@@ -32,6 +32,10 @@
"file": "app/plugins/builtins/mail/plugin.py",
"hook_name": "mail.after_delete"
},
{
"file": "app/plugins/builtins/wiki/plugin.py",
"hook_name": "wiki"
},
{
"file": "app/plugins/builtins/contacts/plugin.py",
"hook_name": "contact.after_create"
@@ -67,6 +71,18 @@
{
"file": "app/plugins/builtins/calendar/plugin.py",
"hook_name": "calendar_entry.after_delete"
},
{
"file": "app/plugins/builtins/knowledge/plugin.py",
"hook_name": "wiki.article.created"
},
{
"file": "app/plugins/builtins/knowledge/plugin.py",
"hook_name": "wiki.article.updated"
},
{
"file": "app/plugins/builtins/knowledge/plugin.py",
"hook_name": "knowledge"
}
],
"triggers": [
@@ -94,6 +110,14 @@
"file": "app/routes/companies.py",
"hook_name": "company.after_delete"
},
{
"file": "app/ai/agent_loop.py",
"hook_name": "agent.step"
},
{
"file": "app/ai/agent_loop.py",
"hook_name": "agent.step"
},
{
"file": "app/services/contact_service.py",
"hook_name": "contact.before_create"
@@ -407,7 +431,24 @@
"hook_name": "tag.after_delete"
}
],
"orphan_registrations": [],
"orphan_registrations": [
{
"file": "app/plugins/builtins/wiki/plugin.py",
"hook_name": "wiki"
},
{
"file": "app/plugins/builtins/knowledge/plugin.py",
"hook_name": "wiki.article.created"
},
{
"file": "app/plugins/builtins/knowledge/plugin.py",
"hook_name": "wiki.article.updated"
},
{
"file": "app/plugins/builtins/knowledge/plugin.py",
"hook_name": "knowledge"
}
],
"orphan_triggers": [
{
"file": "app/routes/companies.py",
@@ -433,6 +474,14 @@
"file": "app/routes/companies.py",
"hook_name": "company.after_delete"
},
{
"file": "app/ai/agent_loop.py",
"hook_name": "agent.step"
},
{
"file": "app/ai/agent_loop.py",
"hook_name": "agent.step"
},
{
"file": "app/services/contact_service.py",
"hook_name": "contact.before_update"
+29 -1
View File
@@ -1,6 +1,34 @@
{
"total_imports": 2251,
"total_imports": 2556,
"broken": [
{
"file": "app/workflows/step_handlers.py",
"module": "app.services.company_service",
"name": "create_company",
"line": 447,
"issue": "Module not found"
},
{
"file": "app/workflows/step_handlers.py",
"module": "app.services.company_service",
"name": "update_company",
"line": 451,
"issue": "Module not found"
},
{
"file": "app/routes/workflows.py",
"module": "app.core.approval",
"name": "decide_approval",
"line": 476,
"issue": "Name 'decide_approval' not found in module"
},
{
"file": "app/routes/workflows.py",
"module": "app.core.approval",
"name": "decide_approval",
"line": 539,
"issue": "Name 'decide_approval' not found in module"
},
{
"file": "app/core/auth.py",
"module": "app.models.session",
+217 -37
View File
@@ -30,6 +30,11 @@
"path": "app/plugins/builtins/migrations",
"has_manifest": false
},
{
"name": "wiki",
"path": "app/plugins/builtins/wiki",
"has_manifest": false
},
{
"name": "tests",
"path": "app/plugins/builtins/tests",
@@ -80,6 +85,11 @@
"path": "app/plugins/builtins/system_notif",
"has_manifest": false
},
{
"name": "knowledge",
"path": "app/plugins/builtins/knowledge",
"has_manifest": false
},
{
"name": "entity_links",
"path": "app/plugins/builtins/entity_links",
@@ -119,6 +129,11 @@
"name": "ai_ui_control",
"path": "app/plugins/builtins/ai_ui_control",
"has_manifest": false
},
{
"name": "self_improvement",
"path": "app/plugins/builtins/self_improvement",
"has_manifest": false
}
],
"frontend_refs": {},
@@ -268,6 +283,26 @@
"path": "/subtasks/aggregate",
"file": "app/plugins/builtins/automation/routes.py"
},
{
"method": "POST",
"path": "/",
"file": "app/plugins/builtins/automation/skill_routes.py"
},
{
"method": "GET",
"path": "/{skill_id}",
"file": "app/plugins/builtins/automation/skill_routes.py"
},
{
"method": "PATCH",
"path": "/{skill_id}",
"file": "app/plugins/builtins/automation/skill_routes.py"
},
{
"method": "DELETE",
"path": "/{skill_id}",
"file": "app/plugins/builtins/automation/skill_routes.py"
},
{
"method": "POST",
"path": "/",
@@ -293,6 +328,16 @@
"path": "/{agent_id}",
"file": "app/plugins/builtins/automation/agent_routes.py"
},
{
"method": "GET",
"path": "/{agent_id}/ai-use-case",
"file": "app/plugins/builtins/automation/agent_routes.py"
},
{
"method": "PATCH",
"path": "/{agent_id}/ai-use-case",
"file": "app/plugins/builtins/automation/agent_routes.py"
},
{
"method": "DELETE",
"path": "/{agent_id}",
@@ -328,6 +373,11 @@
"path": "/{id}/send-message",
"file": "app/plugins/builtins/automation/agent_routes.py"
},
{
"method": "POST",
"path": "/{id}/stream",
"file": "app/plugins/builtins/automation/agent_routes.py"
},
{
"method": "GET",
"path": "/folders",
@@ -673,6 +723,51 @@
"path": "/{mail_id}",
"file": "app/plugins/builtins/mail/routes.py"
},
{
"method": "GET",
"path": "/articles",
"file": "app/plugins/builtins/wiki/routes.py"
},
{
"method": "POST",
"path": "/articles",
"file": "app/plugins/builtins/wiki/routes.py"
},
{
"method": "GET",
"path": "/articles/{article_id}",
"file": "app/plugins/builtins/wiki/routes.py"
},
{
"method": "PATCH",
"path": "/articles/{article_id}",
"file": "app/plugins/builtins/wiki/routes.py"
},
{
"method": "DELETE",
"path": "/articles/{article_id}",
"file": "app/plugins/builtins/wiki/routes.py"
},
{
"method": "GET",
"path": "/articles/{article_id}/versions",
"file": "app/plugins/builtins/wiki/routes.py"
},
{
"method": "POST",
"path": "/articles/{article_id}/versions/{version}/restore",
"file": "app/plugins/builtins/wiki/routes.py"
},
{
"method": "GET",
"path": "/categories",
"file": "app/plugins/builtins/wiki/routes.py"
},
{
"method": "POST",
"path": "/categories",
"file": "app/plugins/builtins/wiki/routes.py"
},
{
"method": "GET",
"path": "/{task_id}",
@@ -698,6 +793,31 @@
"path": "/{task_id}/status",
"file": "app/plugins/builtins/tasks/routes.py"
},
{
"method": "POST",
"path": "/{task_id}/subtasks",
"file": "app/plugins/builtins/tasks/routes.py"
},
{
"method": "GET",
"path": "/{task_id}/subtasks",
"file": "app/plugins/builtins/tasks/routes.py"
},
{
"method": "POST",
"path": "/{task_id}/dependencies",
"file": "app/plugins/builtins/tasks/routes.py"
},
{
"method": "DELETE",
"path": "/{task_id}/dependencies/{depends_on}",
"file": "app/plugins/builtins/tasks/routes.py"
},
{
"method": "POST",
"path": "/{task_id}/decompose",
"file": "app/plugins/builtins/tasks/routes.py"
},
{
"method": "GET",
"path": "/calendar/entries",
@@ -928,6 +1048,26 @@
"path": "/{report_id}/download",
"file": "app/plugins/builtins/report_generator/routes.py"
},
{
"method": "POST",
"path": "/extract",
"file": "app/plugins/builtins/knowledge/routes.py"
},
{
"method": "POST",
"path": "/ask",
"file": "app/plugins/builtins/knowledge/routes.py"
},
{
"method": "GET",
"path": "/review",
"file": "app/plugins/builtins/knowledge/routes.py"
},
{
"method": "POST",
"path": "/review/{extraction_id}",
"file": "app/plugins/builtins/knowledge/routes.py"
},
{
"method": "POST",
"path": "/files/{file_id}/link",
@@ -1198,36 +1338,6 @@
"path": "/tools",
"file": "app/plugins/builtins/ai_assistant/routes.py"
},
{
"method": "GET",
"path": "/sessions",
"file": "app/plugins/builtins/ai_assistant/routes.py"
},
{
"method": "POST",
"path": "/sessions",
"file": "app/plugins/builtins/ai_assistant/routes.py"
},
{
"method": "PUT",
"path": "/sessions/{session_id}",
"file": "app/plugins/builtins/ai_assistant/routes.py"
},
{
"method": "DELETE",
"path": "/sessions/{session_id}",
"file": "app/plugins/builtins/ai_assistant/routes.py"
},
{
"method": "GET",
"path": "/sessions/{session_id}/messages",
"file": "app/plugins/builtins/ai_assistant/routes.py"
},
{
"method": "POST",
"path": "/sessions/{session_id}/stream",
"file": "app/plugins/builtins/ai_assistant/routes.py"
},
{
"method": "GET",
"path": "/folders",
@@ -1250,17 +1360,12 @@
},
{
"method": "POST",
"path": "/sessions/{session_id}/attachments",
"path": "/conversations/{conversation_id}/stream",
"file": "app/plugins/builtins/ai_assistant/routes.py"
},
{
"method": "GET",
"path": "/sessions/{session_id}/attachments",
"file": "app/plugins/builtins/ai_assistant/routes.py"
},
{
"method": "GET",
"path": "/attachments/{attachment_id}/download",
"path": "/conversations/{conversation_id}/messages",
"file": "app/plugins/builtins/ai_assistant/routes.py"
},
{
@@ -1362,6 +1467,66 @@
"method": "GET",
"path": "/online-users",
"file": "app/plugins/builtins/ai_ui_control/routes.py"
},
{
"method": "POST",
"path": "/signals/collect",
"file": "app/plugins/builtins/self_improvement/routes.py"
},
{
"method": "GET",
"path": "/signals",
"file": "app/plugins/builtins/self_improvement/routes.py"
},
{
"method": "POST",
"path": "/patterns/detect",
"file": "app/plugins/builtins/self_improvement/routes.py"
},
{
"method": "GET",
"path": "/patterns",
"file": "app/plugins/builtins/self_improvement/routes.py"
},
{
"method": "POST",
"path": "/proposals",
"file": "app/plugins/builtins/self_improvement/routes.py"
},
{
"method": "GET",
"path": "/proposals",
"file": "app/plugins/builtins/self_improvement/routes.py"
},
{
"method": "GET",
"path": "/proposals/{proposal_id}",
"file": "app/plugins/builtins/self_improvement/routes.py"
},
{
"method": "POST",
"path": "/proposals/{proposal_id}/evaluate",
"file": "app/plugins/builtins/self_improvement/routes.py"
},
{
"method": "POST",
"path": "/proposals/{proposal_id}/request-approval",
"file": "app/plugins/builtins/self_improvement/routes.py"
},
{
"method": "POST",
"path": "/proposals/{proposal_id}/activate",
"file": "app/plugins/builtins/self_improvement/routes.py"
},
{
"method": "POST",
"path": "/proposals/{proposal_id}/rollback",
"file": "app/plugins/builtins/self_improvement/routes.py"
},
{
"method": "POST",
"path": "/proposals/{proposal_id}/measure",
"file": "app/plugins/builtins/self_improvement/routes.py"
}
],
"issues": [
@@ -1395,6 +1560,11 @@
"issue": "No manifest.py",
"severity": "HIGH"
},
{
"plugin": "wiki",
"issue": "No manifest.py",
"severity": "HIGH"
},
{
"plugin": "tests",
"issue": "No manifest.py",
@@ -1445,6 +1615,11 @@
"issue": "No manifest.py",
"severity": "HIGH"
},
{
"plugin": "knowledge",
"issue": "No manifest.py",
"severity": "HIGH"
},
{
"plugin": "entity_links",
"issue": "No manifest.py",
@@ -1484,6 +1659,11 @@
"plugin": "ai_ui_control",
"issue": "No manifest.py",
"severity": "HIGH"
},
{
"plugin": "self_improvement",
"issue": "No manifest.py",
"severity": "HIGH"
}
]
}
File diff suppressed because it is too large Load Diff