2026-08-20 19:55:49 +02:00
|
|
|
# Architektur-Plan — LeoCRM
|
|
|
|
|
|
|
|
|
|
**Prinzip: Auf bestehendem Code aufbauen. Nichts parallel bauen.**
|
|
|
|
|
|
|
|
|
|
## Bestehende UI-Struktur (geprüft am 2026-08-20)
|
|
|
|
|
|
|
|
|
|
### Rechte Sidebar — AISidebar.tsx (5 Tabs)
|
|
|
|
|
- `chat` — KI Chat (ChatWindow mit AI)
|
|
|
|
|
- `proactive` — Live KI (SuggestionList)
|
|
|
|
|
- `notifications` — Benachrichtigungen
|
|
|
|
|
- `team` — Team-Übersicht (Mitarbeiter + Gruppen)
|
|
|
|
|
- `chatroom` — Chat-Räume (MessageSidebar)
|
|
|
|
|
|
|
|
|
|
### MessageSidebar.tsx (671 Zeilen)
|
|
|
|
|
- Vollständiger Chat mit Conversations, Messages, WebSocket
|
|
|
|
|
- Nutzt `useCommStore`, `useCommWebSocket`, `BlockRenderer`
|
|
|
|
|
- Conversations: listConversations, getMessages, sendMessage, markRead, createConversation
|
|
|
|
|
- Wird in AppShell rechts angezeigt
|
|
|
|
|
|
|
|
|
|
### Communication.tsx (859 Zeilen)
|
|
|
|
|
- Volle Chat-Seite mit Conversations (system/ai/colleague Kategorien)
|
|
|
|
|
- Participants mit Rollen, Messages mit Blocks
|
|
|
|
|
- Pin/Unpin, Read, Create Conversation
|
|
|
|
|
- WebSocket-Integration, Markdown-Rendering
|
|
|
|
|
|
|
|
|
|
### comm/blocks/ (10 Block-Typen)
|
|
|
|
|
- text, markdown, html, image, audio, video, file, action_card, contact_card, miniapp
|
|
|
|
|
- BlockRenderer.tsx rendert alle Typen
|
|
|
|
|
- MiniAppBlock.tsx existiert (placeholder — rendert nur app_id + config)
|
|
|
|
|
|
|
|
|
|
### Dashboard.tsx
|
|
|
|
|
- StatCards (Kontakte, Firmen, Aktivitäten)
|
|
|
|
|
- ActivityFeed (Audit Log)
|
|
|
|
|
- DashboardGrid mit Widgets (RecentContacts, TasksSummary, CalendarUpcoming)
|
|
|
|
|
- Nutzt useUnifiedContacts, useAuditLog, useDashboardWidgets
|
|
|
|
|
|
|
|
|
|
### AgentDashboard.tsx
|
|
|
|
|
- Agent CRUD (create, update, delete)
|
|
|
|
|
- Execute Agent, Test Run Agent
|
|
|
|
|
- Agent Runs, Agent Versions, Restore Version
|
|
|
|
|
- Agent Tools, Send Agent Message
|
|
|
|
|
|
|
|
|
|
### Workflows.tsx
|
|
|
|
|
- Workflow CRUD (create, update, delete)
|
|
|
|
|
- Workflow Instances (List + Detail)
|
|
|
|
|
- WorkflowEditor (Step Config)
|
|
|
|
|
- Tabs: definitions, instances
|
|
|
|
|
|
|
|
|
|
### Wiki.tsx
|
|
|
|
|
- Wiki Categories + Articles
|
|
|
|
|
- Markdown Editor mit Preview
|
|
|
|
|
- Version History mit Restore
|
|
|
|
|
- WikiBrowser (Category Tree + Article List)
|
|
|
|
|
|
|
|
|
|
### components/knowledge/
|
|
|
|
|
- AskKnowledge.tsx — existiert schon
|
|
|
|
|
- KnowledgeGraph.tsx — existiert schon
|
|
|
|
|
|
|
|
|
|
### components/onboarding/
|
|
|
|
|
- OnboardingTour.tsx — existiert schon
|
|
|
|
|
- WelcomeDialog.tsx — existiert schon
|
|
|
|
|
|
|
|
|
|
### components/agents/
|
|
|
|
|
- AgentChat.tsx, AgentEditor.tsx, AgentMonitor.tsx, AgentRunLog.tsx — existieren schon
|
|
|
|
|
|
|
|
|
|
### components/workflows/
|
|
|
|
|
- StepConfigPanel.tsx, WorkflowEditor.tsx, WorkflowInstanceList.tsx, WorkflowInstanceDetail.tsx — existieren schon
|
|
|
|
|
|
|
|
|
|
### components/dashboard/
|
|
|
|
|
- DashboardGrid.tsx, RecentContactsWidget.tsx, TasksSummaryWidget.tsx, CalendarUpcomingWidget.tsx, DashboardWidgetLoader.tsx — existieren schon
|
|
|
|
|
|
|
|
|
|
### Stores
|
|
|
|
|
- commStore.ts — Conversation, Message, MessageBlock, MessageAttachment, Participant
|
|
|
|
|
- uiStore.ts — aiSidebarCollapsed, aiSidebarTab, notifications
|
|
|
|
|
- pluginStore.ts, pluginToolbarStore.ts — Plugin Manifests, Toolbar
|
|
|
|
|
- authStore.ts — Auth, User, Role
|
|
|
|
|
- onboardingStore.ts — Onboarding State
|
|
|
|
|
|
|
|
|
|
### API Clients
|
|
|
|
|
- api/comm.ts — listConversations, getMessages, sendMessage, markRead, createConversation
|
|
|
|
|
- api/ai.ts — createSession, fetchSessions, streamChat, fetchAgents
|
|
|
|
|
- api/automation.ts — useAgents, useCreateAgent, useUpdateAgent, useDeleteAgent, useExecuteAgent, useTestRunAgent, useAgentRuns, useAgentVersions, useRestoreAgentVersion, useAgentTools, useSendAgentMessage
|
|
|
|
|
- api/workflows.ts — useWorkflows, useDeleteWorkflow, useUpdateWorkflow
|
|
|
|
|
- api/knowledge.ts — createWikiArticle, deleteWikiArticle, fetchWikiArticle, fetchWikiCategories, fetchWikiVersions, restoreWikiVersion, updateWikiArticle
|
|
|
|
|
- api/dashboard.ts — useDashboardWidgets
|
|
|
|
|
- api/systemDashboard.ts — useSystemDashboard, useSystemAlerts
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## Plan: Offene Tasks auf bestehender UI aufbauen
|
|
|
|
|
|
|
|
|
|
### Phase B/F/G Lücken (7 Tasks)
|
|
|
|
|
|
|
|
|
|
#### B-VEC-IVF: IVFFlat Index
|
|
|
|
|
- **Backend:** `app/core/db.py` — IVFFlat Index in config.py aktivieren (partial, schon da)
|
|
|
|
|
- **Frontend:** Keine UI-Änderung
|
|
|
|
|
- **Aufbauend auf:** unified_search Plugin (existiert schon)
|
|
|
|
|
|
|
|
|
|
#### B-STOR-EXT: External Storage (S3/Nextcloud)
|
|
|
|
|
- **Backend:** `app/core/storage.py` erweitern (existiert schon mit Local + S3 Backend)
|
|
|
|
|
- **Frontend:** `SettingsSystem.tsx` erweitern (existiert schon) — Storage-Config Sektion hinzufügen
|
|
|
|
|
- **Aufbauend auf:** storage.py (existiert schon), SettingsSystem.tsx (existiert schon)
|
|
|
|
|
|
|
|
|
|
#### B-NOTIF-DEPREC: Notification Model aufräumen
|
|
|
|
|
- **Backend:** Altes Notification Model entfernen, auf system_notif Plugin migrieren
|
|
|
|
|
- **Frontend:** Keine UI-Änderung (system_notif Plugin hat eigene UI)
|
|
|
|
|
- **Aufbauend auf:** system_notif Plugin (existiert schon)
|
|
|
|
|
|
|
|
|
|
#### F-PREBUILT: Pre-built Agents registrieren
|
|
|
|
|
- **Backend:** `automation/plugin.py on_activate` — import prebuilt agents (email_triage, contact_enrichment, follow_up, report)
|
|
|
|
|
- **Frontend:** AgentDashboard.tsx zeigt sie automatisch (existiert schon, nutzt useAgents)
|
|
|
|
|
- **Aufbauend auf:** AgentDashboard.tsx (existiert schon), prebuilt/ agents (existieren schon)
|
|
|
|
|
|
|
|
|
|
#### F-COMM: Agent → Kommunikation (Run-Results posten)
|
|
|
|
|
- **Backend:** `agent_runner.py` — nach Agent-Run, poste Ergebnis als Message in Communication
|
|
|
|
|
- Nutze `kommunikation.contracts.send_message()` (existiert schon)
|
|
|
|
|
- Erstelle CommMessage mit Block vom Typ `action_card` (existiert schon in BlockRenderer)
|
|
|
|
|
- **Frontend:** MessageSidebar.tsx und Communication.tsx zeigen die Messages automatisch (existieren schon)
|
|
|
|
|
- **Aufbauend auf:** kommunikation Plugin (existiert schon), MessageSidebar.tsx (existiert schon), Communication.tsx (existiert schon), BlockRenderer mit action_card (existiert schon)
|
|
|
|
|
|
|
|
|
|
#### F-WORK: Agent Workstream
|
|
|
|
|
- **Backend:** `agent_runner.py` — poste Agent-Status (started/progress/completed/failed) als CommMessage in eine Agent-Conversation
|
|
|
|
|
- Nutze `kommunikation.contracts.create_plugin_room()` (existiert schon)
|
|
|
|
|
- Nutze `send_message()` mit Blocks (existiert schon)
|
|
|
|
|
- **Frontend:** AISidebar `chatroom` Tab zeigt die Agent-Conversation automatisch (existiert schon)
|
|
|
|
|
- **Aufbauend auf:** AISidebar.tsx chatroom Tab (existiert schon), MessageSidebar.tsx (existiert schon), kommunikation Plugin (existiert schon)
|
|
|
|
|
|
|
|
|
|
#### G-WORK: Workflow Workstream
|
|
|
|
|
- **Backend:** `engine.py` — poste Workflow-Status als CommMessage in eine Workflow-Conversation
|
|
|
|
|
- Nutze `kommunikation.contracts.create_plugin_room()` (existiert schon)
|
|
|
|
|
- Nutze `send_message()` mit Blocks (existiert schon)
|
|
|
|
|
- **Frontend:** AISidebar `chatroom` Tab zeigt die Workflow-Conversation automatisch (existiert schon)
|
|
|
|
|
- **Aufbauend auf:** AISidebar.tsx chatroom Tab (existiert schon), engine.py (existiert schon), kommunikation Plugin (existiert schon)
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
### Phase H Rest (12 Tasks)
|
|
|
|
|
|
|
|
|
|
#### H-EXT: Knowledge Extraction Pipeline
|
|
|
|
|
- **Backend:** Neues `app/plugins/builtins/knowledge/` Plugin
|
|
|
|
|
- `services/extraction.py` — nutze `llm_client.llm_complete()` (existiert schon) für Entity/Relationship Extraction
|
|
|
|
|
- `services/source_adapter.py` — nutze `unified_search` Provider (existieren schon) als Knowledge Sources
|
|
|
|
|
- `services/relationship_extractor.py` — nutze `graph_rag.services.create_relationship()` (existiert schon)
|
|
|
|
|
- **Frontend:** Wiki.tsx (existiert schon) — "Extract Knowledge" Button hinzufügen
|
|
|
|
|
- **Aufbauend auf:** llm_client (existiert schon), graph_rag Plugin (existiert schon), unified_search Plugin (existieren schon), Wiki.tsx (existiert schon)
|
|
|
|
|
|
|
|
|
|
#### H-ENT: Entity Extraction
|
|
|
|
|
- **Backend:** In `knowledge/services/extraction.py` (siehe H-EXT)
|
|
|
|
|
- **Frontend:** KnowledgeGraph.tsx (existiert schon) — zeigt extrahierte Entities
|
|
|
|
|
- **Aufbauend auf:** KnowledgeGraph.tsx (existiert schon), graph_rag Plugin (existiert schon)
|
|
|
|
|
|
|
|
|
|
#### H-AUTO: Auto-Create Relationships in GraphRAG
|
|
|
|
|
- **Backend:** In `knowledge/services/relationship_extractor.py` (siehe H-EXT)
|
|
|
|
|
- **Frontend:** KnowledgeGraph.tsx (existiert schon) — zeigt Relationships automatisch
|
|
|
|
|
- **Aufbauend auf:** KnowledgeGraph.tsx (existiert schon), graph_rag Plugin (existiert schon)
|
|
|
|
|
|
|
|
|
|
#### H-CONF: Confidence Scoring + Review Queue
|
|
|
|
|
- **Backend:** In `knowledge/services/extraction.py` — Confidence Score pro Extraction
|
|
|
|
|
- **Frontend:** Wiki.tsx (existiert schon) — Review-Queue Sektion hinzufügen
|
|
|
|
|
- **Aufbauend auf:** Wiki.tsx (existiert schon)
|
|
|
|
|
|
|
|
|
|
#### H-EVT: Event-Driven Extraction
|
|
|
|
|
- **Backend:** In `knowledge/plugin.py on_activate` — registriere Hooks für `contact.after_create`, `file.created`, `mail.received`
|
|
|
|
|
- **Frontend:** Keine UI-Änderung
|
|
|
|
|
- **Aufbauend auf:** hooks.py (existiert schon), do_action Events (existieren schon)
|
|
|
|
|
|
|
|
|
|
#### H-CITE: Evidence References
|
|
|
|
|
- **Backend:** In `knowledge/services/source_adapter.py` — Evidence References mit Deep-Links
|
|
|
|
|
- **Frontend:** AskKnowledge.tsx (existiert schon) — Evidence-Cards hinzufügen
|
|
|
|
|
- **Aufbauend auf:** AskKnowledge.tsx (existiert schon)
|
|
|
|
|
|
|
|
|
|
#### H-RET: Retention Policy
|
|
|
|
|
- **Backend:** In `knowledge/plugin.py` — ARQ Cron-Job für Knowledge Retention
|
|
|
|
|
- **Frontend:** Keine UI-Änderung
|
|
|
|
|
- **Aufbauend auf:** worker.py cron jobs (existieren schon)
|
|
|
|
|
|
|
|
|
|
#### H-WIKI-SEARCH: Wiki Search Provider
|
|
|
|
|
- **Backend:** In `wiki/plugin.py on_activate` — registriere WikiSearchProvider bei `unified_search`
|
|
|
|
|
- **Frontend:** Keine UI-Änderung (Search läuft über unified_search)
|
|
|
|
|
- **Aufbauend auf:** unified_search Plugin (existiert schon), wiki Plugin (existiert schon)
|
|
|
|
|
|
|
|
|
|
#### H-DATA-LIFE: Derived-Data Lifecycle
|
|
|
|
|
- **Backend:** In `knowledge/services/extraction.py` — bei Entity-Update, re-extract
|
|
|
|
|
- **Frontend:** Keine UI-Änderung
|
|
|
|
|
- **Aufbauend auf:** hooks.py (existiert schon)
|
|
|
|
|
|
|
|
|
|
#### H-ASK: Ask Knowledge
|
|
|
|
|
- **Backend:** In `knowledge/routes.py` — `/api/v1/knowledge/ask` Endpoint
|
|
|
|
|
- **Frontend:** AskKnowledge.tsx (existiert schon) — mit API verbinden
|
|
|
|
|
- **Aufbauend auf:** AskKnowledge.tsx (existiert schon), llm_client (existiert schon)
|
|
|
|
|
|
|
|
|
|
#### H-REV: Relationship Review Queue
|
|
|
|
|
- **Backend:** In `knowledge/routes.py` — Review Queue API
|
|
|
|
|
- **Frontend:** KnowledgeGraph.tsx (existiert schon) — Review-Queue Sektion
|
|
|
|
|
- **Aufbauend auf:** KnowledgeGraph.tsx (existiert schon)
|
|
|
|
|
|
|
|
|
|
#### H-DOC: Documentation
|
|
|
|
|
- **Doku:** docs/api-documentation.md erweitern, docs/plugin-development-guide.md erweitern
|
|
|
|
|
- **Aufbauend auf:** existierende Doku-Dateien
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
### Phase I (25 Tasks)
|
|
|
|
|
|
|
|
|
|
#### I.1 Cross-System Integration (7 Tasks)
|
|
|
|
|
|
|
|
|
|
##### I-AW: Agent → Workflow
|
|
|
|
|
- **Backend:** `agent_tools.py` — `start_workflow` und `check_workflow_status` als Agent Tools registrieren
|
|
|
|
|
- **Frontend:** Keine UI-Änderung (Agent nutzt Tool im Hintergrund)
|
|
|
|
|
- **Aufbauend auf:** agent_tools.py (existiert schon), workflows.py routes (existieren schon)
|
|
|
|
|
|
|
|
|
|
##### I-AS: Agent → Search
|
|
|
|
|
- **Backend:** `agent_tools.py` — `unified_search` als Agent Tool registrieren (existiert schon)
|
|
|
|
|
- **Frontend:** Keine UI-Änderung
|
|
|
|
|
- **Aufbauend auf:** unified_search Plugin (existiert schon), agent_tools.py (existiert schon)
|
|
|
|
|
|
|
|
|
|
##### I-AK: Agent → Knowledge
|
|
|
|
|
- **Backend:** `agent_tools.py` — `ask_knowledge` und `search_knowledge` als Agent Tools registrieren
|
|
|
|
|
- **Frontend:** Keine UI-Änderung
|
|
|
|
|
- **Aufbauend auf:** knowledge Plugin (siehe Phase H), agent_tools.py (existiert schon)
|
|
|
|
|
|
|
|
|
|
##### I-APPR-LOOP: Agent Approval Integration
|
|
|
|
|
- **Backend:** `agent_runner.py` — `require_approval` Parameter durchreichen (existiert schon)
|
|
|
|
|
- **Frontend:** AgentDashboard.tsx (existiert schon) — Approval-Status anzeigen
|
|
|
|
|
- **Aufbauend auf:** agent_runner.py (existiert schon), approvals.py routes (existieren schon), AgentDashboard.tsx (existiert schon)
|
|
|
|
|
|
|
|
|
|
##### I-MCP: MCP Exposure
|
|
|
|
|
- **Backend:** `app/ai/mcp_exposure.py` — MCP Tools definieren (existiert schon)
|
|
|
|
|
- **Frontend:** SettingsMcp.tsx (existiert schon) — MCP Config UI
|
|
|
|
|
- **Aufbauend auf:** mcp_exposure.py (existiert schon), SettingsMcp.tsx (existiert schon)
|
|
|
|
|
|
|
|
|
|
##### I-WA: Workflow → Agent
|
|
|
|
|
- **Backend:** `step_handlers.py` — `agent` step type (existiert schon)
|
|
|
|
|
- **Frontend:** Workflows.tsx (existiert schon) — Step Config zeigt agent step
|
|
|
|
|
- **Aufbauend auf:** step_handlers.py (existiert schon), Workflows.tsx (existiert schon)
|
|
|
|
|
|
|
|
|
|
##### I-KS: Knowledge → Search
|
|
|
|
|
- **Backend:** `knowledge/plugin.py on_activate` — registriere Search Provider (siehe H-WIKI-SEARCH)
|
|
|
|
|
- **Frontend:** Keine UI-Änderung
|
|
|
|
|
- **Aufbauend auf:** unified_search Plugin (existiert schon)
|
|
|
|
|
|
|
|
|
|
#### I.2 Human-AI Workstream (11 Tasks)
|
|
|
|
|
|
|
|
|
|
##### I-WORK-BASE: Workstream Basis
|
|
|
|
|
- **Backend:** Nutze `kommunikation.contracts.send_message()` (existiert schon) für alle Workstream-Posts
|
|
|
|
|
- **Frontend:** MessageSidebar.tsx (existiert schon) zeigt Workstream automatisch
|
|
|
|
|
- **Aufbauend auf:** kommunikation Plugin (existiert schon), MessageSidebar.tsx (existiert schon)
|
|
|
|
|
|
|
|
|
|
##### I-WORK-ACTOR: Workstream Actors
|
|
|
|
|
- **Backend:** Nutze `kommunikation.contracts.create_plugin_room()` (existiert schon) für Actor-spezifische Räume
|
|
|
|
|
- **Frontend:** Communication.tsx (existiert schon) zeigt Räume automatisch
|
|
|
|
|
- **Aufbauend auf:** kommunikation Plugin (existiert schon), Communication.tsx (existiert schon)
|
|
|
|
|
|
|
|
|
|
##### I-WORK-HANDOFF: Human-Agent Handoff
|
|
|
|
|
- **Backend:** `agent_runner.py` — bei Approval-Request, poste in Communication
|
|
|
|
|
- **Frontend:** MessageSidebar.tsx (existiert schon) zeigt Handoff-Nachricht mit action_card Block
|
|
|
|
|
- **Aufbauend auf:** kommunikation Plugin (existiert schon), action_card Block (existiert schon), MessageSidebar.tsx (existiert schon)
|
|
|
|
|
|
|
|
|
|
##### I-WORK-PROACTIVE: Proactive Feed
|
|
|
|
|
- **Backend:** `app/ai/proactive_feed.py` (existiert schon) — poste Vorschläge in Communication
|
|
|
|
|
- **Frontend:** AISidebar `proactive` Tab (existiert schon) — SuggestionList zeigt Vorschläge
|
|
|
|
|
- **Aufbauend auf:** AISidebar.tsx proactive Tab (existiert schon), SuggestionList (existiert schon)
|
|
|
|
|
|
|
|
|
|
##### I-MINI-RENDER: MiniApp Rendering
|
|
|
|
|
- **Backend:** `kommunikation/miniapp_registry.py` (existiert schon) — MiniApp Manifests
|
|
|
|
|
- **Frontend:** MiniAppBlock.tsx (existiert schon) — von Placeholder zu echtem Rendering ausbauen
|
|
|
|
|
- Lade MiniApp Manifest vom Backend
|
|
|
|
|
- Rendere MiniApp iframe oder React-Komponente
|
|
|
|
|
- **Aufbauend auf:** MiniAppBlock.tsx (existiert schon), miniapp_registry.py (existiert schon), BlockRenderer (existiert schon)
|
|
|
|
|
|
|
|
|
|
##### I-MINI-SDK: MiniApp SDK
|
|
|
|
|
- **Backend:** `kommunikation/miniapp_registry.py` (existiert schon) — SDK Definition
|
|
|
|
|
- **Frontend:** MiniAppBlock.tsx (existiert schon) — SDK API für MiniApps
|
|
|
|
|
- **Aufbauend auf:** MiniAppBlock.tsx (existiert schon)
|
|
|
|
|
|
|
|
|
|
##### I-MINI-MANIFEST: MiniApp Manifests
|
|
|
|
|
- **Backend:** Plugin Manifests (existieren schon) — MiniApp Sektion
|
|
|
|
|
- **Frontend:** SettingsPlugins.tsx (existiert schon) — zeige MiniApp Manifests
|
|
|
|
|
- **Aufbauend auf:** SettingsPlugins.tsx (existiert schon), pluginStore.ts (existiert schon)
|
|
|
|
|
|
|
|
|
|
##### I-WORK-E2E: Workstream E2E
|
|
|
|
|
- **Backend:** Alle Workstream-Posts laufen über Communication API
|
|
|
|
|
- **Frontend:** Communication.tsx (existiert schon) — zeigt alle Workstream-Posts
|
|
|
|
|
- **Aufbauend auf:** Communication.tsx (existiert schon)
|
|
|
|
|
|
|
|
|
|
##### I-UI: Block Renderer Erweiterung
|
|
|
|
|
- **Frontend:** BlockRenderer.tsx (existiert schon) — neue Block-Typen hinzufügen:
|
|
|
|
|
- `agent_result` — Agent Ergebnis Card
|
|
|
|
|
- `approval_request` — Approval Card mit Approve/Reject Buttons
|
|
|
|
|
- `task_card` — Task Card
|
|
|
|
|
- `workflow_card` — Workflow Status Card
|
|
|
|
|
- `knowledge_card` — Knowledge Extraction Card
|
|
|
|
|
- **Aufbauend auf:** BlockRenderer.tsx (existiert schon), comm/blocks/ (existieren schon)
|
|
|
|
|
|
|
|
|
|
##### I-GROUP: Group Chat
|
|
|
|
|
- **Backend:** `kommunikation` Plugin (existiert schon) — Group Conversations
|
|
|
|
|
- **Frontend:** Communication.tsx (existiert schon) — Group Chat UI
|
|
|
|
|
- **Aufbauend auf:** Communication.tsx (existiert schon), commStore.ts (existiert schon)
|
|
|
|
|
|
|
|
|
|
##### I-MOBILE: Mobile Responsive
|
|
|
|
|
- **Frontend:** AISidebar.tsx (existiert schon) — Mobile Anpassung
|
|
|
|
|
- **Aufbauend auf:** AISidebar.tsx (existiert schon), ResizablePanel (existiert schon)
|
|
|
|
|
|
|
|
|
|
#### I.3 Dashboard (3 Tasks)
|
|
|
|
|
|
|
|
|
|
##### I-DASH: Platform Dashboard
|
|
|
|
|
- **Frontend:** Dashboard.tsx (existiert schon) — erweitern mit System-Metriken
|
|
|
|
|
- Nutze useSystemDashboard() (existiert schon in api/systemDashboard.ts)
|
|
|
|
|
- Zeige DB, Redis, Worker, API, Plugin Status
|
|
|
|
|
- **Aufbauend auf:** Dashboard.tsx (existiert schon), api/systemDashboard.ts (existiert schon), DashboardGrid.tsx (existiert schon)
|
|
|
|
|
|
|
|
|
|
##### I-COST: Cost Tracking
|
|
|
|
|
- **Backend:** `app/ai/llm_client.py` (existiert schon) — Cost Tracking pro Tenant
|
|
|
|
|
- **Frontend:** Dashboard.tsx (existiert schon) — Cost Widget hinzufügen
|
|
|
|
|
- **Aufbauend auf:** Dashboard.tsx (existiert schon), llm_client.py (existiert schon)
|
|
|
|
|
|
|
|
|
|
##### I-USE: Usage Analytics
|
|
|
|
|
- **Backend:** `app/routes/system_dashboard.py` (existiert schon) — Usage Stats
|
|
|
|
|
- **Frontend:** Dashboard.tsx (existiert schon) — Usage Widget
|
|
|
|
|
- **Aufbauend auf:** system_dashboard.py (existiert schon), Dashboard.tsx (existiert schon)
|
|
|
|
|
|
|
|
|
|
#### I.4 Performance (5 Tasks)
|
|
|
|
|
- **Backend:** Query-Optimierung, Caching, Connection Pooling
|
|
|
|
|
- **Frontend:** Keine UI-Änderung
|
|
|
|
|
- **Aufbauend auf:** db.py (existiert schon), Redis (existiert schon)
|
|
|
|
|
|
|
|
|
|
#### I.5 DSGVO (3 Tasks)
|
|
|
|
|
|
|
|
|
|
##### I-DSGVO: DSGVO Export
|
|
|
|
|
- **Backend:** `app/routes/system_settings.py` (existiert schon) — DSGVO Export Route
|
|
|
|
|
- **Frontend:** SettingsSystem.tsx (existiert schon) — DSGVO Export Button
|
|
|
|
|
- **Aufbauend auf:** system_settings.py (existiert schon), SettingsSystem.tsx (existiert schon)
|
|
|
|
|
|
|
|
|
|
##### I-DSAR: DSAR Workflow
|
|
|
|
|
- **Backend:** ARQ Job für DSAR Processing
|
|
|
|
|
- **Frontend:** SettingsSystem.tsx (existiert schon) — DSAR Status
|
|
|
|
|
- **Aufbauend auf:** worker.py (existiert schon), SettingsSystem.tsx (existiert schon)
|
|
|
|
|
|
|
|
|
|
##### I-COMP-EXPORT: Compliance Export
|
|
|
|
|
- **Backend:** Audit Log Export (existiert schon — /api/v1/audit-log/export)
|
|
|
|
|
- **Frontend:** AuditLog.tsx (existiert schon) — Export Button
|
|
|
|
|
- **Aufbauend auf:** audit.py routes (existieren schon), AuditLog.tsx (existiert schon)
|
|
|
|
|
|
|
|
|
|
#### I.6 Onboarding (3 Tasks)
|
|
|
|
|
|
|
|
|
|
##### I-ONB: Onboarding Wizard
|
|
|
|
|
- **Frontend:** OnboardingTour.tsx (existiert schon) + WelcomeDialog.tsx (existiert schon) — erweitern mit Setup Steps
|
|
|
|
|
- **Backend:** `app/ai/onboarding.py` (existiert schon) — Onboarding Status API
|
|
|
|
|
- **Aufbauend auf:** OnboardingTour.tsx (existiert schon), WelcomeDialog.tsx (existiert schon), onboardingStore.ts (existiert schon)
|
|
|
|
|
|
|
|
|
|
#### I.7 Final Polish (3 Tasks)
|
|
|
|
|
- **Frontend:** tsc clean, i18n vervollständigen, ARIA-Labels prüfen
|
|
|
|
|
- **Aufbauend auf:** existierende Frontend-Dateien
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
### Phase J (10 Tasks)
|
|
|
|
|
|
|
|
|
|
#### J-SIGNAL: Improvement Signals
|
|
|
|
|
- **Backend:** Neues `app/plugins/builtins/self_improvement/` Plugin
|
|
|
|
|
- `models.py` — ImprovementSignal, ImprovementProposal, ImpactMeasurement (SQLAlchemy Models, keine Dataclasses)
|
|
|
|
|
- `routes.py` — `/api/v1/improvement/signals`, `/api/v1/improvement/proposals`
|
|
|
|
|
- `services.py` — Signal Collection aus AuditLog, AgentRun, WorkflowInstance
|
|
|
|
|
- **Frontend:** Keine neue Page — nutze AISidebar `proactive` Tab (existiert schon) für Signal-Anzeige
|
|
|
|
|
- **Aufbauend auf:** AuditLog (existiert schon), AgentRun (existiert schon), WorkflowInstance (existiert schon), AISidebar proactive Tab (existiert schon)
|
|
|
|
|
|
|
|
|
|
#### J-PATTERN: Pattern Detection
|
|
|
|
|
- **Backend:** In `self_improvement/services.py` — Pattern Detection aus Signals
|
|
|
|
|
- **Frontend:** AISidebar `proactive` Tab (existiert schon) — Pattern Insights
|
|
|
|
|
- **Aufbauend auf:** SuggestionList (existiert schon)
|
|
|
|
|
|
|
|
|
|
#### J-PROP: Improvement Proposals
|
|
|
|
|
- **Backend:** In `self_improvement/models.py` — ImprovementProposal Model
|
|
|
|
|
- **Frontend:** Communication.tsx (existiert schon) — Proposal als action_card Block in System-Conversation
|
|
|
|
|
- **Aufbauend auf:** Communication.tsx (existiert schon), action_card Block (existiert schon)
|
|
|
|
|
|
|
|
|
|
#### J-DRAFT: Versioned Drafts
|
|
|
|
|
- **Backend:** In `self_improvement/models.py` — Draft Versioning
|
|
|
|
|
- **Frontend:** AgentDashboard.tsx (existiert schon) — Draft Version History (ähnlich Agent Versions)
|
|
|
|
|
- **Aufbauend auf:** AgentDashboard.tsx (existiert schon), useAgentVersions (existiert schon)
|
|
|
|
|
|
|
|
|
|
#### J-EVAL: Evaluation
|
|
|
|
|
- **Backend:** In `self_improvement/services.py` — Dry-Run Evaluation
|
|
|
|
|
- **Frontend:** AgentDashboard.tsx (existiert schon) — Evaluation Results
|
|
|
|
|
- **Aufbauend auf:** AgentDashboard.tsx (existiert schon), useTestRunAgent (existiert schon)
|
|
|
|
|
|
|
|
|
|
#### J-APPROVAL: Human Approval
|
|
|
|
|
- **Backend:** Nutze `app.core.approval.create_approval_request()` (existiert schon)
|
|
|
|
|
- **Frontend:** Communication.tsx (existiert schon) — Approval als action_card Block
|
|
|
|
|
- **Aufbauend auf:** approvals.py routes (existieren schon), Communication.tsx (existiert schon), action_card Block (existiert schon)
|
2026-08-20 01:12:32 +02:00
|
|
|
|
2026-08-20 19:55:49 +02:00
|
|
|
#### J-ACTIVATE: Controlled Activation
|
|
|
|
|
- **Backend:** In `self_improvement/services.py` — Activation + Rollback
|
|
|
|
|
- **Frontend:** AgentDashboard.tsx (existiert schon) — Activate/Rollback Button
|
|
|
|
|
- **Aufbauend auf:** AgentDashboard.tsx (existiert schon), useRestoreAgentVersion (existiert schon)
|
2026-08-20 01:12:32 +02:00
|
|
|
|
2026-08-20 19:55:49 +02:00
|
|
|
#### J-MEASURE: Impact Measurement
|
|
|
|
|
- **Backend:** In `self_improvement/services.py` — Pre/Post Measurement
|
|
|
|
|
- **Frontend:** Dashboard.tsx (existiert schon) — Impact Widget
|
|
|
|
|
- **Aufbauend auf:** Dashboard.tsx (existiert schon), DashboardGrid.tsx (existiert schon)
|
2026-08-20 01:12:32 +02:00
|
|
|
|
2026-08-20 19:55:49 +02:00
|
|
|
#### J-UI: Improvement UI
|
|
|
|
|
- **Frontend:** AISidebar `proactive` Tab (existiert schon) — Improvement Proposals + Patterns
|
|
|
|
|
- **Aufbauend auf:** AISidebar.tsx (existiert schon), SuggestionList (existiert schon)
|
2026-08-20 01:12:32 +02:00
|
|
|
|
2026-08-20 19:55:49 +02:00
|
|
|
#### J-DOC: Documentation
|
|
|
|
|
- **Doku:** docs/api-documentation.md erweitern
|
|
|
|
|
- **Aufbauend auf:** existierende Doku-Dateien
|
2026-08-20 01:12:32 +02:00
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
2026-08-20 19:55:49 +02:00
|
|
|
### Phase K (6 Tasks)
|
2026-08-20 01:12:32 +02:00
|
|
|
|
2026-08-20 19:55:49 +02:00
|
|
|
#### K-AI-REG: AI Registry
|
|
|
|
|
- **Backend:** `app/ai/ai_use_case.py` (existiert schon) — AI Use Case Registry
|
|
|
|
|
- **Frontend:** SettingsAI.tsx (existiert schon) — AI Use Case Liste
|
|
|
|
|
- **Aufbauend auf:** ai_use_case.py (existiert schon), SettingsAI.tsx (existiert schon)
|
2026-08-20 01:12:32 +02:00
|
|
|
|
2026-08-20 19:55:49 +02:00
|
|
|
#### K-DSR: Data Subject Rights
|
|
|
|
|
- **Backend:** ARQ Job für DSR Processing (siehe I-DSAR)
|
|
|
|
|
- **Frontend:** SettingsSystem.tsx (existiert schon) — DSR Status
|
|
|
|
|
- **Aufbauend auf:** SettingsSystem.tsx (existiert schon), worker.py (existiert schon)
|
2026-08-20 01:12:32 +02:00
|
|
|
|
2026-08-20 19:55:49 +02:00
|
|
|
#### K-DPIA: DPIA Documentation
|
|
|
|
|
- **Doku:** `docs/dpia.md` — DPIA Dokumentation
|
|
|
|
|
- **Aufbauend auf:** existierende Doku-Struktur
|
2026-08-20 01:12:32 +02:00
|
|
|
|
2026-08-20 19:55:49 +02:00
|
|
|
#### K-AI-ACT: AI Act Compliance
|
|
|
|
|
- **Backend:** `app/ai/ai_use_case.py` (existiert schon) — Risk Assessment pro Use Case
|
|
|
|
|
- **Frontend:** SettingsAI.tsx (existiert schon) — Risk Assessment UI
|
|
|
|
|
- **Aufbauend auf:** ai_use_case.py (existiert schon), SettingsAI.tsx (existiert schon)
|
2026-08-20 01:12:32 +02:00
|
|
|
|
2026-08-20 19:55:49 +02:00
|
|
|
#### K-AUDIT: Compliance Audit
|
|
|
|
|
- **Backend:** Audit Log Export (existiert schon) — Compliance Report
|
|
|
|
|
- **Frontend:** AuditLog.tsx (existiert schon) — Compliance Export
|
|
|
|
|
- **Aufbauend auf:** audit.py routes (existieren schon), AuditLog.tsx (existiert schon)
|
2026-08-20 01:12:32 +02:00
|
|
|
|
2026-08-20 19:55:49 +02:00
|
|
|
#### K-DOC: Documentation
|
|
|
|
|
- **Doku:** `docs/compliance.md` — Compliance Dokumentation
|
|
|
|
|
- **Aufbauend auf:** existierende Doku-Struktur
|
2026-08-20 01:12:32 +02:00
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
2026-08-20 19:55:49 +02:00
|
|
|
## Zusammenfassung
|
2026-08-20 01:12:32 +02:00
|
|
|
|
2026-08-20 19:55:49 +02:00
|
|
|
**Jeder Task baut auf bestehendem Code auf:**
|
|
|
|
|
- Keine neuen Frontend-Pages — nutze vorhandene Pages (Dashboard, Communication, AgentDashboard, Workflows, Wiki, Settings)
|
|
|
|
|
- Keine neuen Sidebars — nutze vorhandene AISidebar (5 Tabs) und MessageSidebar
|
|
|
|
|
- Keine neuen Block-Typen wo vorhandene reichen — nutze action_card, contact_card, miniapp (existieren schon)
|
|
|
|
|
- Keine neuen Stores — nutze commStore, uiStore, authStore (existieren schon)
|
|
|
|
|
- Keine neuen API-Clients wo vorhandene reichen — nutze api/comm.ts, api/ai.ts, api/automation.ts, api/workflows.ts, api/knowledge.ts (existieren schon)
|
|
|
|
|
- Keine Dataclasses — nutze echte SQLAlchemy Models + FastAPI Routes
|
|
|
|
|
- Keine Mock-Tests — nutze echte Integration-Tests mit Test-DB
|
2026-08-20 01:12:32 +02:00
|
|
|
|
2026-08-20 19:55:49 +02:00
|
|
|
**Neue Dateien nur wo wirklich nötig:**
|
|
|
|
|
- `app/plugins/builtins/knowledge/` — neues Plugin (Phase H)
|
|
|
|
|
- `app/plugins/builtins/self_improvement/` — neues Plugin (Phase J)
|
|
|
|
|
- Neue Block-Typen in `comm/blocks/` — agent_result, approval_request, task_card, workflow_card, knowledge_card (Phase I)
|
|
|
|
|
- Migrationen für neue Tabellen
|
|
|
|
|
|
|
|
|
|
**Aufwand:** ~21 Tage (7 Tasks B/F/G + 12 Tasks H + 25 Tasks I + 10 Tasks J + 6 Tasks K = 60 Tasks)
|