feat(frontend): Q1+Q2 — Plugin-Routen kommen aus Manifesten, statische Duplikate entfernt
Check Cross-Plugin Imports / check (push) Has been cancelled
Check Cross-Plugin Imports / check (push) Has been cancelled
Phase Q1 (Seiten-Routen) + Q2 (Settings-Routen): Die Plugin-Manifeste sind ab sofort die einzige Quelle fuer Plugin-Frontend-Routen. routes/index.tsx enthaelt nur noch Core-Routen + die StartLayout-Hub-Baeume (/agents, /automation, /logs, /help — verschachtelte Sub-Navigation). - PluginRouteRenderer: variante 'settings' rendert settings_pages mit bare Sub-Segments (Descendant-Matching im /settings-Subtree); Variante 'pages' (Default) behaelt absolute Pfade. Getrennte Entry-Listen verhindern Pfad-Kollisionen (settings 'mail' vs. page '/mail'). - Entfernt: 14 statische AppShell-Plugin-Routen + 9 statische Settings-Routen + 20 tote Lazy-Imports (search, calendar+kanban, dms, dms/trash, mail, mail/settings, reports, tasks, communication, workflows, import-export, tags, wiki, roles, users, groups, notifications, ai, ai-proactive, automation, documents). - Manifeste ergaenzt: Calendar +/calendar/kanban, Tags +/tags (+ Menue-Item, Route war sonst unerreichbar), Automation: /workflows-Permission auf workflows:read (Paritaet zur ersetzten statischen Route). - Automation: tote flache Manifest-Eintraeger fuer /agents + /automation entfernt (StartLayout-Hub-Baeume gewinnen diese Pfade immer — die Eintraege matchten nie). - Komponenten-Map regeneriert (37 Eintraege, CalendarKanban + Tags neu). Verifikation: tsc exit 0; production build exit 0; Vitest Dashboard + MiniAppWindow + pluginStore 35/35; Backend-Regressionen Route-Order, M5-MiniApps, N4-Scope, N3-Filtering 49/49; compileall sauber; Cross-Plugin-Checker 497 Dateien / 0 verbotene Imports; ruff clean.
This commit is contained in:
@@ -31,10 +31,9 @@ export const PLUGIN_COMPONENT_MAP: Record<string, LazyComponentFactory> = {
|
||||
'@/components/dashboard/WikiRecentWidget': () => import('@/components/dashboard/WikiRecentWidget').then((m) => ({ default: m.WikiRecentWidget })),
|
||||
'@/pages/AIAssistant': () => import('@/pages/AIAssistant').then(normalizeModule),
|
||||
'@/pages/AISettings': () => import('@/pages/AISettings').then((m) => ({ default: m.AISettingsPage })),
|
||||
'@/pages/AgentDashboard': () => import('@/pages/AgentDashboard').then((m) => ({ default: m.AgentDashboardPage })),
|
||||
'@/pages/AutomationDashboard': () => import('@/pages/AutomationDashboard').then((m) => ({ default: m.AutomationDashboardPage })),
|
||||
'@/pages/AutomationSettings': () => import('@/pages/AutomationSettings').then((m) => ({ default: m.AutomationSettingsPage })),
|
||||
'@/pages/Calendar': () => import('@/pages/Calendar').then(normalizeModule),
|
||||
'@/pages/CalendarKanban': () => import('@/pages/CalendarKanban').then(normalizeModule),
|
||||
'@/pages/Communication': () => import('@/pages/Communication').then(normalizeModule),
|
||||
'@/pages/ContactDetailPage': () => import('@/pages/ContactDetailPage').then((m) => ({ default: m.ContactDetailPage })),
|
||||
'@/pages/ContactsList': () => import('@/pages/ContactsList').then((m) => ({ default: m.ContactsListPage })),
|
||||
@@ -52,6 +51,7 @@ export const PLUGIN_COMPONENT_MAP: Record<string, LazyComponentFactory> = {
|
||||
'@/pages/SettingsNotifications': () => import('@/pages/SettingsNotifications').then((m) => ({ default: m.SettingsNotificationsPage })),
|
||||
'@/pages/SettingsRoles': () => import('@/pages/SettingsRoles').then((m) => ({ default: m.SettingsRolesPage })),
|
||||
'@/pages/SettingsUsers': () => import('@/pages/SettingsUsers').then((m) => ({ default: m.SettingsUsersPage })),
|
||||
'@/pages/Tags': () => import('@/pages/Tags').then((m) => ({ default: m.TagsPage })),
|
||||
'@/pages/Tasks': () => import('@/pages/Tasks').then((m) => ({ default: m.TasksPage })),
|
||||
'@/pages/Wiki': () => import('@/pages/Wiki').then((m) => ({ default: m.WikiPage })),
|
||||
'@/pages/Workflows': () => import('@/pages/Workflows').then((m) => ({ default: m.WorkflowsPage })),
|
||||
|
||||
Reference in New Issue
Block a user