From 3b1155b538da0f26e5aca37cfca0fbd1118bbabb Mon Sep 17 00:00:00 2001 From: Phantom Date: Sun, 30 Nov 2025 17:51:17 +0800 Subject: [PATCH] fix: make knowledge base tool always visible regardless of sidebar settings (#11553) * refactor(knowledgeBaseTool): remove unused sidebar icon visibility check * refactor(Inputbar): remove unused knowledge icon visibility logic Simplify knowledge base selection by directly using assistant.knowledge_bases --- src/renderer/src/pages/home/Inputbar/Inputbar.tsx | 7 +++---- .../src/pages/home/Inputbar/tools/knowledgeBaseTool.tsx | 6 ------ 2 files changed, 3 insertions(+), 10 deletions(-) diff --git a/src/renderer/src/pages/home/Inputbar/Inputbar.tsx b/src/renderer/src/pages/home/Inputbar/Inputbar.tsx index 0624bfed81..0985023ead 100644 --- a/src/renderer/src/pages/home/Inputbar/Inputbar.tsx +++ b/src/renderer/src/pages/home/Inputbar/Inputbar.tsx @@ -14,7 +14,6 @@ import { useInputText } from '@renderer/hooks/useInputText' import { useMessageOperations, useTopicLoading } from '@renderer/hooks/useMessageOperations' import { useSettings } from '@renderer/hooks/useSettings' import { useShortcut } from '@renderer/hooks/useShortcuts' -import { useSidebarIconShow } from '@renderer/hooks/useSidebarIcon' import { useTextareaResize } from '@renderer/hooks/useTextareaResize' import { useTimer } from '@renderer/hooks/useTimer' import { @@ -150,7 +149,6 @@ const InputbarInner: FC = ({ assistant: initialAssistant, se minHeight: 30 }) - const showKnowledgeIcon = useSidebarIconShow('knowledge') const { assistant, addTopic, model, setModel, updateAssistant } = useAssistant(initialAssistant.id) const { sendMessageShortcut, showInputEstimatedTokens, enableQuickPanelTriggers } = useSettings() const [estimateTokenCount, setEstimateTokenCount] = useState(0) @@ -407,9 +405,10 @@ const InputbarInner: FC = ({ assistant: initialAssistant, se focusTextarea ]) + // TODO: Just use assistant.knowledge_bases as selectedKnowledgeBases. context state is overdesigned. useEffect(() => { - setSelectedKnowledgeBases(showKnowledgeIcon ? (assistant.knowledge_bases ?? []) : []) - }, [assistant.knowledge_bases, setSelectedKnowledgeBases, showKnowledgeIcon]) + setSelectedKnowledgeBases(assistant.knowledge_bases ?? []) + }, [assistant.knowledge_bases, setSelectedKnowledgeBases]) useEffect(() => { // Disable web search if model doesn't support it diff --git a/src/renderer/src/pages/home/Inputbar/tools/knowledgeBaseTool.tsx b/src/renderer/src/pages/home/Inputbar/tools/knowledgeBaseTool.tsx index 5e3ffcf864..787d98eb34 100644 --- a/src/renderer/src/pages/home/Inputbar/tools/knowledgeBaseTool.tsx +++ b/src/renderer/src/pages/home/Inputbar/tools/knowledgeBaseTool.tsx @@ -1,5 +1,4 @@ import { useAssistant } from '@renderer/hooks/useAssistant' -import { useSidebarIconShow } from '@renderer/hooks/useSidebarIcon' import { defineTool, registerTool, TopicType } from '@renderer/pages/home/Inputbar/types' import type { KnowledgeBase } from '@renderer/types' import { isPromptToolUse, isSupportedToolUse } from '@renderer/utils/mcp-tools' @@ -30,7 +29,6 @@ const knowledgeBaseTool = defineTool({ render: function KnowledgeBaseToolRender(context) { const { assistant, state, actions, quickPanel } = context - const knowledgeSidebarEnabled = useSidebarIconShow('knowledge') const { updateAssistant } = useAssistant(assistant.id) const handleSelect = useCallback( @@ -41,10 +39,6 @@ const knowledgeBaseTool = defineTool({ [updateAssistant, actions] ) - if (!knowledgeSidebarEnabled) { - return null - } - return (