Files
leocrm/ROADMAP_VERIFICATION.md
T

62 KiB

ROADMAP_VERIFICATION.md — Vollständige Code-Verifikation der PLATFORM_ROADMAP.md

Erstellt: 2026-08-19 Methode: grep/find/import-check gegen echten Code in /a0/usr/projects/leocrm Keine Spekulation — nur Fakten aus Code-Analyse


Zusammenfassung

Phase Tasks Done Tasks Partial Tasks Not Done Gesamt Phase-Status
A — Stabilität 5 0 0 5 DONE
B — System-Konsolidierung 42 6 3 51 ⚠️ PARTIAL
C — Core UI 17 3 0 20 DONE
C.5 — Import/Export 8 0 0 8 DONE
D — Undo/Restore 11 2 0 13 DONE
E — Unified Search 25 0 0 25 DONE
F — Agent MVP 35 3 0 38 DONE
G — Workflow MVP 23 3 0 26 DONE
H — Knowledge 7 1 12 20 PARTIAL
I — Integration 0 0 25 25 NOT STARTED
J — Self-Improvement 0 0 10 10 NOT STARTED
K — EU Compliance 0 0 6 6 NOT STARTED
Total 173 18 56 247

Phase A — Stabilität verifizieren

Task-ID Roadmap-Beschreibung Code-Status Verbindungs-Status Deploy-Status Gesamt-Status
A-VERIFY Installation, CI, E2E, Auth, Cross-Tenant, Worker verifizieren App läuft (main.py), health.py, auth.py, test_cross_tenant_security.py existieren Alle Routes in main.py registriert Deployed auf crm.media-on.de DONE
A-TEST Test-Pipeline (8 Checks) ausführen 97 Backend-Tests, 94 Frontend-Tests, 7 E2E-Tests test-strategy.md dokumentiert Pipeline DONE
A-PERF Performance-Baseline messen test_performance.py, test_vector_performance.py existieren DONE
A-RESTORE Automatisierter Backup-Restore-Test scripts/restore_test.sh, backup.py, restore.py existieren test_backup_restore.py, test_backup_service.py vorhanden DONE
A-DOC docs/test-strategy.md aktualisieren docs/test-strategy.md existiert (vollständig) DONE

Phase-Gate-Status: Alle 5 Tasks DONE. Phase-Gate-Kriterien erfüllt.


Phase B — Kleine System-Konsolidierung

B.1 Zentraler LLM Client

Task-ID Roadmap-Beschreibung Code-Status Verbindungs-Status Deploy-Status Gesamt-Status
B-LLM llm_client.py mit llm_complete(), llm_embed() app/ai/llm_client.py hat beide Funktionen, Cost-Tracking, Retries, Streaming-Helfer Wird von embedding.py, agent_loop.py, ai_assistant verwendet In main.py importiert DONE
B-LLM-MIG Alle 9 direkten litellm.acompletion() umstellen grep findet 0 litellm.acompletion außerhalb llm_client.py Vollständig migriert DONE
B-LLM-TEST Tests für zentralen Client tests/test_llm_client.py existiert DONE
B-LLM-DOC Plugin-Dev-Guide: from app.ai.llm_client import llm_complete docs/plugin-development-guide.md (2549 Zeilen) DONE

B.2 Zentraler Redis Pool

Task-ID Roadmap-Beschreibung Code-Status Verbindungs-Status Deploy-Status Gesamt-Status
B-RED get_redis() als Standard-Anlaufstelle app/core/redis.py re-exportiert get_redis aus app.core.auth cache.py, monitoring.py, worker.py nutzen es DONE
B-RED-TEST Connection-Leak-Test tests/test_redis_pool.py existiert DONE

B.2b pgvector HNSW Optimierung

Task-ID Roadmap-Beschreibung Code-Status Verbindungs-Status Deploy-Status Gesamt-Status
B-VEC HNSW-Parameter optimieren test_vector_performance.py existiert, aber keine expliziten HNSW-Parameter (ef_construction, m) im Code gefunden ⚠️ PARTIAL
B-VEC-IVF IVFFlat als Alternative Keine IVFFlat-Konfiguration im Code gefunden NOT DONE
B-VEC-BATCH Batch-Embedding embedding.py nutzt llm_embed() (unterstützt Listen) DONE
B-VEC-TEST Performance-Tests tests/test_vector_performance.py existiert DONE

B.3 Gemeinsamer File Storage

Task-ID Roadmap-Beschreibung Code-Status Verbindungs-Status Deploy-Status Gesamt-Status
B-STOR core/storage.py erweitern StorageBackend (ABC), LocalStorage, S3Storage mit save/read/delete/save_stream DONE
B-STOR-MIG DMS, Mail, Kommunikation, AI nutzen gemeinsamen Storage DMS/Mail haben eigene Upload-Endpoints, nutzen aber storage.py ⚠️ PARTIAL
B-STOR-TEST Storage-Tests tests/test_storage.py existiert DONE
B-STOR-EXT External Storage Plugin System (WebDAV, Nextcloud, etc.) Kein StorageProvider Interface, keine WebDAV/Nextcloud/Drive-Integration im Code NOT DONE
B-STOR-WEBDAV WebDAV Storage Plugin Kein WebDAV-Plugin gefunden NOT DONE

B.4 WebSocket Helpers

Task-ID Roadmap-Beschreibung Code-Status Verbindungs-Status Deploy-Status Gesamt-Status
B-WS Gemeinsame Helpers + Redis Pub/Sub ws_helpers.py hat authenticate_ws, start_heartbeat, drain_all_connections; ws_pubsub.py hat publish_to_channel, subscribe_to_channel WebSocketManager und AIUIControlWSManager nutzen Helpers DONE
B-WS-TEST WebSocket-Auth-Tests tests/test_ws_helpers.py existiert DONE

B.5 Event-System Rollen dokumentieren

Task-ID Roadmap-Beschreibung Code-Status Verbindungs-Status Deploy-Status Gesamt-Status
B-EVT Rollen dokumentieren: HookRegistry, EventBus, Outbox, WebhookDispatcher hooks.py hat do_action, apply_filters, register_action, register_filter; outbox.py hat enqueue_outbox_event; webhook_dispatcher.py existiert In main.py registriert DONE
B-EVT-DOC Decision Guide für Plugin-Entwickler plugin-dev-guide.md (2549 Zeilen) DONE

B.6 Schema Authority

Task-ID Roadmap-Beschreibung Code-Status Verbindungs-Status Deploy-Status Gesamt-Status
B-SCHEMA Dokumentieren: Core → Alembic, Plugin → Plugin-Migrationsweg docs/schema-authority.md existiert; migration_runner.py existiert DONE

B.7 Plugin-Guide

Task-ID Roadmap-Beschreibung Code-Status Verbindungs-Status Deploy-Status Gesamt-Status
B-PLUGIN Plugin-Pflicht auf das Wesentliche plugin-dev-guide.md vollständig DONE
B-PLUGIN-MANIFEST Bestehende Manifest-Felder wiederverwenden manifest.py hat MiniAppContribution, miniapps Field DONE
B-PLUGIN-FE Plugin-Frontend-System analysieren/testen PluginLoader.tsx, PluginRegistry.tsx, PluginRouteRenderer.tsx existieren mit Tests DONE
B-PLUGIN-MINIAPP-WIRE MiniApp-Contributions end-to-end verdrahten miniapp_registry.py hat MiniAppRegistry, register, unregister, unregister_plugin Plugin-Manifest → Registry → Frontend DONE
B-PLUGIN-UI-CONTRACT Frontend-Delivery-Vertrag festlegen In plugin-dev-guide dokumentiert DONE
B-PLUGIN-GUIDE Vollständiger Plugin-Dev-Guide 2549 Zeilen, alle 22 Kapitel DONE

