fix: clarify knowledge document actions and task history
Restore URL identity in merged rows and replace crowded document actions with a primary entry and accessible menu. Organize preview navigation and maintenance actions, and show task history as batches with matching counts and filters. Keep preview task scope consistent for multi-document sources and track pending operations independently so one source does not block another source's pause action. Include responsive Electron layout and behavioral regressions, bilingual copy, and design documentation. Validation: focused regressions, typecheck, lint, and diff checks passed. Electron fixtures cover light/dark and wide/narrow layouts. Full tests reported two previously known HeartbeatCenter assertions; real import and parsing integration was not rerun. Release note: 知识库文档列表保留来源网址,统一查看入口和更多操作,并整理解析结果页。任务历史按批次展示,筛选计数与当前对象一致,不同来源的操作互不阻塞。
This commit is contained in:
@@ -138,6 +138,10 @@
|
||||
聊天标明会话,知识库显示库名与 `ScopeBadge`。下一行固定正文、图片、详情三个 PageTabs,
|
||||
页签及直接包装层 `flex: 0 0 auto`,仅当前面板滚动。查看已存结果不发 OCR 请求。
|
||||
|
||||
知识库将原件与维护操作收进详情头部的共享菜单,并将添加图片工具限制在图片页;聊天与
|
||||
设置预览保持原有入口。具体顺序、来源与解析时原件的区别及返回规则见
|
||||
[知识库来源操作](../knowledge-base/ui-design.md#6-来源操作)。
|
||||
|
||||
正文面板按来源页或章节呈现 Markdown、HTML 表格及受管图片。页面导航显示真实页号;
|
||||
PPTX 显示“幻灯片 N”,没有分页的原生文档显示工作表或标题定位,不生成假页码。点击图片
|
||||
旁的“第 N 页”或“查看正文位置”切到正文并聚焦对应标题;正文图片的“在图片中查看”反向
|
||||
|
||||
@@ -16,6 +16,50 @@
|
||||
|
||||
## 验证证据
|
||||
|
||||
### 2026-09-27 独立评审 P2 修复
|
||||
|
||||
- `DocumentsView` 将任务来源 ID 与维护用来源分开传递。目录和一对多 URL 的文档预览
|
||||
只筛选当前文档任务,父批次作为上下文保留,同组 B 的任务不再因来源 ID 被纳入。
|
||||
真正单文档合并行在列表和预览中均保留来源、文档双 ID;判定使用完整文档集合。
|
||||
- 在飞状态由全局单 ID 改为按操作 ID 计数,完成或失败时只清理本次操作。来源暂停、
|
||||
同步及文档操作使用各自 ID 判断禁用,A 同步或重解析期间仍可暂停 B。
|
||||
- 新增 9 项行为回归:目录及一对多 URL 各覆盖列表、预览入口,并在搜索只剩 A 时确认
|
||||
不纳入 B 或其他来源级任务;单文档合并预览覆盖双 ID。四组 deferred 用例验证
|
||||
A 同步/重解析与 B 暂停的调用 ID、重复提交禁用、A 先完成及 B 先失败后的独立状态。
|
||||
预览测试同时确认所属来源的同步和移除入口仍可用。
|
||||
- `npx vitest run src/renderer/src/KnowledgeWorkspace.test.tsx src/renderer/src/DocumentResultPreview.test.tsx`:
|
||||
2 个文件、66 项通过;`npm run typecheck`、`npm run lint`、`git diff --check` 通过。
|
||||
- 本轮仅修改上述组件、工作区测试及本地知识库 UI/进度文档。未重跑全量或 Electron
|
||||
渲染验收,未提交;此前全量结果及渲染验证边界见下方记录。
|
||||
|
||||
### 2026-09-27 文档入口与任务历史整理
|
||||
|
||||
对应 US-D1、US-D2、US-D4,完成文档行、解析预览与知识任务中心的界面修改。当前交互
|
||||
以 [来源操作](./ui-design.md#6-来源操作) 和 [任务历史](./ui-design.md#8-任务批次与历史)
|
||||
为准,替代下方同日早期记录中的原生折叠操作区。
|
||||
|
||||
- 合并 URL 行恢复地址,保留查询参数与片段;同标题、不同查询参数的两条 URL 已验证
|
||||
可以区分、分别搜索并打开正确来源。
|
||||
- 文档与来源行使用一个主要按钮和共享菜单,分块、任务、重解析、同步、暂停、重试及
|
||||
移除继续可达。预览按返回、标题、维护操作分层,保留搜索、焦点与滚动恢复;解析时
|
||||
原件与当前来源使用各自原有 API。共享菜单补充向下翻转及缩窗后的视口高度限制。
|
||||
- 任务中心按真实父子记录计批次,对象筛选同步影响计数。历史包含已结束失败批次,
|
||||
运行批次中的成功子步骤不会单独混入历史。取消、重试继续服从服务契约。
|
||||
- 最终定向命令 `npx vitest run src/renderer/src/ApplicationMenu.test.tsx src/renderer/src/KnowledgeWorkspace.test.tsx src/renderer/src/DocumentResultPreview.test.tsx src/renderer/src/KnowledgeChunkManager.test.tsx src/renderer/src/WorkspacePrimitives.test.tsx tests/knowledge-layout.electron.test.ts tests/attachment-layout.electron.test.ts tests/overlay-layering.electron.test.ts`:8 个文件、106 项通过。
|
||||
- `tests/knowledge-layout.electron.test.ts` 使用真实 DocumentsView、KnowledgeTasksView、
|
||||
DocumentResultPreview、菜单与 CSS,覆盖浅深主题及 1100×720、720×720、420×480。
|
||||
验证页面无横向溢出、表格内部滚动、菜单展开不改变行高、顶部菜单翻转、原生 End/Escape、
|
||||
预览焦点恢复及历史默认折叠。截图已检查宽屏列表、窄屏预览与菜单、任务历史。
|
||||
截图复核发现文档 Grid 原先会被表格最小宽度撑开;列宽改用 `minmax(0, 1fr)`,
|
||||
并增加内部页面容器无横向溢出的断言,确保导入工具栏不随表格横向滚动。
|
||||
隐藏窗口无截图时曾停在帧等待;改用可见窗口并确认真实焦点后,无截图运行通过。
|
||||
- 附件布局和 Modal 浮层的真实 Electron 回归通过,验证共享菜单修改没有破坏这两个入口。
|
||||
- 完整 `npm test` 最后一次完成:448 个文件通过、1 个失败、11 个跳过;5291 项通过、
|
||||
2 项失败、83 项跳过。失败仅为下方已记录的 HeartbeatCenter 中英文 tablist 数量断言。
|
||||
此后补回解析时原件菜单入口、补测锚点滚出视口,并修正窄屏 Grid,均通过上述最终定向回归。
|
||||
- `npm run typecheck`、`npm run lint`、`git diff --check` 通过。布局 fixture 使用合成数据与桥接替身,
|
||||
本轮未从完整 App 重做 UI → Main 的文件导入及真实解析服务验收;没有新增外部模型调用。
|
||||
|
||||
### 2026-09-27 文档与来源统一列表
|
||||
|
||||
在现有 `knowledge-workspace` 拆分基础上修改 `DocumentsView.tsx`,单文件、单 URL 与
|
||||
|
||||
@@ -51,8 +51,8 @@ Conversation 的检索范围,返回对话并聚焦输入框。
|
||||
- 向量状态。
|
||||
- 启用图谱时的图谱状态。
|
||||
|
||||
失败文档保留错误信息和“重新处理”。只要仍有可用分块,就允许打开分块管理,避免隐藏
|
||||
上一版可用索引。
|
||||
失败文档保留错误信息和“重新处理”,入口位置见第 6 节。只要仍有可用分块,就允许
|
||||
打开分块管理,避免隐藏上一版可用索引。
|
||||
|
||||
## 5. 问答效果与高级参数
|
||||
|
||||
@@ -75,13 +75,28 @@ Conversation 的检索范围,返回对话并聚焦输入框。
|
||||
单文档行。移除确认使用来源的完整文档数量,不使用搜索结果数。
|
||||
|
||||
导入文件、目录、URL 及拖放入口保持可用,拖放区使用紧凑的图标与文字提示。
|
||||
单文档行的同步、移除和重新解析收进原生“更多操作”折叠区,解析预览、打开来源、
|
||||
分块和任务保留直接入口。失败文档的重新处理入口仍直接显示。合并行的任务入口包含
|
||||
该来源及该文档的相关任务,保留没有来源 ID 的文档任务。大小与分块数不拆行,操作组
|
||||
按可用宽度换行,窄窗口在表格内部横向滚动。
|
||||
合并行继续显示 URL,包含路径、查询参数和片段,使同标题的不同页面可以区分;
|
||||
长地址允许换行。本地文件沿用文件名摘要。来源组中的 URL 同样可见。
|
||||
|
||||
解析预览复用现有结果组件;返回列表时恢复搜索、原触发按钮焦点及页面滚动位置。
|
||||
重新解析继续调用文档重建,使用当前设置并保留上次结果,失败时显示可恢复错误。
|
||||
每行只直接显示一个主要动作及一个“更多操作”按钮。有解析结果时主要动作是
|
||||
“查看解析结果”;没有结果时,失败文档显示“重新处理”,其余文档有任务时显示
|
||||
“查看任务”,否则显示“打开来源”。来源组优先提供失败重试或查看任务,没有任务时
|
||||
提供同步或暂停。状态与错误始终在行内可见。
|
||||
|
||||
更多操作复用 `AnchoredMenu`,依次放置打开来源、打开解析时原件、文档分块、查看任务,
|
||||
再用分隔线区分重新处理、来源同步和移除来源。仅在有对应资源时显示原件或任务入口;
|
||||
没有分块时禁用分块入口。来源组的菜单提供任务及来源维护。菜单支持方向键、Home、End、
|
||||
Escape 和焦点返回,展开不改变行高;空间不足时翻转方向或在菜单内滚动。
|
||||
大小与分块数保持单行,窄窗口在表格内部横向滚动。
|
||||
|
||||
解析预览头部按返回、文档标题与库名及全局范围、维护菜单排列,地址仍可辨认。
|
||||
正文、图片和详情使用共享结果组件;知识库的会话选择及添加图片工具仅在图片页显示,
|
||||
切换页签保留选择。返回列表恢复搜索、原触发按钮焦点及页面滚动位置。重新解析继续
|
||||
调用文档重建,使用当前设置并保留上次结果,失败时显示可恢复错误。维护菜单同时保留
|
||||
当前来源与解析时原件的打开操作,两者分别读取知识来源和已保存的解析资产。
|
||||
|
||||
在飞操作只禁用对应的操作入口。同步或重解析 A 期间,其他来源 B 的暂停仍可用;
|
||||
并发操作分别恢复可用状态,A 结束不能提前解除仍在执行的 B。
|
||||
|
||||
文档行提供“打开来源”,Main 根据知识库和文档归属重新读取保存的文件路径或 URL。
|
||||
移除来源使用确认对话框,说明文档数、索引、图谱证据和托管副本影响。初始焦点位于
|
||||
@@ -96,3 +111,30 @@ Conversation 的检索范围,返回对话并聚焦输入框。
|
||||
均切换一次选择;选中背景和整行焦点环保持可见。Tab 聚焦、Space 切换,Escape 关闭并
|
||||
返回触发按钮。点击行内非焦点元素时产生的空目标失焦不关闭弹层;点击外部或焦点明确
|
||||
移到外部时才关闭,避免原生标签完成勾选前被卸载。
|
||||
|
||||
## 8. 任务批次与历史
|
||||
|
||||
任务中心按服务返回的 `parentTaskId` 组织一次操作及其文档、阶段子任务。顶层操作按
|
||||
创建时间倒序排列,一个操作计为一个批次;缺失父记录的旧任务仍独立显示。重试产生的
|
||||
新操作保留真实历史,使用已有 `attempt` 显示尝试次数,不按标题猜测合并关系。
|
||||
|
||||
文档或来源进入任务中心后,列表与计数使用同一对象范围,并保留命中任务的父级上下文。
|
||||
合并文档行同时匹配来源 ID 和文档 ID,包括没有来源 ID 的文档任务。“清除对象筛选”
|
||||
恢复当前库的任务集合。
|
||||
|
||||
列表与解析预览使用相同的文档任务范围。目录及一对多来源下的文档只按文档 ID 筛选,
|
||||
即使搜索后只剩一篇也不扩大到整个来源;只有真正的单文档合并行同时包含来源 ID。
|
||||
预览菜单中的来源同步、暂停和移除仍作用于所属来源,来源维护范围独立于任务筛选。
|
||||
|
||||
- 进行中:批次内有排队或运行记录。
|
||||
- 失败:批次内有失败或中断记录;运行批次也可能同时存在失败子任务。
|
||||
- 历史:批次内没有排队或运行记录,包含完成、失败、中断、取消和跳过。
|
||||
|
||||
计数均按批次计算,失败与历史可以重叠。标题旁的共享帮助解释口径。运行批次中已成功的
|
||||
阶段不会单独进入历史。切换到进行中或失败时展开相关批次;全部和历史默认收起子任务,
|
||||
用户仍可逐项展开。批次状态保留服务原值,子任务失败以额外文字提示,不改写父状态。
|
||||
|
||||
只有进行中的记录显示进度条;失败和中断保留停止阶段、错误及处理建议。已结束记录
|
||||
不再显示“当前阶段”、百分比或默认“等待处理”。摘要保留时间、服务消息、子任务数及
|
||||
重试次数。取消和重试严格使用服务返回的 `canCancel`、`canRetry`,提交期间禁用重复
|
||||
操作,失败后保留筛选、任务内容及就地错误。
|
||||
|
||||
Reference in New Issue
Block a user