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

46 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 验收报告 · 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` 导入)。