From 125104320e6063237d430e6b506d436f24007c2d Mon Sep 17 00:00:00 2001 From: Louis Date: Fri, 23 May 2025 21:23:52 +0700 Subject: [PATCH] chore: handle many issues with app settings and message actions (#5086) * chore: handle many issues with app settings and message actions * Update web-app/src/services/mcp.ts Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> --------- Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> --- web-app/src/containers/ThreadContent.tsx | 19 +++- .../containers/dialogs/AddEditMCPServer.tsx | 14 ++- web-app/src/hooks/useChat.ts | 9 +- web-app/src/hooks/useMCPServers.ts | 106 +++++++++--------- web-app/src/hooks/useModelProvider.ts | 4 +- web-app/src/providers/DataProvider.tsx | 4 + web-app/src/routes/settings/hardware.tsx | 28 ++--- web-app/src/routes/settings/mcp-servers.tsx | 6 +- web-app/src/services/mcp.ts | 9 ++ 9 files changed, 115 insertions(+), 84 deletions(-) diff --git a/web-app/src/containers/ThreadContent.tsx b/web-app/src/containers/ThreadContent.tsx index 07e3593f9..3089a3014 100644 --- a/web-app/src/containers/ThreadContent.tsx +++ b/web-app/src/containers/ThreadContent.tsx @@ -125,10 +125,25 @@ export const ThreadContent = memo( deleteMessage(toSendMessage.thread_id, toSendMessage.id ?? '') toSendMessage = threadMessages.pop() } - if (toSendMessage) + if (toSendMessage) { + deleteMessage(toSendMessage.thread_id, toSendMessage.id ?? '') sendMessage(toSendMessage.content?.[0]?.text?.value || '') + } }, [deleteMessage, getMessages, item, sendMessage]) + const removeMessage = useCallback(() => { + if (item.role === 'assistant' || item.role === 'tool') { + const threadMessages = getMessages(item.thread_id) + let toSendMessage = threadMessages.pop() + while (toSendMessage && toSendMessage?.role !== 'user') { + deleteMessage(toSendMessage.thread_id, toSendMessage.id ?? '') + toSendMessage = threadMessages.pop() + } + } else { + deleteMessage(item.thread_id, item.id) + } + }, [deleteMessage, getMessages, item]) + const editMessage = useCallback( (messageId: string) => { const threadMessages = getMessages(item.thread_id) @@ -302,7 +317,7 @@ export const ThreadContent = memo(