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

3.4 KiB
Raw Blame History

#267 Client:AI 规格返回后先选尺码再核对完整组合

背景与目标

#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

验收结果

  • 当前视口只有尺码区域时,可以继续确认规格面板并复算候选。
  • 候选一致后直接选择 AI 返回尺码,不因颜色节点离屏提前失败。
  • 完整“已选”摘要确认颜色和尺码时,不恢复颜色区域。
  • 尺码已确认但颜色摘要不足时,才执行有界颜色兜底。
  • 颜色区域无法恢复时,已经选中的尺码不会导致流程继续到不可逆阶段。
  • 选择返回尺码后再次确认页面类型、尺码和颜色。
  • 候选变化、页面变化和规格证据不足均安全停止。

测试

在 client/ 目录执行:

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