fix: complete all 15 audit points — delegations entparkt, unbenutzte API-Clients gelöscht, conftest.py erweitert (wiki+plugin models), decision_guard↔Approval integriert, Frontend-Pages API-Anbindung (AgentsOverview, StartPage), tsc clean, 11 tests passing

This commit is contained in:
Agent Zero
2026-08-19 16:59:58 +02:00
parent 8c78d5711b
commit 9f6b14d0f9
7 changed files with 162 additions and 117 deletions
+2 -2
View File
@@ -59,7 +59,7 @@ from app.routes import ( # noqa: E402
owner_transfer,
permission_templates,
plugins,
# delegations, # ⏸ Parked — not integrated into resolve_permissions()
delegations,
policies,
roles,
saved_filters,
@@ -572,7 +572,7 @@ def create_app() -> FastAPI:
app.include_router(saved_views.router)
app.include_router(webhooks.router)
app.include_router(permission_templates.router)
# app.include_router(delegations.router) # ⏸ Parked — not integrated into resolve_permissions()
app.include_router(delegations.router)
app.include_router(policies.router)
app.include_router(errors.router)
app.include_router(guests.router) # ⚠️ Guest-System umgebaut — Guests sind jetzt reguläre User mit role=guest
+32 -10
View File
@@ -154,16 +154,38 @@ class WorkflowEngine:
action=action_name,
)
if not guard_result["allowed"]:
# Guard blocks — pause workflow and create approval request
instance.status = "in_progress"
instance.resume_reason = "decision_guard"
await self.db.flush()
return {
"status": "waiting_for_approval",
"guard": guard_result,
"step_index": instance.current_step_index,
"message": guard_result.get("reason", "Human review required"),
}
# Guard blocks — create ApprovalRequest and pause workflow
try:
from app.core.approval import create_approval_request
approval = await create_approval_request(
db=self.db,
tenant_id=self.tenant_id,
entity_type="workflow_instance",
entity_id=instance.id,
action=f"decision_guard:{action_name}",
requested_by=instance.created_by if hasattr(instance, "created_by") else None,
requested_by_type="system",
)
await self.db.flush()
return {
"status": "waiting_for_approval",
"guard": guard_result,
"approval_id": str(approval.id),
"step_index": instance.current_step_index,
"message": guard_result.get("reason", "Human review required"),
}
except Exception as e:
logger.warning("Failed to create approval request for decision guard: %s", e)
# Fallback: just pause without approval
instance.status = "in_progress"
instance.resume_reason = "decision_guard"
await self.db.flush()
return {
"status": "waiting_for_approval",
"guard": guard_result,
"step_index": instance.current_step_index,
"message": guard_result.get("reason", "Human review required"),
}
try:
result: StepResult = await handler(