diff --git a/web-app/src/containers/ChatInput.tsx b/web-app/src/containers/ChatInput.tsx index 5383a170e..53e47db51 100644 --- a/web-app/src/containers/ChatInput.tsx +++ b/web-app/src/containers/ChatInput.tsx @@ -57,7 +57,7 @@ const ChatInput = ({ model, className, initialMessage }: ChatInputProps) => { const { prompt, setPrompt } = usePrompt() const { currentThreadId } = useThreads() const { t } = useTranslation() - const { spellCheckChatInput, experimentalFeatures } = useGeneralSetting() + const { spellCheckChatInput } = useGeneralSetting() const maxRows = 10 @@ -586,8 +586,7 @@ const ChatInput = ({ model, className, initialMessage }: ChatInputProps) => { )} - {experimentalFeatures && - selectedModel?.capabilities?.includes('tools') && + {selectedModel?.capabilities?.includes('tools') && hasActiveMCPServers && ( { const matches = useMatches() const navigate = useNavigate() - const { experimentalFeatures } = useGeneralSetting() const { providers } = useModelProvider() // Filter providers that have active API keys (or are llama.cpp which doesn't need one) @@ -79,15 +77,10 @@ const SettingsMenu = () => { title: 'common:hardware', route: route.settings.hardware, }, - // Only show MCP Servers when experimental features are enabled - ...(experimentalFeatures - ? [ - { - title: 'common:mcp-servers', - route: route.settings.mcp_servers, - }, - ] - : []), + { + title: 'common:mcp-servers', + route: route.settings.mcp_servers, + }, { title: 'common:local_api_server', route: route.settings.local_api_server, diff --git a/web-app/src/hooks/useChat.ts b/web-app/src/hooks/useChat.ts index e1511ee51..134dc1ae1 100644 --- a/web-app/src/hooks/useChat.ts +++ b/web-app/src/hooks/useChat.ts @@ -29,7 +29,6 @@ import { OUT_OF_CONTEXT_SIZE } from '@/utils/error' import { updateSettings } from '@/services/providers' import { useContextSizeApproval } from './useModelContextApproval' import { useModelLoad } from './useModelLoad' -import { useGeneralSetting } from './useGeneralSetting' import { ReasoningProcessor, extractReasoningFromMessage, @@ -37,7 +36,6 @@ import { export const useChat = () => { const { prompt, setPrompt } = usePrompt() - const { experimentalFeatures } = useGeneralSetting() const { tools, updateTokenSpeed, @@ -247,13 +245,12 @@ export const useChat = () => { let isCompleted = false // Filter tools based on model capabilities and available tools for this thread - let availableTools = - experimentalFeatures && selectedModel?.capabilities?.includes('tools') - ? tools.filter((tool) => { - const disabledTools = getDisabledToolsForThread(activeThread.id) - return !disabledTools.includes(tool.name) - }) - : [] + let availableTools = selectedModel?.capabilities?.includes('tools') + ? tools.filter((tool) => { + const disabledTools = getDisabledToolsForThread(activeThread.id) + return !disabledTools.includes(tool.name) + }) + : [] let assistantLoopSteps = 0 @@ -543,7 +540,6 @@ export const useChat = () => { setPrompt, selectedModel, currentAssistant, - experimentalFeatures, tools, updateLoadingModel, getDisabledToolsForThread, diff --git a/web-app/src/hooks/useGeneralSetting.ts b/web-app/src/hooks/useGeneralSetting.ts index 6d8a9e22e..b356ca8a3 100644 --- a/web-app/src/hooks/useGeneralSetting.ts +++ b/web-app/src/hooks/useGeneralSetting.ts @@ -6,10 +6,8 @@ import { ExtensionManager } from '@/lib/extension' type LeftPanelStoreState = { currentLanguage: Language spellCheckChatInput: boolean - experimentalFeatures: boolean huggingfaceToken?: string setHuggingfaceToken: (token: string) => void - setExperimentalFeatures: (value: boolean) => void setSpellCheckChatInput: (value: boolean) => void setCurrentLanguage: (value: Language) => void } @@ -19,9 +17,7 @@ export const useGeneralSetting = create()( (set) => ({ currentLanguage: 'en', spellCheckChatInput: true, - experimentalFeatures: false, huggingfaceToken: undefined, - setExperimentalFeatures: (value) => set({ experimentalFeatures: value }), setSpellCheckChatInput: (value) => set({ spellCheckChatInput: value }), setCurrentLanguage: (value) => set({ currentLanguage: value }), setHuggingfaceToken: (token) => { diff --git a/web-app/src/routes/settings/general.tsx b/web-app/src/routes/settings/general.tsx index 3ee558ae7..6c44b57a5 100644 --- a/web-app/src/routes/settings/general.tsx +++ b/web-app/src/routes/settings/general.tsx @@ -46,9 +46,6 @@ import { stopAllModels } from '@/services/models' import { SystemEvent } from '@/types/events' import { Input } from '@/components/ui/input' import { useHardware } from '@/hooks/useHardware' -import { getConnectedServers } from '@/services/mcp' -import { invoke } from '@tauri-apps/api/core' -import { useMCPServers } from '@/hooks/useMCPServers' // eslint-disable-next-line @typescript-eslint/no-explicit-any export const Route = createFileRoute(route.settings.general as any)({ @@ -60,8 +57,6 @@ function General() { const { spellCheckChatInput, setSpellCheckChatInput, - experimentalFeatures, - setExperimentalFeatures, huggingfaceToken, setHuggingfaceToken, } = useGeneralSetting() @@ -209,38 +204,6 @@ function General() { } }, [t, checkForUpdate]) - const handleStopAllMCPServers = async () => { - try { - const connectedServers = await getConnectedServers() - - // Stop each connected server - const stopPromises = connectedServers.map((serverName) => - invoke('deactivate_mcp_server', { name: serverName }).catch((error) => { - console.error(`Error stopping MCP server ${serverName}:`, error) - return Promise.resolve() // Continue with other servers even if one fails - }) - ) - - await Promise.all(stopPromises) - - // Update server configs to set active: false for stopped servers - const { mcpServers, editServer } = useMCPServers.getState() - connectedServers.forEach((serverName) => { - const serverConfig = mcpServers[serverName] - if (serverConfig) { - editServer(serverName, { ...serverConfig, active: false }) - } - }) - - if (connectedServers.length > 0) { - toast.success(`Stopped ${connectedServers.length} MCP server(s)`) - } - } catch (error) { - console.error('Error stopping MCP servers:', error) - toast.error('Failed to stop MCP servers') - } - } - return (
@@ -430,19 +393,6 @@ function General() { {/* Advanced */} - { - await handleStopAllMCPServers() - setExperimentalFeatures(e) - }} - /> - } - />