From 233ff16d418f2d28e7af6a3ff6ee0e42bfc16e54 Mon Sep 17 00:00:00 2001 From: chengma Date: Tue, 18 Aug 2026 14:18:21 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E5=BD=92=E6=A1=A3=E4=BB=BB=E5=8A=A1=20?= =?UTF-8?q?#267?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../267-AI规格返回后先选尺码再核对完整组合.md | 65 +++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 docs/task/267-AI规格返回后先选尺码再核对完整组合.md diff --git a/docs/task/267-AI规格返回后先选尺码再核对完整组合.md b/docs/task/267-AI规格返回后先选尺码再核对完整组合.md new file mode 100644 index 0000000..a4f00af --- /dev/null +++ b/docs/task/267-AI规格返回后先选尺码再核对完整组合.md @@ -0,0 +1,65 @@ +# #267 Client:AI 规格返回后先选尺码再核对完整组合 + +- 工单号:#267 +- 类型:缺陷修订 +- 父级大工单:#96(关联 #1) +- 所属 MVP:#253 +- 状态:待验收 +- 日期:2026-08-18 +- Gitea: + +## 背景与目标 + +#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 设备验证长尺码列表、完整/不完整“已选”摘要及按需颜色兜底;未执行真实下单或付款。