diff --git a/PLATFORM_ROADMAP.md b/PLATFORM_ROADMAP.md index b8a9a06..d7e581a 100644 --- a/PLATFORM_ROADMAP.md +++ b/PLATFORM_ROADMAP.md @@ -1818,9 +1818,9 @@ Der AI Assistent ist ein paralleles System das die Kommunikation-Plattform dupli **Kontext:** Frontend-Backend-Gegenüberstellung (2026-09-01) ergab 16 Backend-Module ohne UI (~64 Ops). User-Entscheidung: Module einzeln mit UI ausstatten, priorisiert nach Business-Nutzen. Jedes Modul folgt derselben Verifikationskette: Vitest → tsc → Production-Build → Deploy → Live-API-Check → Forgejo-Issue → PROGRESS.md-Update. -**Status 2026-09-13: 8/16 erledigt.** -- Erledigt: 1 Approvals, 2 Delegations, 3 API-Tokens, 4 Tenants, 5 Marketplace, 6 Permission-Templates, 7 Skills, 8 Agent-Memory (Commits + Issues #369, #372-#378 in PROGRESS.md-Tabelle) -- Offen (Reihenfolge nach Business-Nutzen): 9 Outbox (7 Ops), 10 Policies (4), 11 Graph-RAG (4), 12 Companies (9), 13 Public-Share (3), 14 Guests (3), 15 External-Agent (3), 16 Ownership-Transfer (1) +**Status 2026-09-14: 9/16 erledigt.** +- Erledigt: 1 Approvals, 2 Delegations, 3 API-Tokens, 4 Tenants, 5 Marketplace, 6 Permission-Templates, 7 Skills, 8 Agent-Memory, 9 Outbox (Commits + Issues #369, #372-#379 in PROGRESS.md-Tabelle) +- Offen (Reihenfolge nach Business-Nutzen): 10 Policies (4), 11 Graph-RAG (4), 12 Companies (9), 13 Public-Share (3), 14 Guests (3), 15 External-Agent (3), 16 Ownership-Transfer (1) **Architektur-Regel (seit Phase Q):** Plugin-Module (wie Marketplace, Skills, Agent-Memory) werden AUSSCHLIESSLICH via Plugin-Manifest registriert (page_routes + menu_items + Komponenten-Map-Generator) — routes/index.tsx und Sidebar.tsx bleiben unangetastet. Core-Module (wie Delegations, API-Tokens, Tenants, Permission-Templates) laufen als statische Core-Routen + Settings-Nav. diff --git a/PROGRESS.md b/PROGRESS.md index d0a866f..628882c 100644 --- a/PROGRESS.md +++ b/PROGRESS.md @@ -83,10 +83,10 @@ Phase P Notizen-App oder UI-Backlog-Module 2-16. **Produktion läuft stabil** (HEAD 5ecadd5 = origin/main, 0 ungepushte Commits, Health healthy ~28ms, Alembic 0144, RLS 113 Tabellen, Worker up). Alle Forgejo-Issues bis #378 geschlossen. -**2026-09-13 abgeschlossen:** (1) Externer Architektur-Audit verifiziert — alle 17 Findings bestätigt, 13 Backend-Fixes (Commit 4a25ac1, #370). (2) PHASE Q KOMPLETT — Frontend-Plugin-Architektur: generierte Komponenten-Map (scripts/generate_component_map.py, 40 Eintraege, Fail-Hard bei Ghosts) ersetzt STATIC_COMPONENT_MAP + widgetRegistry; Plugin-Routen/Settings nur noch aus Manifesten via PluginRouteRenderer (variant pages/settings). (3) UI-Backlog Module 1-8 erledigt, siehe Tabelle oben (Commits + Issues #369, #372-#378). +**2026-09-13/14 abgeschlossen:** (1) Externer Architektur-Audit verifiziert — alle 17 Findings bestätigt, 13 Backend-Fixes (Commit 4a25ac1, #370). (2) PHASE Q KOMPLETT — Frontend-Plugin-Architektur: generierte Komponenten-Map (scripts/generate_component_map.py, 40 Eintraege, Fail-Hard bei Ghosts) ersetzt STATIC_COMPONENT_MAP + widgetRegistry; Plugin-Routen/Settings nur noch aus Manifesten via PluginRouteRenderer (variant pages/settings). (3) UI-Backlog Module 1-9 erledigt, siehe Tabelle oben (Commits + Issues #369, #372-#379). **OFFENE THREADS (alles Weitere hängt hier, nichts geht verloren):** -1. **UI-Backlog Module 9-16** (Reihenfolge nach Business-Nutzen): 9 Outbox (7 Ops) → 10 Policies (4) → 11 Graph-RAG (4) → 12 Companies (9) → 13 Public-Share (3) → 14 Guests (3) → 15 External-Agent (3) → 16 Ownership-Transfer (1). Muster + Architektur-Regel: siehe Roadmap-Abschnitt "UI-Backlog" (Plugin-Module via Manifest, Core-Module statisch; Referenz: Marketplace=Plugin, Approvals=Core). +1. **UI-Backlog Module 10-16** (Reihenfolge nach Business-Nutzen): 10 Policies (4) → 11 Graph-RAG (4) → 12 Companies (9) → 13 Public-Share (3) → 14 Guests (3) → 15 External-Agent (3) → 16 Ownership-Transfer (1). Muster + Architektur-Regel: siehe Roadmap-Abschnitt "UI-Backlog" (Plugin-Module via Manifest, Core-Module statisch; Referenz: Marketplace=Plugin, Approvals=Core). 2. **Re-Audit ausstehend:** Externer Prüfer prueft leocrm-reaudit.zip (Stand b58c96f, liegt beim User). Bei neuen Findings: erst die fixen. Hinweis: ZIP enthaelt NICHT die UI-Module 2-8 — bei Bedarf frischen ZIP erstellen (git archive HEAD). 3. **Traefik no-cache-Header fuer index.html** (User-Angebot offen, prevents stale JS-Chunks nach Deploys — siehe Incident "Dashboard loads forever"). 4. **Server-Entlastung** (User-Thema offen): Cron gegen alte Browser-Prozesse (Incident: 3 Zombie-Chromium, 500+ h CPU) und/oder VPS-Upgrade-Diskussion (22 Container auf 7,6 GB). @@ -207,7 +207,7 @@ Phase P Notizen-App oder UI-Backlog-Module 2-16. | 6 | Permission-Templates (Berechtigungs-Vorlagen) | 5 | done | Commit 33b4b52, [#376](https://forgejo.media-on.de/Leopoldadmin/leocrm/issues/376): Settings-Page /settings/permission-templates — Vitest 10/10, tsc 0, Build 0, Frontend-Deploy, live: API 200 + SPA 200 | | 7 | Skills (AI-Skill-Definitionen) | 5 | done | Commit 3f8d1bd, [#377](https://forgejo.media-on.de/Leopoldadmin/leocrm/issues/377): /skills via automation-Manifest (Phase Q) — Vitest 10/10, tsc 0, Build 0, Full Deploy, live: Manifest page_route+menu_item OK, API 200, SPA 200 | | 8 | Agent-Memory | 5 | done | Commit 24423b6, [#378](https://forgejo.media-on.de/Leopoldadmin/leocrm/issues/378): /agent-memory via agent_memory-Manifest (Phase Q) + ICON_MAP-Fix (Brain/Store/Tags) — Vitest 11/11, tsc 0, Build 0, Full Deploy, live: Manifest OK, API 422 ohne agent_id (Pflichtfeld bewiesen), SPA 200 | -| 9 | Outbox (Event-Verwaltung) | 7 | not_started | | +| 9 | Outbox (Event-Verwaltung) | 7 | done | Commit 31154b9, [#379](https://forgejo.media-on.de/Leopoldadmin/leocrm/issues/379): Core-Route /outbox + Sidebar order 93 mit Admin-Filter — Vitest 11/11, tsc 0, Build 0, Frontend-Deploy, live: stats/failed/consumer-registry API 200 (158 echte failed events `file.deleted` 2026-08-27, 20+ Handler), Nav-Link gerendert, Chunk MD5-identisch | | 10 | Policies | 4 | not_started | | | 11 | Graph-RAG Traversal | 4 | not_started | | | 12 | Companies (Firmen-API) | 9 | not_started | |