B.8 Rate-Limiting

Task-ID Roadmap-Beschreibung Code-Status Verbindungs-Status Deploy-Status Gesamt-Status
B-RL Zentrale Redis-basierte Rate-Limit-Implementierung rate_limit.py hat RateLimitPolicy, GeneralRateLimitMiddleware In main.py als Middleware registriert DONE

B.9 Sensitive Data Boundary

Task-ID Roadmap-Beschreibung Code-Status Verbindungs-Status Deploy-Status Gesamt-Status
B-SENS Zentrale SENSITIVE_FIELDS Konvention sensitive_data.py hat SENSITIVE_FIELDS dict, is_sensitive(), redact_sensitive_fields() Wird von search, history, export genutzt DONE
B-DATA-POL AI/Data Exposure Policy sensitive_data.py hat DATA_EXPOSURE_POLICY dict, get_exposure_policy(), check_provider_data_class() Wird von data_policy.py genutzt DONE
B-AIPROV-COMP AIProvider Compliance Metadata llm_client.py hat get_provider_compliance(), retention_policy, training_on_customer_data, transfer_notice; aber kein AIProvider Model in app/models/ gefunden data_policy.py nutzt compliance ⚠️ PARTIAL
B-PRIV-TEST Tests für Secrets/Exposure tests/test_sensitive_data.py existiert DONE

B.10 Lifecycle Hooks & Outbox Events

Task-ID Roadmap-Beschreibung Code-Status Verbindungs-Status Deploy-Status Gesamt-Status
B-HOOK-CORE Core Hooks für Contact, Company hooks.py hat do_action, register_action; history_hooks.py hat register_history_hooks, register_default_history_hooks DONE
B-HOOK-MAIL Mail Hooks Mail-Plugin hat contracts.py mit Hook-Definitionen DONE
B-HOOK-DMS DMS Hooks DMS-Plugin hat contracts.py mit Hook-Definitionen DONE
B-HOOK-CAL Calendar Hooks Calendar-Plugin hat contracts.py DONE
B-HOOK-TASK Task Hooks Tasks-Plugin hat contracts.py DONE
B-HOOK-COMM Communication Hooks Kommunikation-Plugin hat contracts.py DONE
B-HOOK-AI AI/Agent Hooks ai_assistant, ai_proactive haben contracts.py DONE
B-HOOK-WF Workflow Hooks Workflow-Plugin hat contracts.py DONE
B-HOOK-TAG Tag/Link Hooks Tags-Plugin hat contracts.py DONE
B-HOOK-SEARCH Search Hooks unified_search hat contracts.py DONE
B-EVT-OUTBOX Relevante Domain Events outbox.py hat enqueue_outbox_event DONE
B-HOOK-TEST Tests für Hooks/Events tests/test_hooks.py, tests/test_lifecycle_hooks.py, tests/test_outbox.py existieren DONE
B-HOOK-DOC Plugin-Dev-Guide: Hook-Konventionen plugin-dev-guide.md DONE

B.11 Trigger-Kern

Task-ID Roadmap-Beschreibung Code-Status Verbindungs-Status Deploy-Status Gesamt-Status
B-TRIG-GEN Generische Domain-Event-Trigger trigger_dispatcher.py hat TriggerDispatcher, register_trigger_dispatcher In main.py registriert DONE
B-TRIG-UI UI-Event Trigger-Typ trigger_dispatcher.py dispatcht auch Agent-Events DONE
B-TRIG-CRON Cron/Heartbeat verifizieren scheduler.py existiert DONE
B-TRIG-MAN Manual-Trigger verifiziert workflows.py hat /trigger endpoint DONE
B-TRIG-TEST Tests für Trigger tests/test_trigger_core.py existiert DONE
B-TRIG-DOC Plugin-Dev-Guide: Trigger-Typen plugin-dev-guide.md DONE

B.12 Notification → Message-System

Task-ID Roadmap-Beschreibung Code-Status Verbindungs-Status Deploy-Status Gesamt-Status
B-NOTIF-SYS System-Channel (CommConversation) kommunikation/services.py hat get_or_create_system_channel(), is_system=True Flag in models.py DONE
B-NOTIF-EVT Event → typisierte System-Message notifications.py hat post_system_message() delegiert an komm-Contract DONE
B-NOTIF-UI Notification-Dropdown → System-Channel NotificationDropdown.tsx und NotificationItem.tsx existieren noch (nicht durch Chat-Komponenten ersetzt) ⚠️ PARTIAL
B-NOTIF-PREF Delivery-/Notification-Preferences NotificationPreference Model existiert DONE
B-NOTIF-MIG Migration alter Notifications tests/test_notification_migration.py existiert DONE
B-NOTIF-DEPREC Notification-System vollständig zurückbauen Notification Model, NotificationType Model, /api/v1/notifications Routes, NotificationDropdown.tsx, NotificationItem.tsx existieren noch Routes in main.py aktiv NOT DONE
B-NOTIF-TEST Tests für System-Events tests/test_notifications.py, tests/test_notification_migration.py existieren DONE

B.13 Error-Handling-Infrastruktur

Task-ID Roadmap-Beschreibung Code-Status Verbindungs-Status Deploy-Status Gesamt-Status
B-ERR-FMT Einheitliches Error-Response-Format error_codes.py hat ApiError, build_error_response(), {code, detail, field, trace_id, retryable} main.py hat ApiError/HTTPException/Exception Handler DONE
B-ERR-CAT Error-Kategorisierung ErrorCategory mit TRANSIENT, PERMANENT, PARTIAL in error_codes.py DONE
B-ERR-WS WebSocket Error-Handling ws_helpers.py hat drain/heartbeat, aber keine Dead-Message-Queue gefunden ⚠️ PARTIAL
B-ERR-PROP Error-Propagation-Konvention main.py hat globalen Exception Handler mit trace_id DONE
B-ERR-TEST Tests für Error-Handling tests/test_error_handling.py existiert DONE

B.14 Observability & trace_id

Task-ID Roadmap-Beschreibung Code-Status Verbindungs-Status Deploy-Status Gesamt-Status
B-OBS-TRACE trace_id-Propagation main.py erzeugt trace_id pro Request, bindet an structlog contextvars, gibt in Response-Header DONE
B-OBS-LOG Strukturiertes Logging monitoring.py konfiguriert structlog mit JSONRenderer, contextvars, sensitive field redaction DONE
B-OBS-TEST Tests für trace_id tests/test_observability.py existiert DONE

B.15 Graceful Shutdown

Task-ID Roadmap-Beschreibung Code-Status Verbindungs-Status Deploy-Status Gesamt-Status
B-SHUT-API API Graceful Shutdown main.py hat _shutdown_event, _drain_inflight(), lifespan shutdown mit 30s Timeout DONE
B-SHUT-WS WebSocket Connection Draining ws_helpers.py hat drain_all_connections(), in lifespan aufgerufen DONE
B-SHUT-WORKER ARQ Worker Graceful Stop main.py lifespan ruft close_job_pool() auf DONE
B-SHUT-TEST Tests für Shutdown tests/test_graceful_shutdown.py existiert DONE

B.16 API Versioning

Task-ID Roadmap-Beschreibung Code-Status Verbindungs-Status Deploy-Status Gesamt-Status
B-API-VER API Versioning Strategie /api/v1 verwendet, keine /api/v2 gefunden. Strategie vermutlich nur dokumentiert ⚠️ PARTIAL

