Files
cmshoppe/docs/reviews/2026-06-29-T501-T504-acceptance.md
T

6.1 KiB
Raw Blame History

验收报告 · T-501 ~ T-504 · Phase 5 设置与收尾

  • 日期:2026-06-29
  • 范围:Codex 完成的 Phase 5——T-501 设置·AI 模型管理 UI、T-501b 角色与生成参数、T-501c Shopee 更新安全开关、T-502 满 9 张封面替换、T-503 敏感信息提示与脱敏、T-504 多账号并行/dry-run/运行日志
  • 评审方式:编译检查 + 单元测试(本机实跑逻辑层)+ 逐模块源码阅读 + 对照 docs/06-tasks.md 验收要点 + 对照 AGENTS.md 安全红线
  • 复核更新:2026-06-29 用户确认 T-504 已进入当前范围;Codex 已在 commit c9455c7 同步 AGENTS.md。
  • 结论:代码质量扎实,安全红线守住;原报告提出的范围拍板与 AGENTS.md 文档漂移已处理。当前剩余边界是 T-404 真实 Shopee 单条冒烟仍未执行。

一、验证方法与结果

Claude Code 初评环境执行:

python3 -m compileall -q app main.py tests     # exit 0
python3 -m unittest discover -s tests          # Ran 55 tests, OK (skipped=3)
  • 跑到的 55 项覆盖 db / appconfig / editor / prompts / ai / accounts 逻辑层,全绿。
  • ⚠️ Claude Code 评审环境 PySide6 / openpyxl 未安装,导致 test_gui、test_workers、test_excel 三个模块被整体 skip。这说明 Claude Code 环境未独立覆盖 GUI/Worker/Excel 测试。

Codex 复核环境补跑:

python -m compileall app main.py tests     # exit 0
python -m unittest discover -s tests       # Ran 112 tests, OK
  • GUI / Worker / Excel 用例在当前环境未 skip。
  • 本次复核不包含 T-404 真机 Shopee 提交;T-404 仍需单独执行。

二、逐任务核对

任务 结论 关键核对
T-501 设置·AI 模型管理 UI ✅ master-detail:模型下拉 + 新增/删除 + 详情(服务商/类别/api_type/模型ID/网址/密钥打码/连接超时)+ 测试连接;复用 T-005 后端;name 唯一;密钥本地明文存、UI 打码
T-501b 角色与生成参数 ✅ 标题/图片大模型下拉按类别过滤;分辨率 512/1k/2k/4k;返回超时随 resolution_timeouts 自动;并发/重试/jpg 质量/路径/端口持久化 config.json
T-501c Shopee 更新安全开关 ✅ 测试商品 ID、allow_real_submit、allow_cover_update、max_items_per_run、close_success_tab;真实提交与封面更新默认关;Tab③ 执行前 _update_safety_error 读取并拦截
T-502 满 9 张封面替换 ✅ 满 9 张时强制校验 old_cover_path 本地备份存在,缺失返回 OLD_COVER_BACKUP_MISSING 不删除线上图;删第一张 + 处理 Shopee 确认框 + 上传 + 拖首位;apply_task 已把 old_cover_path 传入 replace_cover
T-503 敏感信息提示与脱敏 ✅ 首次保存提示本地明文;UI 打码;sanitize_for_log 按字段名打码密钥;run_logs.options_json/summary_json 入库前均过 sanitize_for_log
T-504 多账号并行/dry-run/运行日志 ✅ 已确认 功能实现正确;用户已确认 T-504 进入当前范围,AGENTS.md 已同步。其他 V2 / V3 功能仍只记录不实现

三、做得好(安全关键点)

  1. ③ 更新前双重闸门:start_update 先 _update_safety_error 拦截(真实提交未开、超 max_items、未配/非测试商品、封面未开但任务含新封面),再 QMessageBox.question 确认且默认 No。
  2. dry-run 真的不提交:走 _preview_task,只写运行日志,不开 CDP、不点「更新」、不改任务状态;_update_safety_error(dry_run=True) 早返回 None,因为 dry-run 不触线上。
  3. apply 不误提交:apply_task 标题或封面任一失败即 return committed=False,不调用 click_update;Shopee 编辑器改动只在点「更新」时才提交线上,部分失败不会污染线上。
  4. 删满 9 张备份硬门槛:_validated_old_cover_backup 校验 os.path.exists,缺备份拒删,符合安全红线。
  5. 并行线程安全:计数器经 _record_outcome + _progress_lock 串行化;按 alias 分组并行。注意:并行能力是真实存在的,只要设置允许、max_items_per_run 调高且筛选结果包含多个 alias,就会按账号并行执行。

四、已处理的范围问题

原报告发现:T-504 把 V2 功能真做了,与 AGENTS.md 旧规则冲突。

  • 发现时,AGENTS.md 仍写着「V2(多账号并行、dry-run、运行日志)只记录不实现」。
  • 同时,docs/04-architecture.md、docs/05-coding-rules.md、docs/06-tasks.md 和 docs/current-state.md 已经承认 T-504 的实现;实际问题是 AGENTS.md 落后于任务看板和架构文档。
  • 用户已确认:承认 T-504 已进入当前范围。
  • Codex 已提交 c9455c7 docs: align T-504 scope in AGENTS,将 AGENTS.md 同步为:T-504 已接入的多账号并行、dry-run、运行日志属于当前范围,其他 V2 / V3 功能只记录不实现。

结论:T-504 范围决策已完成,不再需要回退。

五、文档漂移(已修复)

AGENTS.md L29 与 docs/05-coding-rules.md 的冲突已通过 commit c9455c7 修复。后续 agent 应按更新后的 AGENTS.md 执行:T-504 是当前范围内的已接入功能,其他 V2 / V3 不顺手实现。

六、待办 / 边界

  • ✅ T-404(真实 Shopee 单条冒烟)仍为 TODO,正确——安全开关刚落地,未上真机,不应扩大真实更新。
  • ⚠️ 真机冒烟前,整条线上提交路径仍未完成 T-404 真实验证。建议补验证时:先跑全量 unittest;T-404 严格走 Tab③ 二次确认 + ⑤ 安全开关,仅测试商品,默认先只测标题。
  • ⚠️ 多账号并行已进入当前范围,但真实提交前仍应保持默认串行,只有明确测试目标和账号准备充分时再开启并行。

七、总评

Phase 5 是合格交付:设置三件套、安全闸门、删满 9 张备份校验、脱敏、dry-run 不提交、apply 不误提交都按文档落地。原报告提出的两个必须处理项已经完成:T-504 范围已由用户确认,AGENTS.md 文档漂移已修复。当前下一步仍是 T-404,只在测试商品上做单条真实 Shopee 更新冒烟。