docs: 归档任务 #267

This commit is contained in:
chengma
2026-08-18 14:18:21 +08:00
parent 39c6258d24
commit 233ff16d41
@@ -0,0 +1,65 @@
# #267 Client:AI 规格返回后先选尺码再核对完整组合
- 工单号:#267
- 类型:缺陷修订
- 父级大工单:#96(关联 #1)
- 所属 MVP:#253
- 状态:待验收
- 日期:2026-08-18
- Gitea:<http://ilaer.eicp.net:8418/chengma/cmautobuy/issues/267>
## 背景与目标
#266 先恢复颜色区域再复核,能够避免颜色离屏误判,但会在已经进入尺码区域后重复返回颜色、重新遍历尺码。任务目标颜色、目标尺码、候选快照和 AI 结果虽然已经记录,但历史记录不能替代当前页面证据。本任务把复核调整为:保持尺码上下文复算候选并选择返回尺码,然后核对最新完整组合;只有颜色证据不足时才恢复颜色区域兜底。
## 最终方案
- AI 返回后先确认当前仍为规格确认页,颜色节点无需位于当前视口。
- 在当前规格面板重新完整读取尺码候选,并比对维度、候选原文和快照哈希。
- 候选一致时,不预先恢复颜色区域,直接选择 AI 返回的 PDD 尺码原文。
- 选择后重新确认仍在规格面板,并确认返回尺码明确选中。
- 最新控件树同时确认目标颜色时直接完成;颜色摘要不完整时才有界恢复颜色区域,并使用恢复后的最新控件树兜底确认。
- 页面变化、候选变化、尺码未选中、颜色无法恢复或无法确认均在不可逆阶段前停止。
- 原任务规格、候选快照、AI 结果和实际采用规格的持久化方式保持不变。
与 #266 的差异:取消“AI 返回后必须先恢复颜色区域”,保留其有界颜色恢复能力作为最终组合复核的按需兜底。
## 改了哪些文件
- `client/src/pdd_u2_purchase_adapter.py`
- `client/test/test_pdd_u2_purchase_adapter.py`
- `docs/client/06-quality-security.md`
实现提交:`39c6258`
## 验收结果
- [x] 当前视口只有尺码区域时,可以继续确认规格面板并复算候选。
- [x] 候选一致后直接选择 AI 返回尺码,不因颜色节点离屏提前失败。
- [x] 完整“已选”摘要确认颜色和尺码时,不恢复颜色区域。
- [x] 尺码已确认但颜色摘要不足时,才执行有界颜色兜底。
- [x] 颜色区域无法恢复时,已经选中的尺码不会导致流程继续到不可逆阶段。
- [x] 选择返回尺码后再次确认页面类型、尺码和颜色。
- [x] 候选变化、页面变化和规格证据不足均安全停止。
## 测试
在 `client/` 目录执行:
```powershell
C:/Python310/python.exe -m py_compile src/pdd_u2_purchase_adapter.py
C:/Python310/python.exe -m pytest -q test/test_pdd_u2_purchase_adapter.py test/test_purchase_task_service.py
C:/Python310/python.exe -m pytest -q test
$env:QT_QPA_PLATFORM="offscreen"
C:/Python310/python.exe -c "from src.ui_main import MainWindow; from PyQt5.QtWidgets import QApplication; app=QApplication([]); w=MainWindow(); print('OK'); app.quit()"
Remove-Item Env:QT_QPA_PLATFORM
```
结果:
- 语法检查通过。
- 定向测试 86 项全部通过。
- Client 全量测试 530 项通过、2 项失败;失败是工作区现有 `src/version.py` 为 `0.1.2`,两项旧测试仍期待 `0.1.0`,与本任务无关。
- 离屏 UI 冒烟打印 `OK`。
未验证到的部分:未使用真实 Android 设备验证长尺码列表、完整/不完整“已选”摘要及按需颜色兜底;未执行真实下单或付款。