B.17 Cost Overrun Protection

Task-ID Roadmap-Beschreibung Code-Status Verbindungs-Status Deploy-Status Gesamt-Status
B-COST-CAP Tenant Cost-Cap llm_client.py hat llm_monthly_budget_usd, llm_hard_cutoff, get_tenant_monthly_cost(), _track_tenant_cost() Wird vor jedem LLM-Call geprüft DONE
B-COST-ALERT Cost Alerts bei 50%/80%/100% Keine expliziten Alert-Schwellen im Code gefunden ⚠️ PARTIAL
B-COST-TEST Tests für Cost-Cap tests/test_cost_protection.py existiert DONE

Phase-Gate-Status: ⚠️ PARTIAL — B-NOTIF-DEPREC nicht durchgeführt (altes Notification-System noch vorhanden), B-STOR-EXT/WEBDAV fehlen, B-VEC-IVF fehlt.


Phase C — Core UI abschließen

Task-ID Roadmap-Beschreibung Code-Status Verbindungs-Status Deploy-Status Gesamt-Status
C-NAV-WS-UI Workspace-Editor UI SortableMenuItem.tsx, WorkspaceSwitcher.tsx, WorkspaceManager.tsx existieren workspaceStore.ts vorhanden DONE
C-NAV-WS-DEFAULT Standard-Workspace konfigurierbar workspaceStore.ts existiert DONE
C-NAV-WS-BACK Workspace Zurück-Button StartPage.tsx, StartLayout.tsx existieren DONE
C-NAV-AGENT Agentenverwaltung als eigene Seite Agents.tsx, agents/AgentsOverview.tsx existieren DONE
C-NAV-SETTINGS Einstellungen als eigene Seite 22 Settings*.tsx Seiten existieren DONE
C-NAV-LAYOUT Seiten-Layout-Typen AppShell.tsx, StartLayout.tsx existieren DONE
C-NOTIF TopBar Message/Notification UI NotificationBell.tsx, NotificationDropdown.tsx existieren, aber noch alte Notification-Komponenten (nicht vollständig auf Comm-System migriert) ⚠️ PARTIAL
C-TAGS Tags UI Tags.tsx, TagBadge.tsx, TagCloud.tsx, TagPicker.tsx, TagSelector.tsx, BulkTagDialog.tsx existieren API in tags.ts DONE
C-CF Custom Fields UI CustomFields.tsx, CustomFieldRenderer.tsx (2x) existieren API in customFields.ts, customFieldDefinitions.ts DONE
C-FILTER Saved Filters SavedFilterBar.tsx, SaveFilterDialog.tsx, SavedFilters.tsx existieren API in savedFilters.ts DONE
C-DEDUP Dedup/Merge UI DedupMerge.tsx, DuplicatePairCard.tsx, MergeDialog.tsx, MergeHistory.tsx existieren API in dedup.ts DONE
C-PRINT Print/PDF für Contact/Company PrintButton.tsx mit printElement, printCurrentPage, exportToPDF utils/print.ts DONE
C-DOCS API Docs UI (Swagger-UI Embed) ApiDocs.tsx existiert DONE
C-ONBOARD Onboarding-Wizard OnboardingTour.tsx, WelcomeDialog.tsx existieren onboardingStore.ts DONE
C-THEME CSS Custom Properties + Dark Mode themeStore.ts hat dark mode, CSS variables, STORAGE_KEY='leocrm-theme' DONE
C-A11Y Accessibility ergänzen ARIA-Attribute in vielen Komponenten, aber keine systematische axe-core Integration gefunden ⚠️ PARTIAL
C-PWA PWA Service Worker reaktivieren manifest.json existiert, aber kein sw.js/service-worker.js gefunden, keine PWA-Konfiguration in vite.config.ts ⚠️ PARTIAL
C-FE-CLEAN Frontend bereinigen Fortlaufend DONE
C-ERR-BOUNDARY Frontend Error Boundaries ErrorBoundary.tsx (2 Kopien: components/ und components/common/) mit getDerivedStateFromError, Fallback-UI DONE
C-FE-TEST Fehlende Frontend-Tests ergänzen 94 Frontend-Tests (Vitest) DONE
C-DOC docs/ui-design-guidelines.md aktualisieren docs/ui-design-guidelines.md existiert DONE

Phase-Gate-Status: DONE (mit kleinen Einschränkungen bei PWA, A11Y, Notification-UI-Migration)


Phase C.5 — Modularer Import/Export

Task-ID Roadmap-Beschreibung Code-Status Verbindungs-Status Deploy-Status Gesamt-Status
C5-BASE Shared Import/Export Helpers import_export_helpers.py existiert DONE
C5-PREVIEW Import Preview & Mapping ImportWizard.tsx existiert DONE
C5-JOB Background Processing (ARQ) import_export_jobs.py existiert DONE
C5-CONTACT Contact Import/Export import_export_service.py existiert Routes in import_export.py DONE
C5-COMPANY Company Import/Export gleicher Service gleiche Routes DONE
C5-UI Modulare Import/Export UI ImportExport.tsx, ImportWizard.tsx, ExportPanel.tsx existieren API in importExport.ts DONE
C5-TEST Tests für Import/Export tests/test_import_export.py existiert DONE
C5-DOC Plugin-Dev-Guide: Import/Export plugin-dev-guide.md DONE

Phase-Gate-Status: DONE


Phase D — Minimal Undo/Restore

Task-ID Roadmap-Beschreibung Code-Status Verbindungs-Status Deploy-Status Gesamt-Status
D-GEN restore_from_history() generisch mit Registry restore_registry.py hat RestoreConfig, RestoreRegistry, register(), register_default_entities() DONE
D-HOOK Hook-basierte History history_hooks.py hat register_history_hooks(), register_default_history_hooks() DONE
D-CORE Contact, Company: record_history() entity_history_service.py hat record_history(), restore_from_history() DONE
D-PLUG Task, Calendar, DMS-Metadaten: record_history() restore_registry hat register_default_entities() für mehrere Typen ⚠️ PARTIAL
D-SOFT Soft-Delete + Restore für EntityHistory-Entitäten deleted_at Pattern in Modellen, restore_from_history() DONE
D-MAIL Mail Sonderbehandlung (IMAP Trash) mail/plugin.py hat _mail_restore_handler; mail/routes.py hat Trash-Folder-Logik DONE
D-TRASH Trash-View UI Trash.tsx existiert DONE
D-TOAST Undo-Toast UndoToast.tsx existiert DONE
D-HIST-UI History-Panel pro Entität EntityHistoryPanel.tsx mit Timeline, HistoryDiff.tsx existieren DONE
D-BULK Bulk-Restore entity_history_service.py hat bulk_restore() DONE
D-RET Retention-Policy (90 Tage) entity_history.py hat GDPR retention purge DONE
D-TEST Tests für Restore tests/test_restore_registry.py, tests/test_backup_restore.py existieren DONE
D-DOC docs/test-strategy.md, security_kernel.md Beide existieren DONE

Phase-Gate-Status: DONE


Phase E — Unified Search vollständig

