diff --git a/doc/prd/settings.md b/doc/prd/settings.md index e0b961f3..767c5e29 100644 --- a/doc/prd/settings.md +++ b/doc/prd/settings.md @@ -225,7 +225,7 @@ #### SET-WEB-004 更新网页索引 -- 系统行为:点击“更新索引”时启动持久化后台任务,仅对全局列表中状态为 `可索引 / 爬取失败 / 索引失败` 的网页执行爬取和索引更新;有抓取动作时先展示“步骤 1/2 抓取网页”,再展示“步骤 2/2 建立索引”,无抓取动作时直接展示第二步。执行中「检查更新」保持可用;「更新索引」不 disable、不加 loading,文案变为「取消」。进度条从点击后保持可见:目标总数尚未算出时显示活动进度条;算出后按已处理目标数 / 目标总数展示真实进度,每个目标(包括失败目标)只计一次;进度块标题右侧不显示百分比或 `已处理/总数`,当前阶段处理文案保留在进度条下方,不得继续停在准备中的空进度。点「取消」先弹出确认框(点击遮罩不关闭):确认停止后,尚未完成的将不会继续索引,已经完成的索引会保留。主按钮「停止」,次按钮「继续更新」。确认框不展示已完成/剩余数量。确认停止后,当前嵌入批次跑完即停;已完成的网页保留;未完成的回到进入本轮前的 `可索引 / 爬取失败 / 索引失败`,不因取消标成新的失败。若确认时任务已到成功或失败终态,停止为空操作。job 终态为 `cancelled`(任务已跑完则为原成功/失败)。向量模型未安装时“更新索引”禁用并提示先安装模型。可索引数为 0 时“更新索引”禁用。不做暂停;用户可再次点击“更新索引”处理剩余可索引网页。 +- 系统行为:点击“更新索引”时启动持久化后台任务,仅对全局列表中状态为 `可索引 / 爬取失败 / 索引失败` 的网页执行爬取和索引更新;有抓取动作时进度块标题展示“抓取网页”,下方阶段文案保留“步骤 1/2 抓取网页:N/M”;进入索引阶段时标题展示“建立索引”,下方保留“步骤 2/2 建立索引:N/M”;无抓取动作时直接展示建立索引阶段。执行中「检查更新」保持可用;「更新索引」不 disable、不加 loading,文案变为「取消」。进度条从点击后保持可见:目标总数尚未算出时显示活动进度条;算出后按已处理目标数 / 目标总数展示真实进度,每个目标(包括失败目标)只计一次;进度块标题右侧不显示百分比或 `已处理/总数`,当前阶段处理文案保留在进度条下方,不得继续停在准备中的空进度。点「取消」先弹出确认框(点击遮罩不关闭):确认停止后,尚未完成的将不会继续索引,已经完成的索引会保留。主按钮「停止」,次按钮「继续更新」。确认框不展示已完成/剩余数量。确认停止后,当前嵌入批次跑完即停;已完成的网页保留;未完成的回到进入本轮前的 `可索引 / 爬取失败 / 索引失败`,不因取消标成新的失败。若确认时任务已到成功或失败终态,停止为空操作。job 终态为 `cancelled`(任务已跑完则为原成功/失败)。向量模型未安装时“更新索引”禁用并提示先安装模型。可索引数为 0 时“更新索引”禁用。不做暂停;用户可再次点击“更新索引”处理剩余可索引网页。 - 验收: - `SET-WEB-004-AC1` 更新索引执行中,网页状态会进入 `爬取中` 或 `索引中`。 - `SET-WEB-004-AC2` 更新成功后,网页状态变为 `已索引`,抓取时间同步刷新。 diff --git a/src/renderer/src/components/settings/WorkspaceIndexJobProgress.tsx b/src/renderer/src/components/settings/WorkspaceIndexJobProgress.tsx index 0c6b74ca..df03798f 100644 --- a/src/renderer/src/components/settings/WorkspaceIndexJobProgress.tsx +++ b/src/renderer/src/components/settings/WorkspaceIndexJobProgress.tsx @@ -14,8 +14,8 @@ const getJobTitle = (job: WorkspaceIndexJobRecord): string => { if (job.phase === 'diff') return '步骤 2/2 比对文件索引' } if (job.source_kind === 'web' && job.action === 'prepare') { - if (job.phase === 'crawl') return '步骤 1/2 抓取网页' - if (job.phase === 'index') return '步骤 2/2 建立索引' + if (job.phase === 'crawl') return '抓取网页' + if (job.phase === 'index') return '建立索引' } if (job.action === 'scan') return job.source_kind === 'web' ? '检查网页更新' : '检查文件更新' return job.source_kind === 'web' ? '更新网页索引' : '更新文件索引' diff --git a/tests/case/settings/workspace/web/web-prepare-summary.e2e.test.ts b/tests/case/settings/workspace/web/web-prepare-summary.e2e.test.ts index c9c170f7..1b0bad09 100644 --- a/tests/case/settings/workspace/web/web-prepare-summary.e2e.test.ts +++ b/tests/case/settings/workspace/web/web-prepare-summary.e2e.test.ts @@ -123,7 +123,7 @@ describe('settings workspace web e2e', () => { state: 'visible' }) const progressBlock = page.getByTestId(importSelectors.webSourceIndexJobProgress) - await progressBlock.getByText('步骤 1/2 抓取网页', { exact: true }).waitFor({ + await progressBlock.getByText('抓取网页', { exact: true }).waitFor({ state: 'visible' }) crawlStepVisible = true