fix(UI-Overhaul-Phase1): 7 Bugs behoben
Check Cross-Plugin Imports / check (push) Has been cancelled

1.1 Contacts refresh: useUnifiedContacts mutations already invalidate (verified)
1.2 Contacts drag-drop: ContactList items already draggable + ContactFolderTree onDrop (verified)
1.3 Contacts move dialog: Added move-to-folder dropdown in ContactDetail
1.4 Wiki save refresh: Added refreshKey prop to WikiBrowser, triggers reload after save/delete
1.5 Calendar dialog close: Window.tsx now injects windowId into componentProps
1.6 Communication AI chat: Added metadata support to ConversationCreate schema + service,
    frontend passes conversation_type metadata for AI/system chats,
    categorization checks metadata first
1.7 Wiki duplicate menu: Removed hardcoded /wiki from Sidebar.tsx (plugin provides it dynamically)

Backend: kommunikation schema/routes/services updated for metadata support
Frontend: tsc clean, build successful
This commit is contained in:
Agent Zero
2026-08-21 13:17:35 +02:00
parent 5d708c0905
commit 94c7c8fff5
10 changed files with 445 additions and 10 deletions
+4 -1
View File
@@ -80,6 +80,7 @@ export function WikiPage() {
const [deleteTarget, setDeleteTarget] = useState<WikiArticle | null>(null);
const [deleting, setDeleting] = useState(false);
const [restoring, setRestoring] = useState(false);
const [browserRefreshKey, setBrowserRefreshKey] = useState(0);
const loadCategories = useCallback(async () => {
try {
@@ -163,6 +164,7 @@ export function WikiPage() {
toast.success(t('knowledge.editor.created'));
}
setEditorOpen(false);
setBrowserRefreshKey((k) => k + 1);
} catch (err) {
toast.error(err instanceof Error ? err.message : t('knowledge.editor.saveError'));
} finally {
@@ -179,6 +181,7 @@ export function WikiPage() {
setArticle(null);
setSelectedArticleId(null);
setDeleteTarget(null);
setBrowserRefreshKey((k) => k + 1);
} catch (err) {
toast.error(err instanceof Error ? err.message : t('knowledge.editor.deleteError'));
} finally {
@@ -237,7 +240,7 @@ export function WikiPage() {
<div className="grid grid-cols-1 lg:grid-cols-4 gap-4 h-[calc(100vh-8rem)]">
{/* Browser sidebar */}
<div className="lg:col-span-1 border border-secondary-200 rounded-lg bg-white overflow-hidden">
<WikiBrowser selectedArticleId={selectedArticleId} onSelectArticle={handleSelectArticle} />
<WikiBrowser selectedArticleId={selectedArticleId} onSelectArticle={handleSelectArticle} refreshKey={browserRefreshKey} />
</div>
{/* Article detail / editor */}