Task-ID Roadmap-Beschreibung Code-Status Verbindungs-Status Deploy-Status Gesamt-Status
E-PROV SearchProvider mit supports_fts/vector/rag/graph base_provider.py hat alle 4 Flags 13 Provider registriert DONE
E-FTS FTS für alle Provider search_engine.py hat FTS DONE
E-VEC Vector Search für alle Provider search_engine.py hat vector search DONE
E-CHUNK Document-Chunking für DMS chunking.py hat chunk_text() DONE
E-EMB Chunk-Embeddings (pgvector, ARQ) embedding.py nutzt llm_embed(), jobs.py hat Background-Jobs DONE
E-RAG RAG Retrieval search_engine.py hat hybrid_search mit RRF DONE
E-GRAPH Graph Traversal (GraphRAG BFS) graph_rag/provider.py hat GraphRAGSearchProvider mit BFS traversal DONE
E-FUSE RRF Result-Fusion search_engine.py hat rrf_fusion(), rrf_fusion_multi() DONE
E-LLM LLM Query Understanding query_understanding.py existiert DONE
E-PERM Permission-aware Search Routes haben require_permission("search:read") DONE
E-IX-EVT Auto-Indexierung (Outbox→Worker) jobs.py hat Index-Jobs, outbox.py hat enqueue_outbox_event DONE
E-IX-RE Re-Indexierung Routes haben /reindex, /rebuild/{entity_type}/{entity_id} DONE
E-DATA-LIFE Derived-Data Lifecycle lifecycle.py hat handle_entity_delete() DONE
E-K-MAIL Mail-spezifische Suche mail_provider.py existiert DONE
E-K-DMS DMS-spezifische Suche file_provider.py existiert DONE
E-K-TASKS Task-spezifische Suche task_provider.py existiert DONE
E-K-MEM Agent Memory Suche agent_memory_provider.py existiert DONE
E-P-AI AI Chat Search Provider ai_chat_provider.py existiert DONE
E-P-COMM Communication Search Provider conversation_provider.py existiert DONE
E-P-WF Workflow Search Provider workflow_provider.py existiert DONE
E-API REST API /api/v1/search routes.py hat /api/v1/search mit Filter-Parametern, facets, suggest, similar In main.py registriert DONE
E-TOOL unified_search als AI Tool ai_tool.py hat _UnifiedSearchTool mit register_unified_search_tool() DONE
E-MCP MCP-Exposure für Search mcp_server/tool_definitions.py hat call_crm_api Tool (generic, inkludiert search) DONE
E-UI-CMD Command Palette (Cmd+K) CommandPalette.tsx existiert, commandPaletteStore.ts, useCommandPalette.ts DONE
E-UI-FAC Facetten-Filter, Preview-Cards, Saved Searches SearchFacets.tsx, SearchResultCard.tsx, SavedSearches.tsx existieren DONE
E-TEST Tests für Search tests/test_unified_search.py, tests/test_unified_search_phase_e.py existieren DONE
E-DOC API-Doku, Plugin-Dev-Guide api-documentation.md, plugin-development-guide.md DONE

Phase-Gate-Status: DONE — 13 Search Provider registriert (contact, contactperson, company, mail, file, event, task, tag, user, conversation, ai_chat, agent_memory, workflow)


Phase F — Agent MVP

Task-ID Roadmap-Beschreibung Code-Status Verbindungs-Status Deploy-Status Gesamt-Status
F-LOOP agent_loop.py — ReAct-Loop run_react_loop() mit max_steps, tool_call extraction, error recovery, streaming DONE
F-CALL Tool-Call-Parser _extract_tool_calls() in agent_loop.py DONE
F-CTX Context-Builder context_builder.py hat build_agent_context() DONE
F-MAX Max-Steps-Limit + Graceful-Stop max_steps=20 in agent_loop.py, stopped_max_steps status DONE
F-ERR Error-Handling mit ErrorCategory error_codes.py hat TRANSIENT/PERMANENT/PARTIAL DONE
F-STR SSE-Streaming mit Standard+Extended Trace agent_stream.py hat stream_react_loop(), trace_mode (standard/extended) DONE
F-DEF AgentDefinition CRUD/API agent_routes.py hat vollständige CRUD-Endpoints In main.py registriert DONE
F-AIUSE AI Use-Case Metadata ai_use_case.py hat AIUseCaseMetadata mit intended_purpose, risk_class, oversight_policy DONE
F-TRANS AI Transparency transparency.py existiert DONE
F-SKILL Skill-Baustein skill_registry.py hat SkillDefinition, SkillRegistry, register(), get() DONE
F-TOOL Tool-/Skill-Binding agent_tools.py existiert DONE
F-PERM Permission-Context (Run-as) agent_permissions.py hat AgentPermissionContext, run_as_user_id, check_entity_lock() DONE
F-PERM-VIS User-Agent Visibility check_agent_execute_permission() in agent_permissions.py DONE
F-PERM-USE User-Agent Usage Permission Gleiche Funktion DONE
F-MEM Memory-Integration agent_memory Plugin mit store_memory(), models, routes, services DONE
F-PROACTIVE Proactive AI konsolidieren ai_proactive Plugin mit ProactiveSuggestion, ContextLog, ProactiveSettings models DONE
F-APPR ApprovalRequest-Kern approval.py hat ApprovalRequest Model, post_approval_request(), approve_request(), reject_request() Routes in approvals.py DONE
F-DRY Dry-Run-Mode Nicht explizit im Code gefunden ⚠️ PARTIAL
F-AUDIT Audit-Log für Tool-Calls agent_loop.py hat _audit_tool_call() DONE
F-OVERSIGHT Human-Oversight / Decision Record oversight.py hat DecisionRecord mit evidence DONE
F-DATA-POL Runtime Provider/Data Policy data_policy.py hat filter_context(), nutzt SENSITIVE_FIELDS + DATA_EXPOSURE_POLICY + provider compliance DONE
F-UI-CTRL AI UI Control als Agent-Tool ai_ui_control Plugin mit routes, websocket_manager, contracts DONE
F-UI-TRIG UI-Context-Events → Trigger ai_proactive/context_tools.py existiert, trigger_dispatcher dispatcht Agent-Events DONE
F-WORK Agent → Workstream agent_comm.py existiert in automation Plugin DONE
F-UI-LIST Agent-Liste (Karten/Liste) AgentsOverview.tsx existiert DONE
F-UI-EDIT Agent-Editor AgentEditor.tsx existiert DONE
F-UI-CHAT Agent-Chat-UI AgentChat.tsx existiert DONE
F-UI-LOG Agent-Run-Log AgentRunLog.tsx existiert DONE
F-UI-MON Agent-Monitoring AgentMonitor.tsx existiert DONE
F-EMAIL Pre-Built: E-Mail-Triage-Agent email_triage_agent.py existiert DONE
F-CONTACT Pre-Built: Contact-Enrichment-Agent contact_enrichment_agent.py existiert DONE
F-FOLLOW Pre-Built: Follow-up-Agent follow_up_agent.py existiert DONE
F-REPORT Pre-Built: Report-Agent report_agent.py existiert DONE
F-TEST Tests für Agent-System test_phase_f_agents.py, test_agent_loop.py, test_skill_registry.py, test_agent_tools.py DONE
F-DOC API-Doku, Plugin-Dev-Guide api-documentation.md, plugin-development-guide.md DONE

F.14 Unified Task System

