From 588b352eacb0eb3545ece3d135c4683f4d12a51f Mon Sep 17 00:00:00 2001 From: chengma Date: Mon, 29 Jun 2026 14:49:06 +0800 Subject: [PATCH] docs: add phase 5 acceptance review --- .../2026-06-29-T501-T504-acceptance.md | 73 +++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 docs/reviews/2026-06-29-T501-T504-acceptance.md diff --git a/docs/reviews/2026-06-29-T501-T504-acceptance.md b/docs/reviews/2026-06-29-T501-T504-acceptance.md new file mode 100644 index 0000000..609471a --- /dev/null +++ b/docs/reviews/2026-06-29-T501-T504-acceptance.md @@ -0,0 +1,73 @@ +# 验收报告 · 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 初评环境执行: + +```bash +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 复核环境补跑: + +```bash +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 更新冒烟。