Files
cmshoppe/docs/reviews/2026-06-27-T104-T106-acceptance.md
T

46 lines
3.4 KiB
Markdown
Raw Normal View History

2026-06-27 10:42:57 +08:00
# 验收报告 · 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` 导入)。