feat(M4): System-Rueckbau — Dashboard-Inhalte als MiniApps, Core = reiner Host (#362)
Check Cross-Plugin Imports / check (push) Has been cancelled

- system_miniapps.py: audit_activity (audit:read, settings max_items) + system_metrics (settings:read) als Core-Apps in Registry
- base.py-Fix: native Manifest-MiniApps reichen component durch (M1-Luecke)
- contacts-Manifest: contacts_stats (ContactsStatsWidget, contacts:read, show_companies/show_persons)
- Seed-Fix: nur renderbare Apps (component) landen im Dashboard-Layout
- Frontend: ContactsStatsWidget, AuditActivityWidget, SystemMetricsWidget; MiniAppHost-Registry +3
- Dashboard.tsx = reiner Host (26 Z.); Page-Tests auf Pure-Host umgeschrieben
- Tests: M4 7/7 (TDD rot->gruen), Backend-Regression 46/46, Vitest 22/22, tsc clean, build OK
This commit is contained in:
Agent Zero
2026-08-30 22:22:20 +02:00
parent 9e254176c9
commit 3c496f4b6a
15 changed files with 463 additions and 237 deletions
+5 -1
View File
@@ -35,7 +35,10 @@ def _clean_miniapp_registry():
def _register_apps(*specs: tuple[str, str, int, int]) -> None:
"""Register test MiniApps: (app_id, permission, order, col_span)."""
"""Register test MiniApps: (app_id, permission, order, col_span).
M4: seed only places renderable apps, so test apps carry a component.
"""
from app.plugins.miniapp_registry import get_miniapp_registry
reg = get_miniapp_registry()
@@ -48,6 +51,7 @@ def _register_apps(*specs: tuple[str, str, int, int]) -> None:
col_span=col_span,
row_span=1,
hosts=["chat", "dashboard", "window"],
component="@/components/dashboard/TestWidget",
order=order,
)