fix: unify knowledge documents and sources
Merge single-document sources into one row, keep grouped directory documents and failed sources visible, and share search and task actions. Compact the drop zone and move secondary actions into a disclosure. Include the existing knowledge workspace component extraction required by this implementation, focused regression tests, bilingual copy, and design documentation. Validation: 94 focused tests, typecheck, lint, and diff checks passed. Full tests timed out after 200 seconds; two unrelated HeartbeatCenter tablist failures were reproduced separately. Electron visual acceptance remains unverified. Release note: 知识库的内容来源与文档索引合并为统一列表,减少重复记录和操作;支持统一搜索,并保留目录分组和失败来源的恢复入口。
This commit is contained in:
@@ -16,6 +16,25 @@
|
||||
|
||||
## 验证证据
|
||||
|
||||
### 2026-09-27 文档与来源统一列表
|
||||
|
||||
在现有 `knowledge-workspace` 拆分基础上修改 `DocumentsView.tsx`,单文件、单 URL 与
|
||||
唯一关联文档合成一行;目录及一对多来源保留组标题,零文档来源和孤立文档继续可见。
|
||||
统一搜索、完整移除数量、次要操作折叠及预览返回规则见 [UI 设计](./ui-design.md#6-来源操作)。
|
||||
`KnowledgeTasksView.tsx` 支持合并行同时传入来源和文档上下文,展示两者相关任务。
|
||||
|
||||
- `npx vitest run src/renderer/src/KnowledgeWorkspace.test.tsx src/renderer/src/DocumentResultPreview.test.tsx src/renderer/src/KnowledgeChunkManager.test.tsx src/renderer/src/WorkspacePrimitives.test.tsx`:4 个文件、94 项通过。
|
||||
- 新增用例覆盖单文件与 URL 去重、来源和文档搜索、一对多过滤、零文档来源重试与暂停、
|
||||
孤立文档、完整移除数量、合并任务入口、拖放,以及预览返回后的搜索、焦点和滚动恢复。
|
||||
工作区测试使用解析预览替身;真实预览组件由同次运行的 `DocumentResultPreview.test.tsx` 验证。
|
||||
- `npm run typecheck`、`npm run lint` 和 `git diff --check` 通过。
|
||||
- 完整 `npm test` 运行 200 秒后超时,超时前输出 `HeartbeatCenter.test.tsx` 两项失败,
|
||||
全量测试未完成。独立运行 `npm test -- src/renderer/src/HeartbeatCenter.test.tsx`
|
||||
复现 40 项通过、2 项失败:zh-CN/en-US 的 `keeps tab titles unique...` 用例在第 213 行
|
||||
期望 1 个 `tablist`,实际为 2 个。该失败与本次知识库修改无关,本轮未修改心跳中心。
|
||||
- 未做真实 Electron 浅深主题、窄窗口、原生键盘及 UI → Main 导入验收。
|
||||
未调用外部模型或知识服务,未提交改动。
|
||||
|
||||
### 2026-09-20 清理孤立的内存图谱搜索
|
||||
|
||||
- 删除仅剩测试调用的 `searchGraph`、专属评分/遍历辅助函数、搜索上限及测试 fixture。
|
||||
|
||||
@@ -64,6 +64,25 @@ Conversation 的检索范围,返回对话并聚焦输入框。
|
||||
|
||||
## 6. 来源操作
|
||||
|
||||
“文档与来源”使用一张按来源组织的表格。单文件、单 URL 来源只有一篇关联文档时,
|
||||
来源与文档合成一行,以文档名为主标题,同步状态、同步时间和索引状态就近显示。
|
||||
不再单独展示同名来源行,也不重复任务入口。目录及其他一对多来源保留来源组标题,
|
||||
文档紧随其后;零文档和失败来源仍保留同步、暂停、重试及移除入口。
|
||||
没有 `sourceId` 或找不到对应来源的文档独立显示。
|
||||
|
||||
搜索同时匹配来源名称、来源位置、文档名称和路径。来源命中时显示该组全部文档;
|
||||
仅文档命中时保留组标题和命中文档。一对多关系按完整数据判断,搜索不能将其临时合成
|
||||
单文档行。移除确认使用来源的完整文档数量,不使用搜索结果数。
|
||||
|
||||
导入文件、目录、URL 及拖放入口保持可用,拖放区使用紧凑的图标与文字提示。
|
||||
单文档行的同步、移除和重新解析收进原生“更多操作”折叠区,解析预览、打开来源、
|
||||
分块和任务保留直接入口。失败文档的重新处理入口仍直接显示。合并行的任务入口包含
|
||||
该来源及该文档的相关任务,保留没有来源 ID 的文档任务。大小与分块数不拆行,操作组
|
||||
按可用宽度换行,窄窗口在表格内部横向滚动。
|
||||
|
||||
解析预览复用现有结果组件;返回列表时恢复搜索、原触发按钮焦点及页面滚动位置。
|
||||
重新解析继续调用文档重建,使用当前设置并保留上次结果,失败时显示可恢复错误。
|
||||
|
||||
文档行提供“打开来源”,Main 根据知识库和文档归属重新读取保存的文件路径或 URL。
|
||||
移除来源使用确认对话框,说明文档数、索引、图谱证据和托管副本影响。初始焦点位于
|
||||
取消,提交期间禁止重复操作,失败时保留对话框和错误。
|
||||
|
||||
Reference in New Issue
Block a user