Files
crawler-plugin/docs/plans/05-frontend-quality.md
T
huangzd1997 42bbf4904e
Build Backend JAR / build (push) Has been cancelled
feat-admin-ui-interaction
2026-08-30 22:09:22 +08:00

66 KiB
Raw Blame History

05 前端轮询、缓存、构建与交付验收

对应总览任务:81-100 计划来源:docs/plans/00-plan-overview.md;仓库当前没有 docs/specs/,本模块计划根据现有代码审计结果生成。

模块目标

减少浏览器端轮询重复请求、响应式对象和 localStorage 无界增长,降低首屏公共 chunk 体积,并通过真实页面交互确认核心链路没有 stub。

模块级执行规则

  • 开发阶段单线程串行执行,不并行实现多个任务;完成一个任务的测试、实现、验证和 commit 后才能进入下一个任务。
  • 每个任务严格按“先写全部测试 → 运行确认 RED → 实现 → 运行确认 GREEN → lint/format → commit”执行。
  • 每个普通任务至少包含 8 个语义化测试;涉及 I/O、数据库、HTTP、Redis、RustFS、文件或 UI 时,测试必须同时覆盖 mock 依赖和真实集成/启动调用。
  • 禁止纯 echo、硬编码成功、空实现、跳过真实依赖调用或仅以 import 成功作为验收。

任务 81:建立前端任务轮询请求量、响应体大小和页面内存基线

所属模块:前端轮询、缓存、构建与交付验收 依赖:无 预估耗时:8-15 分钟(写测试 + 实现 + 自测)

功能点要求

  • 围绕“建立前端任务轮询请求量、响应体大小和页面内存基线”实现一个独立、可验证的功能点,不扩大到同模块其他未完成任务。
  • 输入、输出、异常和资源上限必须明确;空输入、单元素、最大允许值和超限值必须有确定行为。
  • 成功路径必须保留现有业务语义、幂等性和兼容字段;失败路径必须释放临时文件、连接、锁、线程任务和未引用对象。
  • 实现范围限定在 frontend-vue 的任务轮询、响应缓存、队列状态、构建拆包和页面 E2E 交付验证。

