docs: 170 Architektur-Fehler (ARCH-001 bis ARCH-170) durch systematisches Code-Review dokumentiert
This commit is contained in:
@@ -1742,3 +1742,93 @@ Playwright E2E: 10 passed, 24 failed (BUG-011/012/013 — Mock-Daten und data-te
|
||||
- **Problem:** `from app.models.contact import Contact` — Plugin importiert Core Model. Contact ist Core aber auch Plugin (ARCH-005). Doppelarchitektur.
|
||||
- **Schweregrad:** Medium
|
||||
- **Status:** ⏳ Nicht gefixt
|
||||
|
||||
### ARCH-156: CustomFieldRenderer.tsx — Duplikat in zwei Ordnern
|
||||
- **Datei:** frontend/src/components/contacts/CustomFieldRenderer.tsx, frontend/src/components/custom-fields/CustomFieldRenderer.tsx
|
||||
- **Problem:** CustomFieldRenderer existiert in beiden Ordnern. Duplikat.
|
||||
- **Schweregrad:** Medium
|
||||
- **Status:** ⏳ Nicht gefixt
|
||||
|
||||
### ARCH-157: components/knowledge/ — leerer Ordner
|
||||
- **Datei:** frontend/src/components/knowledge/
|
||||
- **Problem:** Ordner existiert aber enthält 0 Dateien. Entweder tot oder unvollständig.
|
||||
- **Schweregrad:** Low
|
||||
- **Status:** ⏳ Nicht gefixt
|
||||
|
||||
### ARCH-158: components/contact/ — leerer Ordner
|
||||
- **Datei:** frontend/src/components/contact/
|
||||
- **Problem:** Ordner existiert aber enthält 0 Dateien. Entweder tot oder unvollständig.
|
||||
- **Schweregrad:** Low
|
||||
- **Status:** ⏳ Nicht gefixt
|
||||
|
||||
### ARCH-159: components/agents/AgentChat.tsx — AI Chat wurde in Kommunikation integriert
|
||||
- **Datei:** frontend/src/components/agents/AgentChat.tsx
|
||||
- **Problem:** AI Chat wurde in Phase 2 in Kommunikation integriert. AgentChat.tsx ist möglicherweise ungenutzt.
|
||||
- **Schweregrad:** Medium
|
||||
- **Status:** ⏳ Nicht gefixt
|
||||
|
||||
### ARCH-160: ContactList.tsx — hardcoded ALL_COLUMNS (TODO P2-F18)
|
||||
- **Datei:** frontend/src/components/contacts/ContactList.tsx:2
|
||||
- **Problem:** TODO: 'Replace hardcoded ALL_COLUMNS with backend/manifest config'. Hardcoded Column-Definitions.
|
||||
- **Schweregrad:** Low
|
||||
- **Status:** ⏳ Nicht gefixt
|
||||
|
||||
### ARCH-161: MailList.tsx — inline style (TODO P3-F6)
|
||||
- **Datei:** frontend/src/components/mail/MailList.tsx:2
|
||||
- **Problem:** TODO: 'Replace inline style with Tailwind classes'. Inline styles statt Tailwind.
|
||||
- **Schweregrad:** Low
|
||||
- **Status:** ⏳ Nicht gefixt
|
||||
|
||||
### ARCH-162: NotificationBell.tsx — TODO Migrate to communication API
|
||||
- **Datei:** frontend/src/components/layout/NotificationBell.tsx:2
|
||||
- **Problem:** TODO: 'Migrate from /notifications to communication API'. Verwendet noch deprecated /notifications API.
|
||||
- **Schweregrad:** Medium
|
||||
- **Status:** ⏳ Nicht gefixt
|
||||
|
||||
### ARCH-163: DashboardWidgetLoader.tsx — hardcoded widgetRegistry (TODO P2-F17)
|
||||
- **Datei:** frontend/src/components/dashboard/DashboardWidgetLoader.tsx:2
|
||||
- **Problem:** TODO: 'Replace hardcoded widgetRegistry with dynamic manifest config'. Hardcoded Widget-Registry.
|
||||
- **Schweregrad:** Low
|
||||
- **Status:** ⏳ Nicht gefixt
|
||||
|
||||
### ARCH-164: AISidebar.tsx — importiert createSession, fetchSessions (Phase 2 entfernt)
|
||||
- **Datei:** frontend/src/components/layout/AISidebar.tsx:6
|
||||
- **Problem:** `import { createSession, fetchSessions } from '@/api/ai'` — AI Sessions wurden in Phase 2 entfernt. Funktionen existieren möglicherweise nicht mehr.
|
||||
- **Schweregrad:** High
|
||||
- **Status:** ⏳ Nicht gefixt
|
||||
|
||||
### ARCH-165: WorkspaceSwitcher.tsx — hardcoded Tailwind dark: classes
|
||||
- **Datei:** frontend/src/components/layout/WorkspaceSwitcher.tsx:35
|
||||
- **Problem:** `dark:bg-gray-900`, `dark:text-gray-300` — hardcoded Tailwind dark: classes statt design tokens (secondary-*, primary-*).
|
||||
- **Schweregrad:** Low
|
||||
- **Status:** ⏳ Nicht gefixt
|
||||
|
||||
### ARCH-166: BlockRenderer.tsx — hardcoded switch-case für Block-Typen
|
||||
- **Datei:** frontend/src/components/comm/blocks/BlockRenderer.tsx:30
|
||||
- **Problem:** Hardcoded switch-case für Block-Typen. Neue Block-Typen können nicht dynamisch hinzugefügt werden.
|
||||
- **Schweregrad:** Medium
|
||||
- **Status:** ⏳ Nicht gefixt
|
||||
|
||||
### ARCH-167: AiChatPanel.tsx — kein API cancel bei unmount
|
||||
- **Datei:** frontend/src/components/window/AiChatPanel.tsx:50
|
||||
- **Problem:** Erstellt comm conversation bei mount, aber bei unmount wird nur `cancelled = true` gesetzt. Die Konversation wird nicht gelöscht. Leak von leeren Konversationen.
|
||||
- **Schweregrad:** Medium
|
||||
- **Status:** ⏳ Nicht gefixt
|
||||
|
||||
### ARCH-168: ContactDetail.tsx — importiert useAIUIControlStore (Plugin-Abhängigkeit)
|
||||
- **Datei:** frontend/src/components/contacts/ContactDetail.tsx:14
|
||||
- **Problem:** `import { useAIUIControlStore } from '@/store/aiUIControlStore'` — ContactDetail hängt von AI UI Control Plugin ab. Core-Component hängt von Plugin ab.
|
||||
- **Schweregrad:** Medium
|
||||
- **Status:** ⏳ Nicht gefixt
|
||||
|
||||
### ARCH-169: CalendarTree.tsx — TYPE_ORDER hardcoded
|
||||
- **Datei:** frontend/src/components/calendar/CalendarTree.tsx:15
|
||||
- **Problem:** `const TYPE_ORDER: CalendarType[] = ['personal', 'team', 'project', 'company']` — hardcoded. Nicht dynamisch erweiterbar.
|
||||
- **Schweregrad:** Low
|
||||
- **Status:** ⏳ Nicht gefixt
|
||||
|
||||
### ARCH-170: DashboardGrid.tsx — drag-and-drop speichert nicht in Backend
|
||||
- **Datei:** frontend/src/components/dashboard/DashboardGrid.tsx:35
|
||||
- **Problem:** Drag-and-drop ändert nur local state (`setWidgets`). Widget-Position wird nicht in Backend gespeichert. Bei Reload geht die Anordnung verloren.
|
||||
- **Schweregrad:** Medium
|
||||
- **Status:** ⏳ Nicht gefixt
|
||||
|
||||
Reference in New Issue
Block a user