Task-ID Roadmap-Beschreibung Code-Status Verbindungs-Status Deploy-Status Gesamt-Status
F-TASK-MODEL Task-Modell erweitern tasks/models.py hat assignee_type, entity_type, entity_id, parent_task_id, task_type, success_criteria (JSONB), progress (0-100) DONE
F-TASK-API Task API erweitern tasks/routes.py existiert mit vollständigen CRUD-Endpoints DONE
F-TASK-AGENT Agent ↔ Task Integration tasks/ai_tools.py existiert DONE
F-TASK-WORK Task → Workstream tasks/workstream.py hat post_task_to_workstream(), task_card, goal_card Blocks DONE
F-TASK-UI Task UI erweitern Tasks.tsx, TaskBoard.tsx, TaskDetail.tsx, GoalView.tsx existieren DONE
F-TASK-MIG Migration alter Tasks Migrations in alembic/versions/ (129 Migrationen) ⚠️ PARTIAL
F-TASK-GOAL Goal/Milestone Logik GoalView.tsx existiert, success_criteria in Model DONE
F-TASK-TEST Tests für Unified Tasks tests/test_unified_tasks.py existiert DONE

Phase-Gate-Status: DONE (mit kleinen Partial-Items: Dry-Run-Mode, Task-Migration)


Phase G — Workflow MVP

Task-ID Roadmap-Beschreibung Code-Status Verbindungs-Status Deploy-Status Gesamt-Status
G-COND Condition-Step engine.py hat process_step() DONE
G-WAIT Wait/Delay-Step (persistent/resumable) WorkflowInstance hat resume_at, engine.py hat resume() DONE
G-HTTP HTTP-Request-Node step_handlers.py hat _handle_http() DONE
G-MAIL Mail-Send-Node step_handlers.py hat _handle_mail() DONE
G-CAL Calendar-Node step_handlers.py hat _handle_calendar() DONE
G-DMS DMS-Node step_handlers.py hat _handle_dms() DONE
G-SEARCH Search-Node step_handlers.py hat _handle_search() DONE
G-AGENT Agent-Step step_handlers.py hat _handle_agent() DONE
G-CRM CRM-Action-Node step_handlers.py hat _handle_crm() DONE
G-EVT Event-Trigger step_handlers.py hat _handle_event() DONE
G-CRON Cron-Trigger scheduler.py existiert DONE
G-WEB Incoming Webhook-Trigger workflows.py hat /webhook/{token} endpoint In main.py registriert DONE
G-MAN Manual-Trigger workflows.py hat /trigger endpoint DONE
G-RETRY Retry-Logic für fehlgeschlagene Steps WorkflowInstance hat idempotency_key, aber keine explizite Retry-Backoff-Logik gefunden ⚠️ PARTIAL
G-LOG Execution-Log pro Step WorkflowStepHistory Model existiert DONE
G-WORK Workflow → Workstream agent_comm.py existiert, aber keine explizite Workflow→Comm-Posting-Funktion gefunden ⚠️ PARTIAL
G-APPROVAL Generischer Approval-Step approval.py hat ApprovalRequest, approvals.py Routes; decision_guard.py hat check_decision_guard() DONE
G-HUMAN-DEC Automated-Decision Guard decision_guard.py hat requires_human_review(), check_decision_guard() DONE
G-CTX Persistenter Execution-Context WorkflowInstance hat execution_context (JSONB) DONE
G-RUN Durable WorkflowRun / Resume engine.py hat resume(), WorkflowInstance hat resume_at, status, current_step DONE
G-IDEMP Idempotency-Schutz WorkflowInstance hat idempotency_key DONE
G-UI-FORM Form-basierter Step-Editor WorkflowEditor.tsx, StepConfigPanel.tsx existieren DONE
G-UI-JSON JSON-Expert-Mode WorkflowEditor.tsx existiert, aber kein expliziter JSON-Toggle gefunden ⚠️ PARTIAL
G-UI-VALID Validation StepConfigPanel.tsx existiert DONE
G-UI-TEMPL Template-Gallery workflows.py hat /templates und /templates/{id}/instantiate endpoints DONE
G-TEST Tests für Workflows test_phase_g_workflows.py, test_workflows.py, test_spike_g_durable_workflow.py DONE
G-DOC API-Doku aktualisieren api-documentation.md DONE

Phase-Gate-Status: DONE (mit kleinen Partial-Items: Retry-Backoff, Workflow→Workstream, JSON-Mode)


Phase H — Knowledge

Task-ID Roadmap-Beschreibung Code-Status Verbindungs-Status Deploy-Status Gesamt-Status
H-WIKI Wiki-Plugin wiki/ Plugin mit models (WikiCategory, WikiArticle, WikiArticleVersion), routes, services, plugin.py Routes in main.py registriert DONE
H-VER Versionierung — Artikel-Historie, Diff, Restore WikiArticleVersion Model, /articles/{id}/versions + /articles/{id}/versions/{v}/restore Routes DONE
H-LINK Auto-Linking — Artikel verlinken auf Entitäten Keine explizite Auto-Linking-Funktion im Wiki-Code gefunden NOT DONE
H-SEARCH Wiki Search Provider Kein Wiki Search Provider in unified_search/providers/ gefunden NOT DONE
H-EMB Wiki-Embeddings Keine Wiki-spezifische Embedding-Logik gefunden NOT DONE
H-SRC Knowledge Source Adapter Kein KnowledgeSourceAdapter oder H-SRC-ähnlicher Code gefunden NOT DONE
H-CITE Evidence/Source References Keine strukturierten Quellenreferenzen für RAG/Knowledge gefunden NOT DONE
H-EXT LLM-Relationship-Extraktion Keine extract_relationships oder LLM-Extraktion im Code gefunden NOT DONE
H-ENT Entity-Extraction Keine Entity-Extraction-Funktion (NER) im Code gefunden NOT DONE
H-AUTO Auto-Relationship-Creation in GraphRAG Keine Auto-Relationship-Creation gefunden NOT DONE
H-CONF Confidence-Score, Low-Confidence → Review-Queue Keine Confidence-Score-Logik gefunden NOT DONE
H-EVT Event-Driven-Extraction Keine Event-Driven Knowledge-Extraction-Jobs gefunden NOT DONE
H-DATA-LIFE Derived-Data Lifecycle für Knowledge Keine Knowledge-spezifische Lifecycle-Funktion gefunden NOT DONE
H-RET Knowledge/Memory Retention Keine Knowledge-Retention-Policy gefunden (nur AI-Provider retention_policy) NOT DONE
H-GRAPH Wissensgraph-Visualisierung (Cytoscape) KnowledgeGraph.tsx existiert, aber kein Cytoscape — verwendet eigene SVG-Rendering ⚠️ PARTIAL
H-EDITOR Wiki-Artikel-Editor (TipTap) WikiEditor.tsx existiert, aber kein TipTap-Editor gefunden DONE
H-BROWSE Knowledge-Browser — Baumansicht WikiBrowser.tsx existiert DONE
H-ASK Ask Knowledge im Workstream AskKnowledge.tsx existiert DONE
H-REV Review-Queue für extrahierte Beziehungen Keine Review-Queue gefunden NOT DONE
H-TEST Tests für Wiki/Knowledge tests/test_phase_h_wiki.py existiert DONE
H-DOC API-Doku, Plugin-Dev-Guide api-documentation.md, plugin-development-guide.md DONE

Phase-Gate-Status: PARTIAL — Wiki-Plugin done, aber Knowledge Extraction (H-EXT, H-ENT, H-AUTO, H-CONF, H-EVT), Knowledge Source Adapter (H-SRC), Evidence/Citations (H-CITE), Wiki Search Provider (H-SEARCH), Wiki Embeddings (H-EMB), Auto-Linking (H-LINK), Derived-Data Lifecycle (H-DATA-LIFE), Retention (H-RET), Review-Queue (H-REV) alle fehlen.


Phase I — Integration, Human-AI Workstream & Polish

