#266 通过“AI 返回后先恢复颜色区域”消除了颜色节点滑出控件树造成的误判,但会在已经位于尺码区域时强制回到颜色区域,之后重新遍历尺码并再次查找返回尺码,步骤重复。任务要求的颜色、目标尺码、该颜色下候选快照和 Admin 返回结果已经记录;当前是否仍在规格面板可以由页面类型、尺码候选、数量和确认控件共同判断,不应把颜色节点当前可见作为规格面板存在的必要条件。
仍须区分历史记录与当前状态:记录“曾经选中颜色”不能代替提交前的最新规格复核。最终方案是在尺码区域复算候选、选择 AI 返回尺码,再从最新“已选”摘要一次核对颜色和尺码;摘要不完整时才恢复颜色区域兜底。任何无法确认都在不可逆阶段前停止。
client/src/pdd_u2_purchase_adapter.py
apply_resolved_size
order_confirmation
_restore_purchase_panel_color_region
PURCHASE_SPEC_CONTEXT_CHANGED
PURCHASE_PANEL_COLOR_REGION_NOT_FOUND
PurchaseSpecCandidateSnapshot
client/test/test_pdd_u2_purchase_adapter.py
docs/client/06-quality-security.md
预计修改文件:
从 client/ 目录执行:
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
真机验收观察颜色选择、尺码候选遍历、AI 返回尺码选择和最终组合复核;若进入真实提交,仍须遵守单次提交门禁且绝不付款。
风险是把历史选中记录误当当前页面事实,或在同色不同尺码候选相同的商品上漏掉换色。实现必须在选择返回尺码后核对最新页面中的完整组合;摘要不足才执行颜色兜底,任何无强证据状态均停止。回退恢复 #266 的“先恢复颜色再复核”流程,不涉及数据迁移,绝不能通过删除颜色复核回退。
39c6258
233ff16
docs/task/267-AI规格返回后先选尺码再核对完整组合.md
OK
version.py=0.1.2
0.1.0
#267 已取代 #266 的强制先恢复颜色顺序;工单保持开启,待用户真机验收后关闭并同步父工单。
No dependencies set.
The note is not visible to the blocked user.
基本信息
要解决什么
#266 通过“AI 返回后先恢复颜色区域”消除了颜色节点滑出控件树造成的误判,但会在已经位于尺码区域时强制回到颜色区域,之后重新遍历尺码并再次查找返回尺码,步骤重复。任务要求的颜色、目标尺码、该颜色下候选快照和 Admin 返回结果已经记录;当前是否仍在规格面板可以由页面类型、尺码候选、数量和确认控件共同判断,不应把颜色节点当前可见作为规格面板存在的必要条件。
仍须区分历史记录与当前状态:记录“曾经选中颜色”不能代替提交前的最新规格复核。最终方案是在尺码区域复算候选、选择 AI 返回尺码,再从最新“已选”摘要一次核对颜色和尺码;摘要不完整时才恢复颜色区域兜底。任何无法确认都在不可逆阶段前停止。
做什么 / 不做什么
已确认的实现方案
client/src/pdd_u2_purchase_adapter.py的apply_resolved_size:order_confirmation,颜色节点无需在当前视口。_restore_purchase_panel_color_region,从最新尺码上下文选择 Admin 返回的原文尺码。_restore_purchase_panel_color_region,并用返回的最新 XML 兜底确认颜色。PURCHASE_SPEC_CONTEXT_CHANGED;恢复失败沿用PURCHASE_PANEL_COLOR_REGION_NOT_FOUND。所有失败都发生在不可逆标记之前。PurchaseSpecCandidateSnapshot、SQLite 规格解析请求/结果中的颜色、目标尺码、候选和实际采用尺码记录;这些记录用于一致性比对和审计,不单独作为当前页面证据。client/test/test_pdd_u2_purchase_adapter.py:覆盖完整摘要无需回到颜色、摘要缺失后一次兜底恢复、明确换色安全停止、候选变化不点击、返回尺码未确认安全停止。docs/client/06-quality-security.md。预计修改文件:
client/src/pdd_u2_purchase_adapter.pyclient/test/test_pdd_u2_purchase_adapter.pydocs/client/06-quality-security.md验收标准
验证方式
从
client/目录执行:真机验收观察颜色选择、尺码候选遍历、AI 返回尺码选择和最终组合复核;若进入真实提交,仍须遵守单次提交门禁且绝不付款。
风险和回退
风险是把历史选中记录误当当前页面事实,或在同色不同尺码候选相同的商品上漏掉换色。实现必须在选择返回尺码后核对最新页面中的完整组合;摘要不足才执行颜色兜底,任何无强证据状态均停止。回退恢复 #266 的“先恢复颜色再复核”流程,不涉及数据迁移,绝不能通过删除颜色复核回退。
实施完成,等待用户验收
39c6258233ff16docs/task/267-AI规格返回后先选尺码再核对完整组合.mdOK)version.py=0.1.2与旧测试期待0.1.0的基线差异,与 #267 无关#267 已取代 #266 的强制先恢复颜色顺序;工单保持开启,待用户真机验收后关闭并同步父工单。