测试用例(必须先写,确认 RED

  1. test_task_081_polling_frontend_normal_default_path — 使用正常输入验证“建立前端任务轮询请求量、响应体大小和页面内存基线”的默认成功路径和主输出。
  2. test_task_081_polling_frontend_normal_multiple_items — 使用多个任务、行、chunk 或页面状态验证批量场景下结果不丢失且顺序稳定。
  3. test_task_081_polling_frontend_normal_repeated_operation_is_idempotent — 重复执行同一输入,验证不会产生重复记录、重复对象、重复请求或重复 UI 状态。
  4. test_task_081_polling_frontend_boundary_empty_input — 空集合、空字符串或无可处理数据时验证返回空结果/安全跳过,不创建无效资源。
  5. test_task_081_polling_frontend_boundary_single_item — 单任务、单行、单图片或单页面状态时验证不依赖批量路径且结果正确。
  6. test_task_081_polling_frontend_boundary_limit_and_overflow — 达到最大配置值以及超过最大值时验证限流、拒绝或降级行为,不发生无界内存增长。
  7. test_task_081_polling_frontend_invalid_input_rejected — 非法参数、缺少必填字段或格式错误时验证抛出项目约定异常及可识别错误消息。
  8. test_task_081_polling_frontend_dependency_failure_releases_resources — mock 数据库/Redis/RustFS/HTTP/文件依赖失败后验证错误可恢复,临时资源、锁和队列任务均释放。

TDD 流程

  1. 先写上述全部测试,运行项目测试命令,确认该功能测试 RED;如果测试一开始通过,必须先检查测试是否真正覆盖待实现行为。
  2. 实现功能,运行该任务定向测试和相关模块测试,确认 GREEN
  3. 执行 lint/format、编译或前端构建检查,确保没有新增错误。
  4. 完成资源释放、异常路径和兼容性验证后创建该任务对应 commit。

验证方法

  • npm run build 通过;涉及页面的任务执行对应 Playwright/E2E 用例。
  • 检查浏览器 Network、Performance、Memory 面板,确认轮询请求无重复风暴、终态后停止、缓存有界。
  • 重点观察:frontend-vue 的任务轮询、响应缓存、队列状态、构建拆包和页面 E2E 交付验证中的功能结果正确,且 CPU、堆内存、GC、数据库/对象存储调用次数和临时磁盘占用没有超过任务设定上限。

任务 82:为进度响应 Map 增加 TTL 清理与最大条目数

所属模块:前端轮询、缓存、构建与交付验收 依赖81 预估耗时:8-15 分钟(写测试 + 实现 + 自测)

功能点要求

  • 围绕“为进度响应 Map 增加 TTL 清理与最大条目数”实现一个独立、可验证的功能点,不扩大到同模块其他未完成任务。
  • 输入、输出、异常和资源上限必须明确;空输入、单元素、最大允许值和超限值必须有确定行为。
  • 成功路径必须保留现有业务语义、幂等性和兼容字段;失败路径必须释放临时文件、连接、锁、线程任务和未引用对象。
  • 实现范围限定在 frontend-vue 的任务轮询、响应缓存、队列状态、构建拆包和页面 E2E 交付验证。

测试用例(必须先写,确认 RED

  1. test_task_082_progress_cleanup_normal_default_path — 使用正常输入验证“为进度响应 Map 增加 TTL 清理与最大条目数”的默认成功路径和主输出。
  2. test_task_082_progress_cleanup_normal_multiple_items — 使用多个任务、行、chunk 或页面状态验证批量场景下结果不丢失且顺序稳定。
  3. test_task_082_progress_cleanup_normal_repeated_operation_is_idempotent — 重复执行同一输入,验证不会产生重复记录、重复对象、重复请求或重复 UI 状态。
  4. test_task_082_progress_cleanup_boundary_empty_input — 空集合、空字符串或无可处理数据时验证返回空结果/安全跳过,不创建无效资源。
  5. test_task_082_progress_cleanup_boundary_single_item — 单任务、单行、单图片或单页面状态时验证不依赖批量路径且结果正确。
  6. test_task_082_progress_cleanup_boundary_limit_and_overflow — 达到最大配置值以及超过最大值时验证限流、拒绝或降级行为,不发生无界内存增长。
  7. test_task_082_progress_cleanup_invalid_input_rejected — 非法参数、缺少必填字段或格式错误时验证抛出项目约定异常及可识别错误消息。
  8. test_task_082_progress_cleanup_dependency_failure_releases_resources — mock 数据库/Redis/RustFS/HTTP/文件依赖失败后验证错误可恢复,临时资源、锁和队列任务均释放。

TDD 流程

  1. 先写上述全部测试,运行项目测试命令,确认该功能测试 RED;如果测试一开始通过,必须先检查测试是否真正覆盖待实现行为。
  2. 实现功能,运行该任务定向测试和相关模块测试,确认 GREEN
  3. 执行 lint/format、编译或前端构建检查,确保没有新增错误。
  4. 完成资源释放、异常路径和兼容性验证后创建该任务对应 commit。

验证方法

  • npm run build 通过;涉及页面的任务执行对应 Playwright/E2E 用例。
  • 检查浏览器 Network、Performance、Memory 面板,确认轮询请求无重复风暴、终态后停止、缓存有界。
  • 重点观察:frontend-vue 的任务轮询、响应缓存、队列状态、构建拆包和页面 E2E 交付验证中的功能结果正确,且 CPU、堆内存、GC、数据库/对象存储调用次数和临时磁盘占用没有超过任务设定上限。

任务 83:统一不同页面的轮询去重、in-flight 合并和终态清理

所属模块:前端轮询、缓存、构建与交付验收 依赖82 预估耗时:8-15 分钟(写测试 + 实现 + 自测)

功能点要求

  • 围绕“统一不同页面的轮询去重、in-flight 合并和终态清理”实现一个独立、可验证的功能点,不扩大到同模块其他未完成任务。
  • 输入、输出、异常和资源上限必须明确;空输入、单元素、最大允许值和超限值必须有确定行为。
  • 成功路径必须保留现有业务语义、幂等性和兼容字段;失败路径必须释放临时文件、连接、锁、线程任务和未引用对象。
  • 实现范围限定在 frontend-vue 的任务轮询、响应缓存、队列状态、构建拆包和页面 E2E 交付验证。

测试用例(必须先写,确认 RED

  1. test_task_083_merge_cleanup_polling_normal_default_path — 使用正常输入验证“统一不同页面的轮询去重、in-flight 合并和终态清理”的默认成功路径和主输出。
  2. test_task_083_merge_cleanup_polling_normal_multiple_items — 使用多个任务、行、chunk 或页面状态验证批量场景下结果不丢失且顺序稳定。
  3. test_task_083_merge_cleanup_polling_normal_repeated_operation_is_idempotent — 重复执行同一输入,验证不会产生重复记录、重复对象、重复请求或重复 UI 状态。
  4. test_task_083_merge_cleanup_polling_boundary_empty_input — 空集合、空字符串或无可处理数据时验证返回空结果/安全跳过,不创建无效资源。
  5. test_task_083_merge_cleanup_polling_boundary_single_item — 单任务、单行、单图片或单页面状态时验证不依赖批量路径且结果正确。
  6. test_task_083_merge_cleanup_polling_boundary_limit_and_overflow — 达到最大配置值以及超过最大值时验证限流、拒绝或降级行为,不发生无界内存增长。
  7. test_task_083_merge_cleanup_polling_invalid_input_rejected — 非法参数、缺少必填字段或格式错误时验证抛出项目约定异常及可识别错误消息。
  8. test_task_083_merge_cleanup_polling_dependency_failure_releases_resources — mock 数据库/Redis/RustFS/HTTP/文件依赖失败后验证错误可恢复,临时资源、锁和队列任务均释放。

TDD 流程

  1. 先写上述全部测试,运行项目测试命令,确认该功能测试 RED;如果测试一开始通过,必须先检查测试是否真正覆盖待实现行为。
  2. 实现功能,运行该任务定向测试和相关模块测试,确认 GREEN
  3. 执行 lint/format、编译或前端构建检查,确保没有新增错误。
  4. 完成资源释放、异常路径和兼容性验证后创建该任务对应 commit。

验证方法

  • npm run build 通过;涉及页面的任务执行对应 Playwright/E2E 用例。
  • 检查浏览器 Network、Performance、Memory 面板,确认轮询请求无重复风暴、终态后停止、缓存有界。
  • 重点观察:frontend-vue 的任务轮询、响应缓存、队列状态、构建拆包和页面 E2E 交付验证中的功能结果正确,且 CPU、堆内存、GC、数据库/对象存储调用次数和临时磁盘占用没有超过任务设定上限。

任务 84:优化店铺抓取队列状态合并,消除 historyItems 的线性重复查找

所属模块:前端轮询、缓存、构建与交付验收 依赖83 预估耗时:8-15 分钟(写测试 + 实现 + 自测)

功能点要求

  • 围绕“优化店铺抓取队列状态合并,消除 historyItems 的线性重复查找”实现一个独立、可验证的功能点,不扩大到同模块其他未完成任务。
  • 输入、输出、异常和资源上限必须明确;空输入、单元素、最大允许值和超限值必须有确定行为。
  • 成功路径必须保留现有业务语义、幂等性和兼容字段;失败路径必须释放临时文件、连接、锁、线程任务和未引用对象。
  • 实现范围限定在 frontend-vue 的任务轮询、响应缓存、队列状态、构建拆包和页面 E2E 交付验证。

测试用例(必须先写,确认 RED

  1. test_task_084_merge_normal_default_path — 使用正常输入验证“优化店铺抓取队列状态合并,消除 historyItems 的线性重复查找”的默认成功路径和主输出。
  2. test_task_084_merge_normal_multiple_items — 使用多个任务、行、chunk 或页面状态验证批量场景下结果不丢失且顺序稳定。
  3. test_task_084_merge_normal_repeated_operation_is_idempotent — 重复执行同一输入,验证不会产生重复记录、重复对象、重复请求或重复 UI 状态。
  4. test_task_084_merge_boundary_empty_input — 空集合、空字符串或无可处理数据时验证返回空结果/安全跳过,不创建无效资源。
  5. test_task_084_merge_boundary_single_item — 单任务、单行、单图片或单页面状态时验证不依赖批量路径且结果正确。
  6. test_task_084_merge_boundary_limit_and_overflow — 达到最大配置值以及超过最大值时验证限流、拒绝或降级行为,不发生无界内存增长。
  7. test_task_084_merge_invalid_input_rejected — 非法参数、缺少必填字段或格式错误时验证抛出项目约定异常及可识别错误消息。
  8. test_task_084_merge_dependency_failure_releases_resources — mock 数据库/Redis/RustFS/HTTP/文件依赖失败后验证错误可恢复,临时资源、锁和队列任务均释放。

TDD 流程

  1. 先写上述全部测试,运行项目测试命令,确认该功能测试 RED;如果测试一开始通过,必须先检查测试是否真正覆盖待实现行为。
  2. 实现功能,运行该任务定向测试和相关模块测试,确认 GREEN
  3. 执行 lint/format、编译或前端构建检查,确保没有新增错误。
  4. 完成资源释放、异常路径和兼容性验证后创建该任务对应 commit。

验证方法

  • npm run build 通过;涉及页面的任务执行对应 Playwright/E2E 用例。
  • 检查浏览器 Network、Performance、Memory 面板,确认轮询请求无重复风暴、终态后停止、缓存有界。
  • 重点观察:frontend-vue 的任务轮询、响应缓存、队列状态、构建拆包和页面 E2E 交付验证中的功能结果正确,且 CPU、堆内存、GC、数据库/对象存储调用次数和临时磁盘占用没有超过任务设定上限。

任务 85:优化 Similar ASIN 轮询与文件生成等待,避免重复 force 请求

所属模块:前端轮询、缓存、构建与交付验收 依赖84 预估耗时:8-15 分钟(写测试 + 实现 + 自测)

功能点要求

  • 围绕“优化 Similar ASIN 轮询与文件生成等待,避免重复 force 请求”实现一个独立、可验证的功能点,不扩大到同模块其他未完成任务。
  • 输入、输出、异常和资源上限必须明确;空输入、单元素、最大允许值和超限值必须有确定行为。
  • 成功路径必须保留现有业务语义、幂等性和兼容字段;失败路径必须释放临时文件、连接、锁、线程任务和未引用对象。
  • 实现范围限定在 frontend-vue 的任务轮询、响应缓存、队列状态、构建拆包和页面 E2E 交付验证。

测试用例(必须先写,确认 RED

  1. test_task_085_asin_polling_normal_default_path — 使用正常输入验证“优化 Similar ASIN 轮询与文件生成等待,避免重复 force 请求”的默认成功路径和主输出。
  2. test_task_085_asin_polling_normal_multiple_items — 使用多个任务、行、chunk 或页面状态验证批量场景下结果不丢失且顺序稳定。
  3. test_task_085_asin_polling_normal_repeated_operation_is_idempotent — 重复执行同一输入,验证不会产生重复记录、重复对象、重复请求或重复 UI 状态。
  4. test_task_085_asin_polling_boundary_empty_input — 空集合、空字符串或无可处理数据时验证返回空结果/安全跳过,不创建无效资源。
  5. test_task_085_asin_polling_boundary_single_item — 单任务、单行、单图片或单页面状态时验证不依赖批量路径且结果正确。
  6. test_task_085_asin_polling_boundary_limit_and_overflow — 达到最大配置值以及超过最大值时验证限流、拒绝或降级行为,不发生无界内存增长。
  7. test_task_085_asin_polling_invalid_input_rejected — 非法参数、缺少必填字段或格式错误时验证抛出项目约定异常及可识别错误消息。
  8. test_task_085_asin_polling_dependency_failure_releases_resources — mock 数据库/Redis/RustFS/HTTP/文件依赖失败后验证错误可恢复,临时资源、锁和队列任务均释放。

TDD 流程

  1. 先写上述全部测试,运行项目测试命令,确认该功能测试 RED;如果测试一开始通过,必须先检查测试是否真正覆盖待实现行为。
  2. 实现功能,运行该任务定向测试和相关模块测试,确认 GREEN
  3. 执行 lint/format、编译或前端构建检查,确保没有新增错误。
  4. 完成资源释放、异常路径和兼容性验证后创建该任务对应 commit。

验证方法

  • npm run build 通过;涉及页面的任务执行对应 Playwright/E2E 用例。
  • 检查浏览器 Network、Performance、Memory 面板,确认轮询请求无重复风暴、终态后停止、缓存有界。
  • 重点观察:frontend-vue 的任务轮询、响应缓存、队列状态、构建拆包和页面 E2E 交付验证中的功能结果正确,且 CPU、堆内存、GC、数据库/对象存储调用次数和临时磁盘占用没有超过任务设定上限。

任务 86:将隐藏页面轮询间隔、前台恢复和退避策略统一配置化

所属模块:前端轮询、缓存、构建与交付验收 依赖85 预估耗时:8-15 分钟(写测试 + 实现 + 自测)

功能点要求

  • 围绕“将隐藏页面轮询间隔、前台恢复和退避策略统一配置化”实现一个独立、可验证的功能点,不扩大到同模块其他未完成任务。
  • 输入、输出、异常和资源上限必须明确;空输入、单元素、最大允许值和超限值必须有确定行为。
  • 成功路径必须保留现有业务语义、幂等性和兼容字段;失败路径必须释放临时文件、连接、锁、线程任务和未引用对象。
  • 实现范围限定在 frontend-vue 的任务轮询、响应缓存、队列状态、构建拆包和页面 E2E 交付验证。

测试用例(必须先写,确认 RED

  1. test_task_086_polling_normal_default_path — 使用正常输入验证“将隐藏页面轮询间隔、前台恢复和退避策略统一配置化”的默认成功路径和主输出。
  2. test_task_086_polling_normal_multiple_items — 使用多个任务、行、chunk 或页面状态验证批量场景下结果不丢失且顺序稳定。
  3. test_task_086_polling_normal_repeated_operation_is_idempotent — 重复执行同一输入,验证不会产生重复记录、重复对象、重复请求或重复 UI 状态。
  4. test_task_086_polling_boundary_empty_input — 空集合、空字符串或无可处理数据时验证返回空结果/安全跳过,不创建无效资源。
  5. test_task_086_polling_boundary_single_item — 单任务、单行、单图片或单页面状态时验证不依赖批量路径且结果正确。
  6. test_task_086_polling_boundary_limit_and_overflow — 达到最大配置值以及超过最大值时验证限流、拒绝或降级行为,不发生无界内存增长。
  7. test_task_086_polling_invalid_input_rejected — 非法参数、缺少必填字段或格式错误时验证抛出项目约定异常及可识别错误消息。
  8. test_task_086_polling_dependency_failure_releases_resources — mock 数据库/Redis/RustFS/HTTP/文件依赖失败后验证错误可恢复,临时资源、锁和队列任务均释放。

TDD 流程

  1. 先写上述全部测试,运行项目测试命令,确认该功能测试 RED;如果测试一开始通过,必须先检查测试是否真正覆盖待实现行为。
  2. 实现功能,运行该任务定向测试和相关模块测试,确认 GREEN
  3. 执行 lint/format、编译或前端构建检查,确保没有新增错误。
  4. 完成资源释放、异常路径和兼容性验证后创建该任务对应 commit。

验证方法

  • npm run build 通过;涉及页面的任务执行对应 Playwright/E2E 用例。
  • 检查浏览器 Network、Performance、Memory 面板,确认轮询请求无重复风暴、终态后停止、缓存有界。
  • 重点观察:frontend-vue 的任务轮询、响应缓存、队列状态、构建拆包和页面 E2E 交付验证中的功能结果正确,且 CPU、堆内存、GC、数据库/对象存储调用次数和临时磁盘占用没有超过任务设定上限。

任务 87:限制 localStorage 中任务、快照和队列数据的最大数量/字节数

所属模块:前端轮询、缓存、构建与交付验收 依赖86 预估耗时:8-15 分钟(写测试 + 实现 + 自测)

功能点要求

  • 围绕“限制 localStorage 中任务、快照和队列数据的最大数量/字节数”实现一个独立、可验证的功能点,不扩大到同模块其他未完成任务。
  • 输入、输出、异常和资源上限必须明确;空输入、单元素、最大允许值和超限值必须有确定行为。
  • 成功路径必须保留现有业务语义、幂等性和兼容字段;失败路径必须释放临时文件、连接、锁、线程任务和未引用对象。
  • 实现范围限定在 frontend-vue 的任务轮询、响应缓存、队列状态、构建拆包和页面 E2E 交付验证。

测试用例(必须先写,确认 RED

  1. test_task_087_task_normal_default_path — 使用正常输入验证“限制 localStorage 中任务、快照和队列数据的最大数量/字节数”的默认成功路径和主输出。
  2. test_task_087_task_normal_multiple_items — 使用多个任务、行、chunk 或页面状态验证批量场景下结果不丢失且顺序稳定。
  3. test_task_087_task_normal_repeated_operation_is_idempotent — 重复执行同一输入,验证不会产生重复记录、重复对象、重复请求或重复 UI 状态。
  4. test_task_087_task_boundary_empty_input — 空集合、空字符串或无可处理数据时验证返回空结果/安全跳过,不创建无效资源。
  5. test_task_087_task_boundary_single_item — 单任务、单行、单图片或单页面状态时验证不依赖批量路径且结果正确。
  6. test_task_087_task_boundary_limit_and_overflow — 达到最大配置值以及超过最大值时验证限流、拒绝或降级行为,不发生无界内存增长。
  7. test_task_087_task_invalid_input_rejected — 非法参数、缺少必填字段或格式错误时验证抛出项目约定异常及可识别错误消息。
  8. test_task_087_task_dependency_failure_releases_resources — mock 数据库/Redis/RustFS/HTTP/文件依赖失败后验证错误可恢复,临时资源、锁和队列任务均释放。

TDD 流程

  1. 先写上述全部测试,运行项目测试命令,确认该功能测试 RED;如果测试一开始通过,必须先检查测试是否真正覆盖待实现行为。
  2. 实现功能,运行该任务定向测试和相关模块测试,确认 GREEN
  3. 执行 lint/format、编译或前端构建检查,确保没有新增错误。
  4. 完成资源释放、异常路径和兼容性验证后创建该任务对应 commit。

验证方法

  • npm run build 通过;涉及页面的任务执行对应 Playwright/E2E 用例。
  • 检查浏览器 Network、Performance、Memory 面板,确认轮询请求无重复风暴、终态后停止、缓存有界。
  • 重点观察:frontend-vue 的任务轮询、响应缓存、队列状态、构建拆包和页面 E2E 交付验证中的功能结果正确,且 CPU、堆内存、GC、数据库/对象存储调用次数和临时磁盘占用没有超过任务设定上限。

任务 88:解析结果前端只接收预览数据,避免大 payload 进入响应式对象

所属模块:前端轮询、缓存、构建与交付验收 依赖87 预估耗时:8-15 分钟(写测试 + 实现 + 自测)

功能点要求

  • 围绕“解析结果前端只接收预览数据,避免大 payload 进入响应式对象”实现一个独立、可验证的功能点,不扩大到同模块其他未完成任务。
  • 输入、输出、异常和资源上限必须明确;空输入、单元素、最大允许值和超限值必须有确定行为。
  • 成功路径必须保留现有业务语义、幂等性和兼容字段;失败路径必须释放临时文件、连接、锁、线程任务和未引用对象。
  • 实现范围限定在 frontend-vue 的任务轮询、响应缓存、队列状态、构建拆包和页面 E2E 交付验证。

测试用例(必须先写,确认 RED

  1. test_task_088_payload_preview_frontend_normal_default_path — 使用正常输入验证“解析结果前端只接收预览数据,避免大 payload 进入响应式对象”的默认成功路径和主输出。
  2. test_task_088_payload_preview_frontend_normal_multiple_items — 使用多个任务、行、chunk 或页面状态验证批量场景下结果不丢失且顺序稳定。
  3. test_task_088_payload_preview_frontend_normal_repeated_operation_is_idempotent — 重复执行同一输入,验证不会产生重复记录、重复对象、重复请求或重复 UI 状态。
  4. test_task_088_payload_preview_frontend_boundary_empty_input — 空集合、空字符串或无可处理数据时验证返回空结果/安全跳过,不创建无效资源。
  5. test_task_088_payload_preview_frontend_boundary_single_item — 单任务、单行、单图片或单页面状态时验证不依赖批量路径且结果正确。
  6. test_task_088_payload_preview_frontend_boundary_limit_and_overflow — 达到最大配置值以及超过最大值时验证限流、拒绝或降级行为,不发生无界内存增长。
  7. test_task_088_payload_preview_frontend_invalid_input_rejected — 非法参数、缺少必填字段或格式错误时验证抛出项目约定异常及可识别错误消息。
  8. test_task_088_payload_preview_frontend_dependency_failure_releases_resources — mock 数据库/Redis/RustFS/HTTP/文件依赖失败后验证错误可恢复,临时资源、锁和队列任务均释放。

TDD 流程

  1. 先写上述全部测试,运行项目测试命令,确认该功能测试 RED;如果测试一开始通过,必须先检查测试是否真正覆盖待实现行为。
  2. 实现功能,运行该任务定向测试和相关模块测试,确认 GREEN
  3. 执行 lint/format、编译或前端构建检查,确保没有新增错误。
  4. 完成资源释放、异常路径和兼容性验证后创建该任务对应 commit。

验证方法

  • npm run build 通过;涉及页面的任务执行对应 Playwright/E2E 用例。
  • 检查浏览器 Network、Performance、Memory 面板,确认轮询请求无重复风暴、终态后停止、缓存有界。
  • 重点观察:frontend-vue 的任务轮询、响应缓存、队列状态、构建拆包和页面 E2E 交付验证中的功能结果正确,且 CPU、堆内存、GC、数据库/对象存储调用次数和临时磁盘占用没有超过任务设定上限。

任务 89:清理页面卸载时的所有 timer、请求和临时 URL

所属模块:前端轮询、缓存、构建与交付验收 依赖88 预估耗时:8-15 分钟(写测试 + 实现 + 自测)

功能点要求

  • 围绕“清理页面卸载时的所有 timer、请求和临时 URL”实现一个独立、可验证的功能点,不扩大到同模块其他未完成任务。
  • 输入、输出、异常和资源上限必须明确;空输入、单元素、最大允许值和超限值必须有确定行为。
  • 成功路径必须保留现有业务语义、幂等性和兼容字段;失败路径必须释放临时文件、连接、锁、线程任务和未引用对象。
  • 实现范围限定在 frontend-vue 的任务轮询、响应缓存、队列状态、构建拆包和页面 E2E 交付验证。

测试用例(必须先写,确认 RED

  1. test_task_089_cleanup_normal_default_path — 使用正常输入验证“清理页面卸载时的所有 timer、请求和临时 URL”的默认成功路径和主输出。
  2. test_task_089_cleanup_normal_multiple_items — 使用多个任务、行、chunk 或页面状态验证批量场景下结果不丢失且顺序稳定。
  3. test_task_089_cleanup_normal_repeated_operation_is_idempotent — 重复执行同一输入,验证不会产生重复记录、重复对象、重复请求或重复 UI 状态。
  4. test_task_089_cleanup_boundary_empty_input — 空集合、空字符串或无可处理数据时验证返回空结果/安全跳过,不创建无效资源。
  5. test_task_089_cleanup_boundary_single_item — 单任务、单行、单图片或单页面状态时验证不依赖批量路径且结果正确。
  6. test_task_089_cleanup_boundary_limit_and_overflow — 达到最大配置值以及超过最大值时验证限流、拒绝或降级行为,不发生无界内存增长。
  7. test_task_089_cleanup_invalid_input_rejected — 非法参数、缺少必填字段或格式错误时验证抛出项目约定异常及可识别错误消息。
  8. test_task_089_cleanup_dependency_failure_releases_resources — mock 数据库/Redis/RustFS/HTTP/文件依赖失败后验证错误可恢复,临时资源、锁和队列任务均释放。

TDD 流程

  1. 先写上述全部测试,运行项目测试命令,确认该功能测试 RED;如果测试一开始通过,必须先检查测试是否真正覆盖待实现行为。
  2. 实现功能,运行该任务定向测试和相关模块测试,确认 GREEN
  3. 执行 lint/format、编译或前端构建检查,确保没有新增错误。
  4. 完成资源释放、异常路径和兼容性验证后创建该任务对应 commit。

验证方法

  • npm run build 通过;涉及页面的任务执行对应 Playwright/E2E 用例。
  • 检查浏览器 Network、Performance、Memory 面板,确认轮询请求无重复风暴、终态后停止、缓存有界。
  • 重点观察:frontend-vue 的任务轮询、响应缓存、队列状态、构建拆包和页面 E2E 交付验证中的功能结果正确,且 CPU、堆内存、GC、数据库/对象存储调用次数和临时磁盘占用没有超过任务设定上限。

任务 90:为进度接口增加断网、超时、服务恢复和重复响应测试

所属模块:前端轮询、缓存、构建与交付验收 依赖89 预估耗时:8-15 分钟(写测试 + 实现 + 自测)

功能点要求

  • 围绕“为进度接口增加断网、超时、服务恢复和重复响应测试”实现一个独立、可验证的功能点,不扩大到同模块其他未完成任务。
  • 输入、输出、异常和资源上限必须明确;空输入、单元素、最大允许值和超限值必须有确定行为。
  • 成功路径必须保留现有业务语义、幂等性和兼容字段;失败路径必须释放临时文件、连接、锁、线程任务和未引用对象。
  • 实现范围限定在 frontend-vue 的任务轮询、响应缓存、队列状态、构建拆包和页面 E2E 交付验证。

测试用例(必须先写,确认 RED

  1. test_task_090_progress_normal_default_path — 使用正常输入验证“为进度接口增加断网、超时、服务恢复和重复响应测试”的默认成功路径和主输出。
  2. test_task_090_progress_normal_multiple_items — 使用多个任务、行、chunk 或页面状态验证批量场景下结果不丢失且顺序稳定。
  3. test_task_090_progress_normal_repeated_operation_is_idempotent — 重复执行同一输入,验证不会产生重复记录、重复对象、重复请求或重复 UI 状态。
  4. test_task_090_progress_boundary_empty_input — 空集合、空字符串或无可处理数据时验证返回空结果/安全跳过,不创建无效资源。
  5. test_task_090_progress_boundary_single_item — 单任务、单行、单图片或单页面状态时验证不依赖批量路径且结果正确。
  6. test_task_090_progress_boundary_limit_and_overflow — 达到最大配置值以及超过最大值时验证限流、拒绝或降级行为,不发生无界内存增长。
  7. test_task_090_progress_invalid_input_rejected — 非法参数、缺少必填字段或格式错误时验证抛出项目约定异常及可识别错误消息。
  8. test_task_090_progress_dependency_failure_releases_resources — mock 数据库/Redis/RustFS/HTTP/文件依赖失败后验证错误可恢复,临时资源、锁和队列任务均释放。

TDD 流程

  1. 先写上述全部测试,运行项目测试命令,确认该功能测试 RED;如果测试一开始通过,必须先检查测试是否真正覆盖待实现行为。
  2. 实现功能,运行该任务定向测试和相关模块测试,确认 GREEN
  3. 执行 lint/format、编译或前端构建检查,确保没有新增错误。
  4. 完成资源释放、异常路径和兼容性验证后创建该任务对应 commit。

验证方法

  • npm run build 通过;涉及页面的任务执行对应 Playwright/E2E 用例。
  • 检查浏览器 Network、Performance、Memory 面板,确认轮询请求无重复风暴、终态后停止、缓存有界。
  • 重点观察:frontend-vue 的任务轮询、响应缓存、队列状态、构建拆包和页面 E2E 交付验证中的功能结果正确,且 CPU、堆内存、GC、数据库/对象存储调用次数和临时磁盘占用没有超过任务设定上限。

任务 91:按页面拆分 Element Plus 与公共业务 chunk

所属模块:前端轮询、缓存、构建与交付验收 依赖90 预估耗时:8-15 分钟(写测试 + 实现 + 自测)

功能点要求

  • 围绕“按页面拆分 Element Plus 与公共业务 chunk”实现一个独立、可验证的功能点,不扩大到同模块其他未完成任务。
  • 输入、输出、异常和资源上限必须明确;空输入、单元素、最大允许值和超限值必须有确定行为。
  • 成功路径必须保留现有业务语义、幂等性和兼容字段;失败路径必须释放临时文件、连接、锁、线程任务和未引用对象。
  • 实现范围限定在 frontend-vue 的任务轮询、响应缓存、队列状态、构建拆包和页面 E2E 交付验证。

测试用例(必须先写,确认 RED

  1. test_task_091_chunk_normal_default_path — 使用正常输入验证“按页面拆分 Element Plus 与公共业务 chunk”的默认成功路径和主输出。
  2. test_task_091_chunk_normal_multiple_items — 使用多个任务、行、chunk 或页面状态验证批量场景下结果不丢失且顺序稳定。
  3. test_task_091_chunk_normal_repeated_operation_is_idempotent — 重复执行同一输入,验证不会产生重复记录、重复对象、重复请求或重复 UI 状态。
  4. test_task_091_chunk_boundary_empty_input — 空集合、空字符串或无可处理数据时验证返回空结果/安全跳过,不创建无效资源。
  5. test_task_091_chunk_boundary_single_item — 单任务、单行、单图片或单页面状态时验证不依赖批量路径且结果正确。
  6. test_task_091_chunk_boundary_limit_and_overflow — 达到最大配置值以及超过最大值时验证限流、拒绝或降级行为,不发生无界内存增长。
  7. test_task_091_chunk_invalid_input_rejected — 非法参数、缺少必填字段或格式错误时验证抛出项目约定异常及可识别错误消息。
  8. test_task_091_chunk_dependency_failure_releases_resources — mock 数据库/Redis/RustFS/HTTP/文件依赖失败后验证错误可恢复,临时资源、锁和队列任务均释放。

TDD 流程

  1. 先写上述全部测试,运行项目测试命令,确认该功能测试 RED;如果测试一开始通过,必须先检查测试是否真正覆盖待实现行为。
  2. 实现功能,运行该任务定向测试和相关模块测试,确认 GREEN
  3. 执行 lint/format、编译或前端构建检查,确保没有新增错误。
  4. 完成资源释放、异常路径和兼容性验证后创建该任务对应 commit。

验证方法

  • npm run build 通过;涉及页面的任务执行对应 Playwright/E2E 用例。
  • 检查浏览器 Network、Performance、Memory 面板,确认轮询请求无重复风暴、终态后停止、缓存有界。
  • 重点观察:frontend-vue 的任务轮询、响应缓存、队列状态、构建拆包和页面 E2E 交付验证中的功能结果正确,且 CPU、堆内存、GC、数据库/对象存储调用次数和临时磁盘占用没有超过任务设定上限。

任务 92:配置 Vite manualChunks 并比较各页面首屏传输大小

所属模块:前端轮询、缓存、构建与交付验收 依赖91 预估耗时:8-15 分钟(写测试 + 实现 + 自测)

功能点要求

  • 围绕“配置 Vite manualChunks 并比较各页面首屏传输大小”实现一个独立、可验证的功能点,不扩大到同模块其他未完成任务。
  • 输入、输出、异常和资源上限必须明确;空输入、单元素、最大允许值和超限值必须有确定行为。
  • 成功路径必须保留现有业务语义、幂等性和兼容字段;失败路径必须释放临时文件、连接、锁、线程任务和未引用对象。
  • 实现范围限定在 frontend-vue 的任务轮询、响应缓存、队列状态、构建拆包和页面 E2E 交付验证。

测试用例(必须先写,确认 RED

  1. test_task_092_chunk_normal_default_path — 使用正常输入验证“配置 Vite manualChunks 并比较各页面首屏传输大小”的默认成功路径和主输出。
  2. test_task_092_chunk_normal_multiple_items — 使用多个任务、行、chunk 或页面状态验证批量场景下结果不丢失且顺序稳定。
  3. test_task_092_chunk_normal_repeated_operation_is_idempotent — 重复执行同一输入,验证不会产生重复记录、重复对象、重复请求或重复 UI 状态。
  4. test_task_092_chunk_boundary_empty_input — 空集合、空字符串或无可处理数据时验证返回空结果/安全跳过,不创建无效资源。
  5. test_task_092_chunk_boundary_single_item — 单任务、单行、单图片或单页面状态时验证不依赖批量路径且结果正确。
  6. test_task_092_chunk_boundary_limit_and_overflow — 达到最大配置值以及超过最大值时验证限流、拒绝或降级行为,不发生无界内存增长。
  7. test_task_092_chunk_invalid_input_rejected — 非法参数、缺少必填字段或格式错误时验证抛出项目约定异常及可识别错误消息。
  8. test_task_092_chunk_dependency_failure_releases_resources — mock 数据库/Redis/RustFS/HTTP/文件依赖失败后验证错误可恢复,临时资源、锁和队列任务均释放。

TDD 流程

  1. 先写上述全部测试,运行项目测试命令,确认该功能测试 RED;如果测试一开始通过,必须先检查测试是否真正覆盖待实现行为。
  2. 实现功能,运行该任务定向测试和相关模块测试,确认 GREEN
  3. 执行 lint/format、编译或前端构建检查,确保没有新增错误。
  4. 完成资源释放、异常路径和兼容性验证后创建该任务对应 commit。

验证方法

  • npm run build 通过;涉及页面的任务执行对应 Playwright/E2E 用例。
  • 检查浏览器 Network、Performance、Memory 面板,确认轮询请求无重复风暴、终态后停止、缓存有界。
  • 重点观察:frontend-vue 的任务轮询、响应缓存、队列状态、构建拆包和页面 E2E 交付验证中的功能结果正确,且 CPU、堆内存、GC、数据库/对象存储调用次数和临时磁盘占用没有超过任务设定上限。

任务 93:补充 Similar ASIN、店铺抓取和采集数据页面的 E2E 核心路径

所属模块:前端轮询、缓存、构建与交付验收 依赖92 预估耗时:8-15 分钟(写测试 + 实现 + 自测)

功能点要求

  • 围绕“补充 Similar ASIN、店铺抓取和采集数据页面的 E2E 核心路径”实现一个独立、可验证的功能点,不扩大到同模块其他未完成任务。
  • 输入、输出、异常和资源上限必须明确;空输入、单元素、最大允许值和超限值必须有确定行为。
  • 成功路径必须保留现有业务语义、幂等性和兼容字段;失败路径必须释放临时文件、连接、锁、线程任务和未引用对象。
  • 实现范围限定在 frontend-vue 的任务轮询、响应缓存、队列状态、构建拆包和页面 E2E 交付验证。

测试用例(必须先写,确认 RED

  1. test_task_093_collect_asin_e2e_normal_default_path — 使用正常输入验证“补充 Similar ASIN、店铺抓取和采集数据页面的 E2E 核心路径”的默认成功路径和主输出。
  2. test_task_093_collect_asin_e2e_normal_multiple_items — 使用多个任务、行、chunk 或页面状态验证批量场景下结果不丢失且顺序稳定。
  3. test_task_093_collect_asin_e2e_normal_repeated_operation_is_idempotent — 重复执行同一输入,验证不会产生重复记录、重复对象、重复请求或重复 UI 状态。
  4. test_task_093_collect_asin_e2e_boundary_empty_input — 空集合、空字符串或无可处理数据时验证返回空结果/安全跳过,不创建无效资源。
  5. test_task_093_collect_asin_e2e_boundary_single_item — 单任务、单行、单图片或单页面状态时验证不依赖批量路径且结果正确。
  6. test_task_093_collect_asin_e2e_boundary_limit_and_overflow — 达到最大配置值以及超过最大值时验证限流、拒绝或降级行为,不发生无界内存增长。
  7. test_task_093_collect_asin_e2e_invalid_input_rejected — 非法参数、缺少必填字段或格式错误时验证抛出项目约定异常及可识别错误消息。
  8. test_task_093_collect_asin_e2e_dependency_failure_releases_resources — mock 数据库/Redis/RustFS/HTTP/文件依赖失败后验证错误可恢复,临时资源、锁和队列任务均释放。

TDD 流程

  1. 先写上述全部测试,运行项目测试命令,确认该功能测试 RED;如果测试一开始通过,必须先检查测试是否真正覆盖待实现行为。
  2. 实现功能,运行该任务定向测试和相关模块测试,确认 GREEN
  3. 执行 lint/format、编译或前端构建检查,确保没有新增错误。
  4. 完成资源释放、异常路径和兼容性验证后创建该任务对应 commit。

验证方法

  • npm run build 通过;涉及页面的任务执行对应 Playwright/E2E 用例。
  • 检查浏览器 Network、Performance、Memory 面板,确认轮询请求无重复风暴、终态后停止、缓存有界。
  • 重点观察:frontend-vue 的任务轮询、响应缓存、队列状态、构建拆包和页面 E2E 交付验证中的功能结果正确,且 CPU、堆内存、GC、数据库/对象存储调用次数和临时磁盘占用没有超过任务设定上限。

任务 94:补充移动端与桌面端响应式页面验收截图

所属模块:前端轮询、缓存、构建与交付验收 依赖93 预估耗时:8-15 分钟(写测试 + 实现 + 自测)

功能点要求

  • 围绕“补充移动端与桌面端响应式页面验收截图”实现一个独立、可验证的功能点,不扩大到同模块其他未完成任务。
  • 输入、输出、异常和资源上限必须明确;空输入、单元素、最大允许值和超限值必须有确定行为。
  • 成功路径必须保留现有业务语义、幂等性和兼容字段;失败路径必须释放临时文件、连接、锁、线程任务和未引用对象。
  • 实现范围限定在 frontend-vue 的任务轮询、响应缓存、队列状态、构建拆包和页面 E2E 交付验证。

测试用例(必须先写,确认 RED

  1. test_task_094_task_normal_default_path — 使用正常输入验证“补充移动端与桌面端响应式页面验收截图”的默认成功路径和主输出。
  2. test_task_094_task_normal_multiple_items — 使用多个任务、行、chunk 或页面状态验证批量场景下结果不丢失且顺序稳定。
  3. test_task_094_task_normal_repeated_operation_is_idempotent — 重复执行同一输入,验证不会产生重复记录、重复对象、重复请求或重复 UI 状态。
  4. test_task_094_task_boundary_empty_input — 空集合、空字符串或无可处理数据时验证返回空结果/安全跳过,不创建无效资源。
  5. test_task_094_task_boundary_single_item — 单任务、单行、单图片或单页面状态时验证不依赖批量路径且结果正确。
  6. test_task_094_task_boundary_limit_and_overflow — 达到最大配置值以及超过最大值时验证限流、拒绝或降级行为,不发生无界内存增长。
  7. test_task_094_task_invalid_input_rejected — 非法参数、缺少必填字段或格式错误时验证抛出项目约定异常及可识别错误消息。
  8. test_task_094_task_dependency_failure_releases_resources — mock 数据库/Redis/RustFS/HTTP/文件依赖失败后验证错误可恢复,临时资源、锁和队列任务均释放。

TDD 流程

  1. 先写上述全部测试,运行项目测试命令,确认该功能测试 RED;如果测试一开始通过,必须先检查测试是否真正覆盖待实现行为。
  2. 实现功能,运行该任务定向测试和相关模块测试,确认 GREEN
  3. 执行 lint/format、编译或前端构建检查,确保没有新增错误。
  4. 完成资源释放、异常路径和兼容性验证后创建该任务对应 commit。

验证方法

  • npm run build 通过;涉及页面的任务执行对应 Playwright/E2E 用例。
  • 检查浏览器 Network、Performance、Memory 面板,确认轮询请求无重复风暴、终态后停止、缓存有界。
  • 重点观察:frontend-vue 的任务轮询、响应缓存、队列状态、构建拆包和页面 E2E 交付验证中的功能结果正确,且 CPU、堆内存、GC、数据库/对象存储调用次数和临时磁盘占用没有超过任务设定上限。

任务 95:补充深色主题、错误提示、重试和终态刷新验收

所属模块:前端轮询、缓存、构建与交付验收 依赖94 预估耗时:8-15 分钟(写测试 + 实现 + 自测)

功能点要求

  • 围绕“补充深色主题、错误提示、重试和终态刷新验收”实现一个独立、可验证的功能点,不扩大到同模块其他未完成任务。
  • 输入、输出、异常和资源上限必须明确;空输入、单元素、最大允许值和超限值必须有确定行为。
  • 成功路径必须保留现有业务语义、幂等性和兼容字段;失败路径必须释放临时文件、连接、锁、线程任务和未引用对象。
  • 实现范围限定在 frontend-vue 的任务轮询、响应缓存、队列状态、构建拆包和页面 E2E 交付验证。

测试用例(必须先写,确认 RED

  1. test_task_095_task_normal_default_path — 使用正常输入验证“补充深色主题、错误提示、重试和终态刷新验收”的默认成功路径和主输出。
  2. test_task_095_task_normal_multiple_items — 使用多个任务、行、chunk 或页面状态验证批量场景下结果不丢失且顺序稳定。
  3. test_task_095_task_normal_repeated_operation_is_idempotent — 重复执行同一输入,验证不会产生重复记录、重复对象、重复请求或重复 UI 状态。
  4. test_task_095_task_boundary_empty_input — 空集合、空字符串或无可处理数据时验证返回空结果/安全跳过,不创建无效资源。
  5. test_task_095_task_boundary_single_item — 单任务、单行、单图片或单页面状态时验证不依赖批量路径且结果正确。
  6. test_task_095_task_boundary_limit_and_overflow — 达到最大配置值以及超过最大值时验证限流、拒绝或降级行为,不发生无界内存增长。
  7. test_task_095_task_invalid_input_rejected — 非法参数、缺少必填字段或格式错误时验证抛出项目约定异常及可识别错误消息。
  8. test_task_095_task_dependency_failure_releases_resources — mock 数据库/Redis/RustFS/HTTP/文件依赖失败后验证错误可恢复,临时资源、锁和队列任务均释放。

TDD 流程

  1. 先写上述全部测试,运行项目测试命令,确认该功能测试 RED;如果测试一开始通过,必须先检查测试是否真正覆盖待实现行为。
  2. 实现功能,运行该任务定向测试和相关模块测试,确认 GREEN
  3. 执行 lint/format、编译或前端构建检查,确保没有新增错误。
  4. 完成资源释放、异常路径和兼容性验证后创建该任务对应 commit。

验证方法

  • npm run build 通过;涉及页面的任务执行对应 Playwright/E2E 用例。
  • 检查浏览器 Network、Performance、Memory 面板,确认轮询请求无重复风暴、终态后停止、缓存有界。
  • 重点观察:frontend-vue 的任务轮询、响应缓存、队列状态、构建拆包和页面 E2E 交付验证中的功能结果正确,且 CPU、堆内存、GC、数据库/对象存储调用次数和临时磁盘占用没有超过任务设定上限。

任务 96:建立 Java/Python/Vue 三端统一的 API 字段兼容检查

所属模块:前端轮询、缓存、构建与交付验收 依赖95 预估耗时:8-15 分钟(写测试 + 实现 + 自测)

功能点要求

  • 围绕“建立 Java/Python/Vue 三端统一的 API 字段兼容检查”实现一个独立、可验证的功能点,不扩大到同模块其他未完成任务。
  • 输入、输出、异常和资源上限必须明确;空输入、单元素、最大允许值和超限值必须有确定行为。
  • 成功路径必须保留现有业务语义、幂等性和兼容字段;失败路径必须释放临时文件、连接、锁、线程任务和未引用对象。
  • 实现范围限定在 frontend-vue 的任务轮询、响应缓存、队列状态、构建拆包和页面 E2E 交付验证。

测试用例(必须先写,确认 RED

  1. test_task_096_task_normal_default_path — 使用正常输入验证“建立 Java/Python/Vue 三端统一的 API 字段兼容检查”的默认成功路径和主输出。
  2. test_task_096_task_normal_multiple_items — 使用多个任务、行、chunk 或页面状态验证批量场景下结果不丢失且顺序稳定。
  3. test_task_096_task_normal_repeated_operation_is_idempotent — 重复执行同一输入,验证不会产生重复记录、重复对象、重复请求或重复 UI 状态。
  4. test_task_096_task_boundary_empty_input — 空集合、空字符串或无可处理数据时验证返回空结果/安全跳过,不创建无效资源。
  5. test_task_096_task_boundary_single_item — 单任务、单行、单图片或单页面状态时验证不依赖批量路径且结果正确。
  6. test_task_096_task_boundary_limit_and_overflow — 达到最大配置值以及超过最大值时验证限流、拒绝或降级行为,不发生无界内存增长。
  7. test_task_096_task_invalid_input_rejected — 非法参数、缺少必填字段或格式错误时验证抛出项目约定异常及可识别错误消息。
  8. test_task_096_task_dependency_failure_releases_resources — mock 数据库/Redis/RustFS/HTTP/文件依赖失败后验证错误可恢复,临时资源、锁和队列任务均释放。

TDD 流程

  1. 先写上述全部测试,运行项目测试命令,确认该功能测试 RED;如果测试一开始通过,必须先检查测试是否真正覆盖待实现行为。
  2. 实现功能,运行该任务定向测试和相关模块测试,确认 GREEN
  3. 执行 lint/format、编译或前端构建检查,确保没有新增错误。
  4. 完成资源释放、异常路径和兼容性验证后创建该任务对应 commit。

验证方法

  • npm run build 通过;涉及页面的任务执行对应 Playwright/E2E 用例。
  • 检查浏览器 Network、Performance、Memory 面板,确认轮询请求无重复风暴、终态后停止、缓存有界。
  • 重点观察:frontend-vue 的任务轮询、响应缓存、队列状态、构建拆包和页面 E2E 交付验证中的功能结果正确,且 CPU、堆内存、GC、数据库/对象存储调用次数和临时磁盘占用没有超过任务设定上限。

任务 97:执行 Java 全量测试、Python unittest、Vue 类型检查与构建

所属模块:前端轮询、缓存、构建与交付验收 依赖96 预估耗时:8-15 分钟(写测试 + 实现 + 自测)

功能点要求

  • 围绕“执行 Java 全量测试、Python unittest、Vue 类型检查与构建”实现一个独立、可验证的功能点,不扩大到同模块其他未完成任务。
  • 输入、输出、异常和资源上限必须明确;空输入、单元素、最大允许值和超限值必须有确定行为。
  • 成功路径必须保留现有业务语义、幂等性和兼容字段;失败路径必须释放临时文件、连接、锁、线程任务和未引用对象。
  • 实现范围限定在 frontend-vue 的任务轮询、响应缓存、队列状态、构建拆包和页面 E2E 交付验证。

测试用例(必须先写,确认 RED

  1. test_task_097_build_normal_default_path — 使用正常输入验证“执行 Java 全量测试、Python unittest、Vue 类型检查与构建”的默认成功路径和主输出。
  2. test_task_097_build_normal_multiple_items — 使用多个任务、行、chunk 或页面状态验证批量场景下结果不丢失且顺序稳定。
  3. test_task_097_build_normal_repeated_operation_is_idempotent — 重复执行同一输入,验证不会产生重复记录、重复对象、重复请求或重复 UI 状态。
  4. test_task_097_build_boundary_empty_input — 空集合、空字符串或无可处理数据时验证返回空结果/安全跳过,不创建无效资源。
  5. test_task_097_build_boundary_single_item — 单任务、单行、单图片或单页面状态时验证不依赖批量路径且结果正确。
  6. test_task_097_build_boundary_limit_and_overflow — 达到最大配置值以及超过最大值时验证限流、拒绝或降级行为,不发生无界内存增长。
  7. test_task_097_build_invalid_input_rejected — 非法参数、缺少必填字段或格式错误时验证抛出项目约定异常及可识别错误消息。
  8. test_task_097_build_dependency_failure_releases_resources — mock 数据库/Redis/RustFS/HTTP/文件依赖失败后验证错误可恢复,临时资源、锁和队列任务均释放。

TDD 流程

  1. 先写上述全部测试,运行项目测试命令,确认该功能测试 RED;如果测试一开始通过,必须先检查测试是否真正覆盖待实现行为。
  2. 实现功能,运行该任务定向测试和相关模块测试,确认 GREEN
  3. 执行 lint/format、编译或前端构建检查,确保没有新增错误。
  4. 完成资源释放、异常路径和兼容性验证后创建该任务对应 commit。

验证方法

  • npm run build 通过;涉及页面的任务执行对应 Playwright/E2E 用例。
  • 检查浏览器 Network、Performance、Memory 面板,确认轮询请求无重复风暴、终态后停止、缓存有界。
  • 重点观察:frontend-vue 的任务轮询、响应缓存、队列状态、构建拆包和页面 E2E 交付验证中的功能结果正确,且 CPU、堆内存、GC、数据库/对象存储调用次数和临时磁盘占用没有超过任务设定上限。

任务 98:执行真实启动、健康检查、核心请求和外部依赖调用验证

所属模块:前端轮询、缓存、构建与交付验收 依赖97 预估耗时:8-15 分钟(写测试 + 实现 + 自测)

功能点要求

  • 围绕“执行真实启动、健康检查、核心请求和外部依赖调用验证”实现一个独立、可验证的功能点,不扩大到同模块其他未完成任务。
  • 输入、输出、异常和资源上限必须明确;空输入、单元素、最大允许值和超限值必须有确定行为。
  • 成功路径必须保留现有业务语义、幂等性和兼容字段;失败路径必须释放临时文件、连接、锁、线程任务和未引用对象。
  • 实现范围限定在 frontend-vue 的任务轮询、响应缓存、队列状态、构建拆包和页面 E2E 交付验证。

测试用例(必须先写,确认 RED

  1. test_task_098_task_normal_default_path — 使用正常输入验证“执行真实启动、健康检查、核心请求和外部依赖调用验证”的默认成功路径和主输出。
  2. test_task_098_task_normal_multiple_items — 使用多个任务、行、chunk 或页面状态验证批量场景下结果不丢失且顺序稳定。
  3. test_task_098_task_normal_repeated_operation_is_idempotent — 重复执行同一输入,验证不会产生重复记录、重复对象、重复请求或重复 UI 状态。
  4. test_task_098_task_boundary_empty_input — 空集合、空字符串或无可处理数据时验证返回空结果/安全跳过,不创建无效资源。
  5. test_task_098_task_boundary_single_item — 单任务、单行、单图片或单页面状态时验证不依赖批量路径且结果正确。
  6. test_task_098_task_boundary_limit_and_overflow — 达到最大配置值以及超过最大值时验证限流、拒绝或降级行为,不发生无界内存增长。
  7. test_task_098_task_invalid_input_rejected — 非法参数、缺少必填字段或格式错误时验证抛出项目约定异常及可识别错误消息。
  8. test_task_098_task_dependency_failure_releases_resources — mock 数据库/Redis/RustFS/HTTP/文件依赖失败后验证错误可恢复,临时资源、锁和队列任务均释放。

TDD 流程

  1. 先写上述全部测试,运行项目测试命令,确认该功能测试 RED;如果测试一开始通过,必须先检查测试是否真正覆盖待实现行为。
  2. 实现功能,运行该任务定向测试和相关模块测试,确认 GREEN
  3. 执行 lint/format、编译或前端构建检查,确保没有新增错误。
  4. 完成资源释放、异常路径和兼容性验证后创建该任务对应 commit。

验证方法

  • npm run build 通过;涉及页面的任务执行对应 Playwright/E2E 用例。
  • 检查浏览器 Network、Performance、Memory 面板,确认轮询请求无重复风暴、终态后停止、缓存有界。
  • 重点观察:frontend-vue 的任务轮询、响应缓存、队列状态、构建拆包和页面 E2E 交付验证中的功能结果正确,且 CPU、堆内存、GC、数据库/对象存储调用次数和临时磁盘占用没有超过任务设定上限。

任务 99:执行全链路压测并记录 CPU、内存、GC、DB、Redis、RustFS、网络结果

所属模块:前端轮询、缓存、构建与交付验收 依赖98 预估耗时:8-15 分钟(写测试 + 实现 + 自测)

功能点要求

  • 围绕“执行全链路压测并记录 CPU、内存、GC、DB、Redis、RustFS、网络结果”实现一个独立、可验证的功能点,不扩大到同模块其他未完成任务。
  • 输入、输出、异常和资源上限必须明确;空输入、单元素、最大允许值和超限值必须有确定行为。
  • 成功路径必须保留现有业务语义、幂等性和兼容字段;失败路径必须释放临时文件、连接、锁、线程任务和未引用对象。
  • 实现范围限定在 frontend-vue 的任务轮询、响应缓存、队列状态、构建拆包和页面 E2E 交付验证。

测试用例(必须先写,确认 RED

  1. test_task_099_rustfs_normal_default_path — 使用正常输入验证“执行全链路压测并记录 CPU、内存、GC、DB、Redis、RustFS、网络结果”的默认成功路径和主输出。
  2. test_task_099_rustfs_normal_multiple_items — 使用多个任务、行、chunk 或页面状态验证批量场景下结果不丢失且顺序稳定。
  3. test_task_099_rustfs_normal_repeated_operation_is_idempotent — 重复执行同一输入,验证不会产生重复记录、重复对象、重复请求或重复 UI 状态。
  4. test_task_099_rustfs_boundary_empty_input — 空集合、空字符串或无可处理数据时验证返回空结果/安全跳过,不创建无效资源。
  5. test_task_099_rustfs_boundary_single_item — 单任务、单行、单图片或单页面状态时验证不依赖批量路径且结果正确。
  6. test_task_099_rustfs_boundary_limit_and_overflow — 达到最大配置值以及超过最大值时验证限流、拒绝或降级行为,不发生无界内存增长。
  7. test_task_099_rustfs_invalid_input_rejected — 非法参数、缺少必填字段或格式错误时验证抛出项目约定异常及可识别错误消息。
  8. test_task_099_rustfs_dependency_failure_releases_resources — mock 数据库/Redis/RustFS/HTTP/文件依赖失败后验证错误可恢复,临时资源、锁和队列任务均释放。

TDD 流程

  1. 先写上述全部测试,运行项目测试命令,确认该功能测试 RED;如果测试一开始通过,必须先检查测试是否真正覆盖待实现行为。
  2. 实现功能,运行该任务定向测试和相关模块测试,确认 GREEN
  3. 执行 lint/format、编译或前端构建检查,确保没有新增错误。
  4. 完成资源释放、异常路径和兼容性验证后创建该任务对应 commit。

验证方法

  • npm run build 通过;涉及页面的任务执行对应 Playwright/E2E 用例。
  • 检查浏览器 Network、Performance、Memory 面板,确认轮询请求无重复风暴、终态后停止、缓存有界。
  • 重点观察:frontend-vue 的任务轮询、响应缓存、队列状态、构建拆包和页面 E2E 交付验证中的功能结果正确,且 CPU、堆内存、GC、数据库/对象存储调用次数和临时磁盘占用没有超过任务设定上限。

任务 100:完成发布前回滚演练、git commit 对应关系检查和交付清单

所属模块:前端轮询、缓存、构建与交付验收 依赖99 预估耗时:8-15 分钟(写测试 + 实现 + 自测)

功能点要求

  • 围绕“完成发布前回滚演练、git commit 对应关系检查和交付清单”实现一个独立、可验证的功能点,不扩大到同模块其他未完成任务。
  • 输入、输出、异常和资源上限必须明确;空输入、单元素、最大允许值和超限值必须有确定行为。
  • 成功路径必须保留现有业务语义、幂等性和兼容字段;失败路径必须释放临时文件、连接、锁、线程任务和未引用对象。
  • 实现范围限定在 frontend-vue 的任务轮询、响应缓存、队列状态、构建拆包和页面 E2E 交付验证。

测试用例(必须先写,确认 RED

  1. test_task_100_task_normal_default_path — 使用正常输入验证“完成发布前回滚演练、git commit 对应关系检查和交付清单”的默认成功路径和主输出。
  2. test_task_100_task_normal_multiple_items — 使用多个任务、行、chunk 或页面状态验证批量场景下结果不丢失且顺序稳定。
  3. test_task_100_task_normal_repeated_operation_is_idempotent — 重复执行同一输入,验证不会产生重复记录、重复对象、重复请求或重复 UI 状态。
  4. test_task_100_task_boundary_empty_input — 空集合、空字符串或无可处理数据时验证返回空结果/安全跳过,不创建无效资源。
  5. test_task_100_task_boundary_single_item — 单任务、单行、单图片或单页面状态时验证不依赖批量路径且结果正确。
  6. test_task_100_task_boundary_limit_and_overflow — 达到最大配置值以及超过最大值时验证限流、拒绝或降级行为,不发生无界内存增长。
  7. test_task_100_task_invalid_input_rejected — 非法参数、缺少必填字段或格式错误时验证抛出项目约定异常及可识别错误消息。
  8. test_task_100_task_dependency_failure_releases_resources — mock 数据库/Redis/RustFS/HTTP/文件依赖失败后验证错误可恢复,临时资源、锁和队列任务均释放。

TDD 流程

  1. 先写上述全部测试,运行项目测试命令,确认该功能测试 RED;如果测试一开始通过,必须先检查测试是否真正覆盖待实现行为。
  2. 实现功能,运行该任务定向测试和相关模块测试,确认 GREEN
  3. 执行 lint/format、编译或前端构建检查,确保没有新增错误。
  4. 完成资源释放、异常路径和兼容性验证后创建该任务对应 commit。

验证方法

  • npm run build 通过;涉及页面的任务执行对应 Playwright/E2E 用例。
  • 检查浏览器 Network、Performance、Memory 面板,确认轮询请求无重复风暴、终态后停止、缓存有界。
  • 重点观察:frontend-vue 的任务轮询、响应缓存、队列状态、构建拆包和页面 E2E 交付验证中的功能结果正确,且 CPU、堆内存、GC、数据库/对象存储调用次数和临时磁盘占用没有超过任务设定上限。

模块完成 Gate

  • 20 个任务全部有对应 commit,任务状态均更新为 done 前不得开始下一个模块。
  • 运行模块定向测试、项目全量测试和 lint/format;真实依赖调用、异常降级和资源释放均有记录。
  • 运行模块对应的性能基准,记录吞吐、P95/P99 延迟、峰值堆、GC、CPU、DB QPS、Redis/RustFS QPS 和临时磁盘。

全局收尾 Gate

以下验证必须在任务 100 完成后按顺序执行,任一项失败都不能将计划标记为完成:

  1. 使用项目实际启动命令启动 Java 服务,并通过健康检查端点。
  2. 启动 Python 后端并确认核心管理入口可访问。
  3. 访问 Similar ASIN、店铺数据抓取和采集数据页面,确认标题、输入控件和任务区域存在。
  4. 使用真实最小文件完成一次解析、任务创建、任务执行和结果下载。
  5. 使用多样化输入验证关键业务逻辑不是固定模板或输入纯回显。
  6. 验证数据库、Redis、RustFS、RocketMQ 和外部 HTTP 服务在对应路径确实发生调用。
  7. 验证非法输入、依赖不可用、超时、断网和重复回传有明确错误或降级行为。
  8. 验证任务取消、页面关闭、服务重启和 owner 路由后不会残留锁、线程、timer 或临时文件。
  9. 运行 Java 全量测试并确认全绿。
  10. 运行 Python 测试并确认全绿。
  11. 运行 Vue 类型检查和生产构建并确认无错误。
  12. 运行 Java、Python 和前端 lint/format 检查并确认零错误。
  13. 使用 Playwright 完成桌面端页面可访问和关键交互路径验证。
  14. 使用 Playwright 验证断网、恢复、错误提示和重试行为。
  15. 如果页面支持主题切换,验证深色/浅色主题状态发生正确变化。
  16. 保存 Desktop 1280x800 与 Mobile 375x812 的响应式验收截图到项目约定目录。
  17. 执行接口字段一致性检查,确认 Java、Python、Vue 三端命名和状态值一致。
  18. 执行 git log 检查 1-100 每个任务均有对应 commit,且工作树状态符合交付要求。
  19. 最后执行 python check_progress.py,仅当输出 all tasks done 且退出码为 0 时,才允许宣布计划完成。