Files
cmautobuy/docs/task/267-AI规格返回后先选尺码再核对完整组合.md
T
2026-08-18 14:18:21 +08:00

66 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.
# #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 设备验证长尺码列表、完整/不完整“已选”摘要及按需颜色兜底;未执行真实下单或付款。