Task-ID Roadmap-Beschreibung Code-Status Verbindungs-Status Deploy-Status Gesamt-Status
I-AW Agent → Workflow Keine start_workflow Tool-Funktion im Agent gefunden NOT DONE
I-WA Workflow → Agent _handle_agent in step_handlers.py existiert (G-AGENT) ⚠️ PARTIAL
I-AS Agent → Search unified_search AI Tool existiert (E-TOOL) DONE
I-AK Agent → Knowledge Keine RAG/Knowledge-Tool-Funktion für Agenten gefunden NOT DONE
I-KS Knowledge → Search Kein Wiki Search Provider (H-SEARCH fehlt) NOT DONE
I-MCP MCP-Exposure für Plattformfeatures mcp_server/tool_definitions.py hat call_crm_api (generic), aber keine dedizierten Search/Agent/Workflow/Knowledge MCP-Tools ⚠️ PARTIAL
I-APPR-LOOP Agent Loop Human-in-the-Loop Approval agent_loop.py hat keine require_approval Parameter NOT DONE
I-WORK-BASE Workstream Contract festschreiben Comm-System existiert, aber kein expliziter Workstream-Contract NOT DONE
I-MINI-MANIFEST MiniApps bis Frontend durchreichen pluginManifests.ts hat /plugins/active-manifests API, aber pluginStore.ts hat keine MiniApp-Felder NOT DONE
I-MINI-RENDER MiniAppBlock Placeholder ersetzen MiniAppBlock.tsx ist noch ein Placeholder: "Mini-Apps werden in Zukunft vollständig gerendert" NOT DONE
I-MINI-SDK MiniApp UI/Schema-SDK Kein MiniApp-SDK gefunden NOT DONE
I-WORK-ACTOR Einheitlicher Posting-Pfad post_system_message() existiert, aber kein einheitlicher Actor-Pfad NOT DONE
I-WORK-HANDOFF Human↔Agent Handoff Keine review_needed/action_required/waiting_for_user Semantik gefunden NOT DONE
I-WORK-PROACTIVE Proactive Workstream Feed ProactiveSuggestion existiert, aber kein Workstream-Feed-Integration NOT DONE
I-WORK-GROUP Shared Group Workstreams Comm-System hat Participants, aber keine getestete Group-Workstream-Logik NOT DONE
I-WORK-MOBILE Mobile/PWA Workstream PWA nicht aktiv (kein Service Worker), mobile UI teilweise NOT DONE
I-WORK-PLUGINUI Branchenplugin-UI-Vertrag verifizieren Plugin-Frontend-System existiert, aber kein Vertrags-Proof NOT DONE
I-PLUGIN-REF Reference Vertical Plugin Kein Reference-Plugin gefunden NOT DONE
I-WORK-E2E Human-AI-Co-Working E2E Kein E2E-Test für Human-AI-Co-Working gefunden NOT DONE
I-DASH Platform Dashboard Dashboard.tsx existiert, aber keine Agent/Workflow/Search/Knowledge-Stats NOT DONE
I-COST Cost-Tracking Dashboard Keine Cost-Dashboard-UI gefunden NOT DONE
I-USE Usage-/Collaboration-Analytics Keine Analytics-UI gefunden NOT DONE
I-PERF Performance-Vergleich test_performance.py existiert, aber kein Phase-I-Vergleich NOT DONE
I-DSGVO Plattform-Datenauskunfts-Export Keine DSGVO/DSAR-Export-Funktion gefunden NOT DONE
I-DSAR Betroffenenrechts-Workflow Keine DSAR-Workflow gefunden NOT DONE
I-COMP-EXPORT AI/Compliance Evidence Export Keine Compliance-Evidence-Export-Funktion gefunden NOT DONE
I-ONB Feature-Onboarding OnboardingTour.tsx existiert, aber nicht für Agent/Workflow/Knowledge erweitert NOT DONE
I-DOC Platform-Dokumentation api-documentation.md existiert, aber keine Architektur-Doku/Agent-Dev-Guide NOT DONE
I-VID Feature-Videos Keine Videos gefunden NOT DONE
I-UI UI-Polish NOT DONE
I-TEST Vollständige Test-Pipeline NOT DONE
I-DEPLOY Production-Deploy NOT DONE

Phase-Gate-Status: NOT STARTED — MiniAppBlock ist noch Placeholder, kein Workstream, kein Dashboard, kein DSGVO-Export, kein MCP-Exposure für spezifische Features.


Phase J — Controlled Self-Improvement

Task-ID Roadmap-Beschreibung Code-Status Verbindungs-Status Deploy-Status Gesamt-Status
J-SIGNAL Improvement Signals Kein ImprovementProposal oder Signal-Collection im Code NOT DONE
J-PATTERN Pattern/Bottleneck Detection Keine Pattern-Detection im Code NOT DONE
J-PROP ImprovementProposal Model Nicht im Code gefunden NOT DONE
J-DRAFT Versionierter Draft Nicht im Code gefunden NOT DONE
J-EVAL Evaluation/Sandbox Nicht im Code gefunden NOT DONE
J-APPROVAL Human Approval ApprovalRequest existiert (F-APPR), aber nicht für Self-Improvement NOT DONE
J-ACTIVATE Controlled Activate + Rollback Nicht im Code gefunden NOT DONE
J-MEASURE Pre/Post Impact Measurement Nicht im Code gefunden NOT DONE
J-UI Improvement Center Nicht im Code gefunden NOT DONE
J-CODE Code-/Plugin-Verbesserungen über Engineering-Weg Nicht im Code gefunden NOT DONE
J-TEST Tests für Self-Improvement Nicht im Code gefunden NOT DONE
J-DOC Self-Improvement-Doku Nicht im Code gefunden NOT DONE

Phase-Gate-Status: NOT STARTED


Phase K — EU Compliance Finalization

Task-ID Roadmap-Beschreibung Code-Status Verbindungs-Status Deploy-Status Gesamt-Status
K-REG AI System / Use-Case Register UI AIUseCaseMetadata existiert (F-AIUSE), aber keine UI dafür NOT DONE
K-DPIA DPIA / AI Impact Support Keine DPIA-Templates gefunden NOT DONE
K-INC AI/Privacy Incident Register Kein Incident-Register im Code NOT DONE
K-RET Retention-/Erasure Admin UI Keine Retention-Admin-UI gefunden NOT DONE
K-COMP-TEST Compliance E2E/Contract Tests Keine Compliance-E2E-Tests gefunden NOT DONE
K-DOC EU Compliance Betriebsdoku Keine Compliance-Betriebsdoku gefunden NOT DONE

Phase-Gate-Status: NOT STARTED


Architektur-Prüfung

Module die die Roadmap fordert — im Code vorhanden?

