Files
cmshoppe/docs/reviews/2026-06-27-T104-T106-acceptance.md
T
2026-06-27 10:42:57 +08:00

3.4 KiB
Raw Blame History

验收报告 · T-104 ~ T-106(PySide6 GUI + 账号④ + 快捷方式)

  • 日期:2026-06-27
  • 范围:Codex 完成的 Phase 1 收尾——T-104 五 Tab 骨架、T-104b worker 基座、T-105 账号管理 Tab④、T-106 桌面快捷方式
  • 评审方式:编译检查 + 单元测试 + 逐模块源码阅读 + 对照 docs/06-tasks.md 验收要点
  • 结论:通过。按文档完成,信号/线程纪律到位,质量偏上。

一、验证方法与结果

python3 -m compileall app main.py        # OK
python3 -m unittest discover -s tests    # Ran 33 tests, OK (skipped=4)

4 个 skip 仍为 app.excel / app.prompts 的契约测试(模块尚未实现自动跳过,实现后即校验),属预期。

二、逐任务核对

任务 结论 关键核对
T-104 五 Tab 骨架 ✅ QMainWindow+QTabWidget,5 Tab 按 ①导入采集 ②AI生成 ③更新shopee ④账号管理 ⑤设置 顺序;currentChanged→状态栏;启动不阻塞;PySide6 缺失时优雅降级(main() 打印提示返回 1,不崩)
T-104b worker 基座 ✅ 6 个信号 progress/row_updated/log/failed/finished/cancelled 全在;cancel/is_cancelled/should_cancel;BaseWorker 是纯 QObject、execute() 不碰 QWidget;run_worker 走 moveToThread+生命周期 deleteLater 收尾
T-105 Tab④ 账号管理 ✅ 增删改入库+建目录(ensure_user_data_dir);密码 EchoMode.Password 打码、列表不显示密码;登录检测走 worker(不卡 UI);不自动登录/不注入密码(launch_for_login 只拼参启动);防误点样式 min-width:128 / min-height:34 / margin / 选中加粗高亮 / hover
T-106 桌面快捷方式 ✅ .lnk 经 PowerShell WScript.Shell 生成,Arguments 含该账号 --remote-debugging-port + --user-data-dir,双击进对应账号;文件名做了非法字符清洗

三、值得肯定

  1. 失败信号双发不重复刷新:worker 异常时 failed + finished({ok:False}) 都发,_on_login_check_finished 用 ok is False and not alias 提前 return,避免双刷/误判。
  2. 线程纪律:detect_login 在 worker 线程里调 db.update_account,而 db 是每线程独立连接,无跨线程共享 connection 问题。
  3. 路径预览即时反馈:AccountDialog 别名改动实时算 slug/数据目录,编辑态保留原目录不漂移。
  4. 端口唯一性校验:_assert_debug_port_available 防止两个账号撞同一个调试端口。

四、小问题(不影响验收)

  • AccountsTab._update_button_state 按"有无选中"启用按钮,但无账号/未登录的 ① 执行引导保护属 T-205 范围,这里不算缺。
  • create_shortcut / launch_for_login / detect_login 依赖真实 Windows + PowerShell + Chrome,本轮全是 mock 测试,逻辑可信但未在真机生成过 .lnk / 真起过 Chrome。

五、待办 / 边界

  • ⚠️ 与 T-103 同一性质:账号启动登录、快捷方式、登录检测尚未真机冒烟。
  • 建议:接 Phase 2(T-201/T-203 要真连 CDP)之前,把 editor.py 真机冒烟 + 账号④走一遍(新增→启动→人工登录→检测→生成快捷方式)一起验一次,确认 Windows 侧 PowerShell/Chrome 链路通。

六、总评

合格偏上的工程交付:按文档、守纪律、有测试、降级与边界处理克制不臆造。可推进 Phase 2(T-201 app/excel.py 导入)。