Skip to content

feat(chat): 会话列表支持批量删除 - #3792

Merged
Dallas98 merged 10 commits into
developfrom
dc/feat/conversation-batch-delete-20260827
Aug 28, 2026
Merged

feat(chat): 会话列表支持批量删除#3792
Dallas98 merged 10 commits into
developfrom
dc/feat/conversation-batch-delete-20260827

Conversation

@charmingchi1

Copy link
Copy Markdown
Contributor

概述

为对话侧边栏的会话列表新增批量删除能力:用户可进入"批量管理"模式多选会话一次性删除,替代逐条删除的低效操作。

变更内容

后端

  • 新增 POST /conversation/batch-delete 接口,请求体为 BatchDeleteConversationRequest { conversation_ids: List[int] }
  • 批量软删除严格限定在当前用户拥有的会话内(按 created_by 过滤),不存在的 ID 或他人的 ID 返回到 failed_ids
  • 对命中的会话执行 5 级级联软删:会话记录、消息、消息单元、搜索来源、图片来源
  • 删除前 best-effort 取消各会话绑定的自动化任务,单个失败仅记 warning 不阻塞整体删除
  • 响应返回 { deleted_count, failed_ids }

前端

  • 会话列表新增"批量管理"入口,进入后展示 checkbox 支持:
    • 单选 / 全选可见项,实时显示已选数量
    • 删除前二次确认(提示绑定自动化任务将一并取消且不可撤销)
    • 部分失败时给出具体失败条数提示
    • 当前活跃会话被删除时自动清理指向,避免悬挂引用
  • 补齐中英文文案(en/zh 各 6 条)

charmingchi1 and others added 6 commits August 27, 2026 10:33
实现批量删除会话的接口,包含请求模型、API路由、业务服务和数据库批量删除操作,支持级联软删除关联数据并返回删除结果统计
1. 新增批量删除会话的API端点和服务方法
2. 添加多语言的批量管理相关文案
3. 重构会话列表侧边栏,加入批量选择功能
4. 优化侧边栏样式细节,修复缩进问题
新增了批量删除对话的数据库层、业务层测试,以及对应的API接口端点,覆盖正常成功场景、无权限场景和异常报错场景,完善批量删除对话的全流程测试覆盖
修复聊天列表侧边栏和批量操作按钮无背景色导致的视觉不协调问题,统一按钮背景样式
@codecov

codecov Bot commented Aug 27, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

1. 将两处普通error日志替换为exception日志以打印堆栈信息
2. 更新测试用例中的日志断言匹配
3. 新增批量删除对话的自动化钩子相关测试,包括正常调用、失败不阻塞、导入失败场景
补充验证当不传入user_id时,delete_conversations_batch会跳过updated_by相关的更新跟踪逻辑,确保该场景下功能正常运行
@charmingchi1
charmingchi1 marked this pull request as ready for review August 28, 2026 03:05
@Dallas98
Dallas98 merged commit 256b151 into develop Aug 28, 2026
16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants