Block a user
M7-12 P0 | listSessions 缺少 isDeleted 过滤 + 分页元数据 + isPinned 排序
修复
- where 增加 isDeleted: false(默认排除已删除)
- isArchived 过滤生效
- 排序改为 [{isPinned: desc}, {lastMessageAt: desc}]
- 返回格式改为 {data, meta: {page,…
M7-13 P0 | loadContextByScope: global 走全库检索 + folder 无独立分支
修复
- case global → 直接返回空上下文
- case folder → WHERE parentId = scopeId
- default → warn 日志 + 回退到 knowledge_base
涉及: rag-chat.service.ts
M7-14 P1 | sendMessageStream aiGateway 非空断言导致 null 时 crash
修复
- sendMessageStream 增加 aiGateway null 检查
- this.aiGateway!.generateStream → this.aiGateway.generateStream(安全访问)
- aiGateway 为 null 或无上下文 → yield…
M7-15 P2 | open-or-create 过滤 isArchived + knowledgeBaseId 必填约束优化
修复
- open-or-create 查询增加 isArchived: false(归档会话不继续)
- knowledgeBaseId 改为 String?(nullable)
- createSession 中不再存空字符串
涉及: rag-chat.servi…
M7-16 P0 | KnowledgeItem.sourceRef 从未被赋值,material scope 检索失效
修复
- KnowledgeItemsRepository.create() 支持 sourceRef 参数
- ImportCandidateService.accept() 传入 candidate.sourceId 作为 sourceRef
- update 白名单增加 sourceRef
涉及:…
M7-11 P0 | deleteSession / updateSession / getMessages 缺少 userId 鉴权
修复
- getMessages(userId, sessionId) — 先查 session 校验 userId
- deleteSession(userId, sessionId) — 同上
- updateSession(userId, sessionId, dto) — 同上
- Controller…
M7-11 P0 | deleteSession / updateSession / getMessages 缺少 userId 鉴权
M7-12 P0 | listSessions 缺少 isDeleted 过滤 + 分页元数据 + isPinned 排序
M7-13 P0 | loadContextByScope: global 走全库检索 + folder 无独立分支
M7-14 P1 | sendMessageStream aiGateway 非空断言导致 null 时 crash
M7-15 P2 | open-or-create 过滤 isArchived + knowledgeBaseId 必填约束优化