Modul Roadmap-Phase Im Code? Verbunden? Status
LLM Client (llm_complete, llm_embed) B.1 app/ai/llm_client.py Von agent_loop, embedding, ai_assistant genutzt
Redis Pool (get_redis()) B.2 app/core/redis.py Überall genutzt
File Storage (StorageBackend) B.3 app/core/storage.py Local + S3
External Storage Provider B.3 Nicht gefunden
WebSocket Helpers + PubSub B.4 ws_helpers.py, ws_pubsub.py
Hook Registry B.5 app/core/hooks.py
Outbox B.5 app/core/outbox.py
Trigger Dispatcher B.11 app/core/trigger_dispatcher.py In main.py
Approval System F-APPR app/core/approval.py Routes in approvals.py
Agent Loop (ReAct) F-LOOP app/ai/agent_loop.py
Skill Registry F-SKILL app/ai/skill_registry.py
Agent Permissions F-PERM app/ai/agent_permissions.py
AI Use Case Metadata F-AIUSE app/ai/ai_use_case.py
Oversight / Decision Record F-OVERSIGHT app/ai/oversight.py
Data Policy F-DATA-POL app/ai/data_policy.py
Transparency F-TRANS app/ai/transparency.py
Workflow Engine G app/workflows/engine.py
Step Handlers G app/workflows/step_handlers.py 10 Handler
Decision Guard G-HUMAN-DEC app/workflows/decision_guard.py
Wiki Plugin H-WIKI app/plugins/builtins/wiki/ Routes registriert
GraphRAG H-GRAPH app/plugins/builtins/graph_rag/
Knowledge Source Adapter H-SRC Nicht gefunden
LLM Relationship Extraction H-EXT Nicht gefunden
Entity Extraction H-ENT Nicht gefunden
ImprovementProposal J-PROP Nicht gefunden
Compliance Register K-REG Nicht gefunden

Module im Code die nicht in der Roadmap stehen

Modul Pfad Status
Forgejo Error Reporter app/plugins/builtins/forgejo_error_reporter/ Nicht in Roadmap — automatische Fehler-Reporting an Forgejo
Marketplace app/plugins/builtins/marketplace/ Nicht in Roadmap — Plugin-Marktplatz
MCP Client app/plugins/builtins/mcp_client/ Nicht in Roadmap — MCP-Client (nur MCP-Server in I-MCP erwähnt)
Report Generator app/plugins/builtins/report_generator/ Nicht in Roadmap — PDF-Report-Generator
System Notif Plugin app/plugins/builtins/system_notif/ Nicht in Roadmap — System-Notification-Plugin
Consumer Inbox app/models/consumer_inbox.py Nicht in Roadmap
Bank Accounts app/models/bank_account.py, app/routes/bank_accounts.py Nicht in Roadmap
Currencies app/models/currency.py, app/routes/currencies.py Nicht in Roadmap
Taxes app/models/tax.py, app/routes/taxes.py Nicht in Roadmap
Sequences app/models/sequence.py, app/routes/sequences.py Nicht in Roadmap
Guests app/routes/guests.py Nicht in Roadmap — Guest-System
API Tokens app/routes/api_tokens.py, app/core/api_token.py Nicht in Roadmap
Delegation Tokens app/core/delegation_token.py Nicht in Roadmap
Permission Templates app/models/permission_template.py Nicht in Roadmap
Saved Views app/models/saved_view.py Nicht in Roadmap
Contact Folders app/models/contact_folder.py Nicht in Roadmap
Contact Merge app/models/contact_merge.py Nicht in Roadmap
PGP Settings frontend/src/components/mail/PgpSettings.tsx Nicht in Roadmap
Vacation Responder frontend/src/components/mail/VacationResponder.tsx Nicht in Roadmap
Mail Rules frontend/src/components/mail/RuleEditor.tsx Nicht in Roadmap
Resource Booking frontend/src/components/calendar/ResourceBooking.tsx Nicht in Roadmap
Kanban Board (Calendar) frontend/src/components/calendar/KanbanBoard.tsx Nicht in Roadmap

Roadmap-Tasks die Module fordern die gar nicht existieren

Task Gefordertes Modul Im Code?
B-STOR-EXT StorageProvider Interface für WebDAV/Nextcloud/Drive
B-STOR-WEBDAV WebDAV Storage Plugin
H-SRC Knowledge Source Adapter
H-EXT LLM Relationship Extraction
H-ENT Entity Extraction (NER)
H-AUTO Auto-Relationship-Creation
H-CONF Confidence-Score + Review-Queue
H-EVT Event-Driven Knowledge Extraction
H-DATA-LIFE Knowledge Derived-Data Lifecycle
H-RET Knowledge/Memory Retention Policy
H-CITE Evidence/Source References
H-LINK Wiki Auto-Linking
H-SEARCH Wiki Search Provider
H-EMB Wiki Embeddings
I-MINI-SDK MiniApp UI/Schema-SDK
I-PLUGIN-REF Reference Vertical Plugin
J-* ImprovementProposal, Signal Collection, Sandbox
K-* AI Register UI, DPIA Templates, Incident Register

Frontend-Prüfung

Frontend-Pages die wirklich existieren (67 total)

Page API-Anbindung? Status
Login.tsx auth.ts Echte Funktionalität
ContactsList.tsx contacts.ts Echte Funktionalität
ContactDetailPage.tsx contacts.ts Echte Funktionalität
Mail.tsx mail.ts Echte Funktionalität
MailStandalone.tsx mail.ts Echte Funktionalität
Dms.tsx dms.ts Echte Funktionalität
DmsStandalone.tsx dms.ts Echte Funktionalität
DmsTrash.tsx dms.ts Echte Funktionalität
Calendar.tsx calendar.ts Echte Funktionalität
CalendarStandalone.tsx calendar.ts Echte Funktionalität
CalendarKanban.tsx calendar.ts Echte Funktionalität
Tasks.tsx tasks.ts Echte Funktionalität
Communication.tsx comm.ts Echte Funktionalität
Dashboard.tsx dashboard.ts Echte Funktionalität
Agents.tsx automation.ts Echte Funktionalität
AgentsOverview.tsx automation.ts Echte Funktionalität
AgentsPlaceholder.tsx Placeholder
Automation.tsx automation.ts Echte Funktionalität
AutomationDashboard.tsx automation.ts Echte Funktionalität
AutomationPlaceholder.tsx Placeholder
Workflows.tsx workflows.ts Echte Funktionalität
Wiki.tsx (wiki routes) Echte Funktionalität
ImportExport.tsx importExport.ts Echte Funktionalität
Trash.tsx entityHistory.ts Echte Funktionalität
DedupMerge.tsx dedup.ts Echte Funktionalität
Tags.tsx tags.ts Echte Funktionalität
CustomFields.tsx customFields.ts Echte Funktionalität
GlobalSearchResults.tsx search.ts Echte Funktionalität
Settings.tsx + 22 Sub-Pages settings.ts, etc. Echte Funktionalität
AuditLog.tsx audit.ts Echte Funktionalität
Reports.tsx reports.ts Echte Funktionalität
ApiDocs.tsx (embed only) Echte Funktionalität
Help.tsx + Sub-Pages Placeholder/Info
Logs.tsx Placeholder
LogsPlaceholder.tsx Placeholder
AIAssistant.tsx ai.ts Echte Funktionalität
AIAssistantStandalone.tsx ai.ts Echte Funktionalität
AISettings.tsx settings.ts Echte Funktionalität
ProactiveAISettings.tsx aiProactive.ts Echte Funktionalität
AgentDashboard.tsx automation.ts Echte Funktionalität
PasswordResetRequest/Confirm.tsx auth.ts Echte Funktionalität
GuestLogin.tsx / GuestContacts.tsx auth.ts Echte Funktionalität
NoAccessPage.tsx Info-Page
StartPage.tsx Echte Funktionalität
ActivityTimeline.tsx Echte Funktionalität

Frontend-Pages mit echter API-Anbindung: ~50 von 67 (75%)

Frontend-Pages die Placeholder sind: ~5 (AgentsPlaceholder, AutomationPlaceholder, LogsPlaceholder, HelpPlaceholder, etc.)


Test-Prüfung

Backend-Tests (97 Dateien)

Test-Kategorie Dateien Echte Integration vs Mock?
Auth test_auth.py Integration mit Test-DB (leocrm_test)
Cross-Tenant Security test_cross_tenant_security.py, test_cross_tenant_security_v2.py, test_cross_tenant_standalone.py Integration mit Test-DB
Contacts test_contacts.py, test_contacts_lifecycle.py Integration mit Test-DB
Companies test_companies.py Integration mit Test-DB
DMS test_dms.py, test_dms_coverage.py, test_dms_errors.py Integration mit Test-DB
Mail test_mail.py Integration mit Test-DB, SMTP/IMAP gemockt
Calendar test_calendar.py, test_recurrence_unit.py Integration mit Test-DB
Tasks test_tasks.py, test_unified_tasks.py Integration mit Test-DB
Workflows test_workflows.py, test_phase_g_workflows.py, test_spike_g_durable_workflow.py Integration mit Test-DB
Agents test_agent_loop.py, test_agent_tools.py, test_phase_f_agents.py, test_agent_subtasks.py Integration mit Test-DB, LLM gemockt
Search test_unified_search.py, test_unified_search_phase_e.py Integration mit Test-DB
Wiki test_phase_h_wiki.py Integration mit Test-DB
Permissions test_permissions.py, test_abac.py, test_abac_integration.py, test_rbac_comprehensive.py Integration mit Test-DB
LLM Client test_llm_client.py Mock mode + real mode
Storage test_storage.py Integration
Hooks test_hooks.py, test_lifecycle_hooks.py Integration mit Test-DB
Outbox test_outbox.py, test_outbox_phase5.py Integration mit Test-DB
Backup/Restore test_backup_restore.py, test_backup_service.py Integration
Cost Protection test_cost_protection.py Integration
Sensitive Data test_sensitive_data.py Integration
Error Handling test_error_handling.py Integration
Observability test_observability.py Integration
Graceful Shutdown test_graceful_shutdown.py Integration
MCP test_mcp_client.py, test_mcp_server.py Integration
Skill Registry test_skill_registry.py Integration
Trigger Core test_trigger_core.py Integration
Redis Pool test_redis_pool.py Integration
Rate Limit test_rate_limit_policies.py Integration
RLS test_rls_coverage.py Integration mit Test-DB
Performance test_performance.py, test_vector_performance.py, test_permission_performance.py Integration
Spike Tests test_spike_g_durable_workflow.py, test_spike_i_integration_flow.py Integration
Plugin Lifecycle test_plugin_lifecycle.py, test_plugins.py, test_manifest_validation.py Integration
Marketplace test_marketplace.py Integration
Versioning test_versioning.py, test_semver.py Integration
Entity Links test_entity_links.py Integration
Tags test_tags.py Integration
Custom Fields test_custom_fields.py Integration
Dedup test_dedup.py Integration
Workspaces test_workspaces.py Integration
Saved Filters test_saved_filters.py Integration
User Preferences test_user_preferences.py Integration
User Service test_user_service.py Integration
Tenant test_tenant.py Integration
Dashboard test_dashboard.py Integration
Health test_health.py Integration
Monitoring test_monitoring.py Integration
Resilience test_resilience.py Integration
Restore Registry test_restore_registry.py Integration
WS Helpers test_ws_helpers.py Integration
Graph RAG test_graph_rag.py Integration
Agent Memory test_agent_memory.py Integration
AI Copilot test_ai_copilot.py Integration
AI Proactive test_ai_proactive.py Integration
External Agent API test_external_agent_api.py Integration
API Audit test_api_audit.py, test_api_documentation.py Integration
API Tokens test_api_tokens.py Integration
Audit Connections test_audit_connections.py Integration
Commands test_commands.py Integration
Backend Coverage Gaps test_backend_coverage_gaps.py Integration
No Legacy Tenant Var test_no_legacy_tenant_var.py Integration
Notification Migration test_notification_migration.py Integration
Notifications test_notifications.py Integration
Report Generator test_report_generator.py Integration
AI Deploy/Health test_ai_deploy.py, test_ai_health_check.py Integration
P1 DMS Streaming test_p1_6_dms_streaming.py Integration
P1 Permission Fixes test_p1_7_permission_fixes.py Integration
Permission System Live test_permission_system_live.py Integration

Frontend-Tests (94 Dateien)

  • Vitest-Tests für: auth, contacts, mail, dms, calendar, settings, search, dashboard, agents, automation, workflows, comm, plugins, tags, tasks, ui, ai, notifications, etc.

E2E-Tests (7 Dateien)

  • auth.spec.ts — Login-Flow
  • contact-crud.spec.ts — Contact CRUD
  • calendar.spec.ts — Calendar
  • dms.spec.ts — DMS
  • mail.spec.ts — Mail
  • search.spec.ts — Search
  • plugin-toggle.spec.ts — Plugin Toggle

Test-DB

  • Test-DB: leocrm_test (PostgreSQL)
  • conftest.py nutzt echte Alembic-Migrationen
  • .env.test konfiguriert Test-DB

Deploy-Verifikation

Check Status
App deployed https://crm.media-on.de (login page bestätigt)
Health Endpoint /api/v1/health Route existiert
Frontend gebaut frontend/dist/ wird von main.py als SPA geserved
Docker Compose docker-compose.yaml mit postgres, redis, crm_app, crm_worker
Alembic Migrationen 129 Migrationen in alembic/versions/
prestart.sh Führt Alembic + DB-Roles + Plugin-Sync + Admin-Seed aus
worker.sh Startet ARQ Background Worker
healthcheck.sh HTTP /api/v1/health oder Redis-Ping

Risiken

  1. B-NOTIF-DEPREC nicht durchgeführt — Altes Notification-System (Model, Routes, Frontend) existiert noch parallel zum Comm-System. Doppeltes System aktiv.
  2. Phase H Knowledge Extraction komplett fehlend — 12 von 20 Tasks nicht implementiert. Wiki existiert, aber keine Knowledge-Extraktion, kein Source Adapter, keine Evidence/Citations, kein Wiki Search Provider.
  3. Phase I komplett nicht gestartet — MiniAppBlock ist noch Placeholder, kein Workstream, kein Dashboard, kein DSGVO-Export.
  4. PWA nicht funktionsfähig — manifest.json existiert, aber kein Service Worker. PWA nicht installierbar.
  5. External Storage (WebDAV) fehlt — B-STOR-EXT und B-STOR-WEBDAV nicht implementiert.
  6. AIProvider Model fehlt — B-AIPROV-COMP nur teilweise (compliance metadata in llm_client, aber kein AIProvider-Datenbankmodell).
  7. Keine Cytoscape-Visualisierung — KnowledgeGraph.tsx verwendet eigene SVG-Rendering, nicht Cytoscape wie gefordert.

Empfohlene nächste Schritte

  1. B-NOTIF-DEPEC abschließen — Altes Notification-System entfernen, NotificationDropdown durch Comm-Komponenten ersetzen.
  2. Phase H Knowledge Extraction aufbauen — H-SRC (Knowledge Source Adapter), H-EXT (LLM Relationship Extraction), H-ENT (Entity Extraction), H-SEARCH (Wiki Search Provider), H-EMB (Wiki Embeddings), H-CITE (Evidence/Source References).
  3. Phase I starten — I-MINI-RENDER (MiniAppBlock Placeholder ersetzen), I-WORK-BASE (Workstream Contract), I-DASH (Platform Dashboard), I-DSGVO (Datenauskunfts-Export).
  4. PWA Service Worker reaktivieren — sw.js erstellen, vite.config.ts PWA-Plugin konfigurieren.
  5. External Storage Plugin System — B-STOR-EXT (StorageProvider Interface) und B-STOR-WEBDAV (WebDAV Plugin) implementieren.