From 6343628739dcf08c1e6daedd3b8ea620f6c850ee Mon Sep 17 00:00:00 2001 From: Peijie Diao <73533898+Do1e@users.noreply.github.com> Date: Thu, 4 Dec 2025 22:32:37 +0800 Subject: [PATCH] fix(topic): clear related message_blocks when clearing topic messages (#11665) Ensure message_blocks rows are removed when clearing a topic's messages to avoid orphaned block entries. Signed-off-by: Do1e --- src/renderer/src/hooks/useTopic.ts | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/renderer/src/hooks/useTopic.ts b/src/renderer/src/hooks/useTopic.ts index 15ecb99d88..19d262df66 100644 --- a/src/renderer/src/hooks/useTopic.ts +++ b/src/renderer/src/hooks/useTopic.ts @@ -195,13 +195,8 @@ export const TopicManager = { }, async removeTopic(id: string) { - const messages = await TopicManager.getTopicMessages(id) - - for (const message of messages) { - await deleteMessageFiles(message) - } - - db.topics.delete(id) + await TopicManager.clearTopicMessages(id) + await db.topics.delete(id) }, async clearTopicMessages(id: string) { @@ -212,6 +207,12 @@ export const TopicManager = { await deleteMessageFiles(message) } + // 删除关联的 message_blocks 记录 + const blockIds = topic.messages.flatMap((message) => message.blocks || []) + if (blockIds.length > 0) { + await db.message_blocks.bulkDelete(blockIds) + } + topic.messages = [] await db.topics.update(id, topic)