# Knowledge V2 后续待办 本文档记录当前 Knowledge V2 UI 完成后,仍需要继续收敛的限制与后续工作。 只记录已经能从当前代码、计划文档或后端决策文档确认的事项;未确认 UI 稿、未确认产品语义和推测性功能不写入本文。 ## 1. 模型与 RAG 配置 - 创建 / 恢复知识库时,不应继续由 renderer 维护固定 `dimensions`。 - 后续需要从选中的 embedding model 或上游模型能力解析真实维度。 - 在该能力完成前,RAG 面板中的 embedding model 与 dimensions 继续保持只读。 - 参考:`v2-refactor-temp/docs/knowledge/knowledge-ui.md` - 收敛 embedding model 的可选范围与 runtime 支持范围。 - 当前运行时 embedding provider 只明确支持 Ollama。 - 后续要么接入更多 provider 的运行时能力,要么在 UI / 创建流程中限制不可运行的 provider。 - 参考:`v2-refactor-temp/docs/knowledge/knowledge-backend-decisions.md` - 扩展 rerank provider 覆盖。 - 当前知识库 rerank 运行时走 `AiService`,可用范围取决于 ai-core / provider 层的 rerank 支持。 - 后续如需支持 Voyage / TEI 等 provider,应优先在 provider 层补齐运行时能力。 - 参考:`src/main/services/knowledge/utils/indexing/rerank.ts` - 为 chunk / RAG 配置变更提供明确 reindex 流程。 - `chunkSize` / `chunkOverlap` 可更新,但不会自动重建已有 chunk 和向量。 - 后续需要在 UI 中明确提示并触发 reindex,避免配置与旧索引长期不一致。 - 参考:`src/main/data/services/KnowledgeBaseService.ts` ## 2. 文件处理与数据源 - 接入 `fileProcessorId` 到实际处理链路。 - 当前字段已持久化,但 runtime 处理链路仍未完整消费该配置。 - 后续需要让文件解析、OCR / 预处理 provider 选择真正受该配置控制。 - 参考:`v2-refactor-temp/docs/knowledge/knowledge-backend-decisions.md` - 接入 note 数据源。 - 当前添加数据源里的 note 是占位状态,提交不可用。 - 后续需要接入真实 note picker / note 数据源 API,并替换占位 UI。 - 参考:`src/renderer/pages/knowledge.v2/components/addKnowledgeItemDialog/sources/NoteSourceContent.tsx` - 继续保持 `directory` 展开由 main runtime 负责。 - renderer 只提交 owner item 语义,不在页面里展开目录。 - 如果未来允许 nested directory,需要先重新设计 interrupt / reconcile 语义。 - 参考:`src/renderer/pages/knowledge.v2/plans/add-source-confirm-submit.md` ## 3. UI 交互补齐 - 重新接通「知识库文件附加到聊天输入」。 - 该入口此前在 `AttachmentButton` 通过 v2→v1 的 `KnowledgeRuntime.getFileMetadata` 桥(main 侧产出 legacy `FileMetadata`)实现;为避免在 v2 新增 `FileMetadata` 生产者,当前已先断开,仅保留本地文件上传。 - 重新接通依赖聊天附件管线整体迁出 `FileMetadata`(迁到 `FileEntry` / `FileHandle`),属跨域改动。 - 参考:`src/renderer/pages/home/Inputbar/tools/components/AttachmentButton.tsx`、`v2-refactor-temp/docs/file-manager/filemetadata-consumer-audit.md` - 补齐数据源列表的大数据量能力。 - 当前列表按 root items 查询,缺少完整分页、排序、子分组筛选和批量操作。 - 非终态 item 目前靠轮询刷新。 - 后续应根据数据规模和 UI 稿补分页 / 虚拟列表 / 排序 / 批量处理等能力。 - 参考:`src/renderer/hooks/useKnowledgeItems.ts` - 补齐更多语言的 `knowledge_v2` 翻译。 - 当前主要覆盖 `zh-cn` / `zh-tw` / `en-us`。 - 后续需要确认其他 locale 的回退策略或补齐翻译。 - 参考:`src/renderer/i18n/locales/` ## 4. Runtime 与任务队列 - ✅ 持久化任务表 + 自动恢复(Phase 4 已落地)。 - knowledge.prepare-root / knowledge.index-leaf 走 `JobManager`,`jobTable` 持久化。 - 默认 per-base 并发 5、全局 cap 50;同一 base 的写入仍通过 `KnowledgeRuntimeService.runWithBaseWriteLockForBase` 串行。 - `recovery: 'retry'` + `JobManager.onAllReady` 启动后 60s 跑 startup recovery,自动重新 dispatch 未完成 job。 - 参考:`src/main/services/knowledge/tasks/prepareRootJobHandler.ts`、`src/main/services/knowledge/tasks/indexLeafJobHandler.ts`。 - 收敛失败清理与恢复体验。 - shutdown 不再 fail items;重启后由 startup recovery 自动重新 dispatch(handler 入口对 `item.status === 'completed'` 早退)。 - delete / reindex 走业务层 list + filter + `jobManager.cancel`,残留 vectors 由 `KnowledgeIndexStore.rebuildMaterial` 的单事务原子性保证不出现双倍 chunk。 - 后续若需要更明确的用户可见恢复入口或后台修复任务,可在此基础上构建。 - 参考:`src/main/services/knowledge/runtime/KnowledgeRuntimeService.ts` - 处理 base 删除后的 artifact 清理风险。 - 当前删除 base 会删除 SQLite 记录和向量 artifact。 - 如果 artifact 清理失败,可能留下孤立向量文件。 - 后续可以补 pending cleanup / 重试清理策略。 - 参考:`src/main/services/knowledge/KnowledgeService.ts` ## 5. 迁移与存储边界 - 明确 V1 迁移跳过项的用户影响。 - 当前 V1 `memory` / `video` item 不迁移。 - 旧知识库层级不重建,迁移 item 默认进入 root。 - 后续需要在 release note 或迁移说明中明确这些行为。 - 参考:`v2-refactor-temp/docs/knowledge/knowledge-schema.md` - 向量迁移仍按“保留可映射旧向量”策略执行。 - 不重新切块、不重新 embedding、不重新生成业务 item,也不校正旧知识库业务配置。 - v1 legacy 向量 DB 原地保留不动;迁移成功后作为孤儿文件留在磁盘上,当前不会自动清理。 - 后续如果要释放磁盘,需要在用户确认放弃 v1 后单独增加 cleanup 策略、实现和测试。 - 参考:`v2-refactor-temp/docs/knowledge/knowledge-vector-migrator.md` - 拆分临时镜像的文件类型。 - `src/shared/data/types/knowledge.ts` 中仍有知识域临时镜像的 `FileMetadata`。 - 后续等独立 file domain schema 稳定后,应迁移到专属文件领域类型。 - 参考:`src/shared/data/types/knowledge.ts` ## 6. 发布与文档收尾 - ✅ Knowledge V2 首条 breaking changes 已落地(`2026-05-20-knowledge-job-auto-recovery.md`)。 - 后续若再有用户可感知的 v2 变更,继续写入 `v2-refactor-temp/docs/breaking-changes/`。 - 参考:`v2-refactor-temp/docs/breaking-changes/README.md` - 更新后端决策文档中已落地的变化。 - 例如 RAG 清空配置、recall stale guard、queue reset/write-lock 语义等近期修复。 - 后续只有行为真正落地后再更新决策文档,避免文档提前承诺。 - 参考:`v2-refactor-temp/docs/knowledge/knowledge-backend-decisions.md`