From 47ad90b3896fd07329dca5c1444fa314df5819ba Mon Sep 17 00:00:00 2001 From: Dmitry Torokhov Date: Fri, 11 Jul 2025 16:23:43 -0700 Subject: [PATCH] fix: when deleting tool use also delete tool result Tool results are not useful without their "use" messages, so delete them when deleting "use" ones. Makes use of the new get_tool_use_data() and get_tool_result_data() helpers. --- .../llm_tools/delete_tool_use_messages.lua | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/lua/avante/llm_tools/delete_tool_use_messages.lua b/lua/avante/llm_tools/delete_tool_use_messages.lua index 5348343..424dcdf 100644 --- a/lua/avante/llm_tools/delete_tool_use_messages.lua +++ b/lua/avante/llm_tools/delete_tool_use_messages.lua @@ -46,14 +46,16 @@ function M.func(input, opts) local history_messages = History.get_history_messages(sidebar.chat_history) local the_deleted_message_uuids = {} for _, msg in ipairs(history_messages) do - if History.Helpers.is_tool_use_message(msg) then - local content = msg.message.content - if type(content) == "table" then - for _, item in ipairs(content) do - if item.id == input.tool_use_id then table.insert(the_deleted_message_uuids, msg.uuid) end - end - end + local use = History.Helpers.get_tool_use_data(msg) + if use then + if use.id == input.tool_use_id then table.insert(the_deleted_message_uuids, msg.uuid) end + goto continue end + local result = History.Helpers.get_tool_result_data(msg) + if result then + if result.tool_use_id == input.tool_use_id then table.insert(the_deleted_message_uuids, msg.uuid) end + end + ::continue:: end sidebar:delete_history_messages(the_deleted_message_uuids) return true, nil