Files
cmautobuy/docs/task/260-修复AI规格返回后的繁简体颜色复核误判.md
2026-08-18 09:13:40 +08:00

3.3 KiB

260 修复 AI 规格返回后的繁简体颜色复核误判

背景与目标

任务颜色为繁体、PDD App 同一颜色显示为简体时,初次选择颜色会按既有繁简归一化规则成功;但等待 Admin 返回规格解析结果后,Client 使用逐字字符串重新检查颜色,误报 PURCHASE_SPEC_CONTEXT_CHANGED。目标是在不削弱页面、选中状态和候选快照安全检查的前提下消除该误报。

最终方案

  • 采购 Adapter 的已选规格判断统一使用既有 normalize_spec_text 比较键,原始规格文字仍用于任务、审计和点击。
  • 规格节点或祖先仍必须具有真实 selected/checked 属性;节点滑出屏幕时仍只接受“已选/已選”摘要作为证据,不进行模糊匹配。
  • AI 返回后继续先检查规格确认页,再检查颜色选中状态,最后重新采集并比较候选哈希与候选原文。
  • 页面离开和颜色不再选中继续使用稳定错误码 PURCHASE_SPEC_CONTEXT_CHANGED,但返回不同消息及最小诊断字段,便于定位。
  • 未修改数据库、Admin 接口、任务规格原文、不可逆标记或真实采购门禁。

改了哪些

  • client/src/pdd_u2_purchase_adapter.py:统一繁简体选中复核,并拆分页面与颜色上下文诊断。
  • client/test/test_pdd_u2_purchase_adapter.py:增加任务繁体/PDD 简体成功,以及页面或颜色真正变化时安全停止的测试。

验收结果

验收标准 结果
唯一繁简等价颜色仍明确选中时不再误报上下文变化 通过
页面离开规格确认页时仍安全失败并记录页面诊断 通过
颜色真正未选中或切换时仍安全失败并记录颜色诊断 通过
候选列表、哈希和返回原文复核保持不变 通过
数量、价格、地址、不可逆标记和单次提交门禁未放宽 通过
不保存原始 XML、个人数据或凭据,不自动付款 通过

测试

  • 执行的命令:
    • C:/Python310/python.exe -m py_compile src/pdd_u2_purchase_adapter.py test/test_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 --disable-warnings
    • C:/Python310/python.exe -m pytest -q test
    • C:/Python310/python.exe -m pytest -q test --disable-warnings --ignore=test/test_update_service.py --ignore=test/test_update_ui_event.py
    • 设置 QT_QPA_PLATFORM=offscreen 后创建并关闭 MainWindow。
  • 结果:定向测试 80 项通过;Client 全量测试 502 项通过、2 项既有版本号断言失败;排除两个既有版本号测试文件后 482 项通过;语法检查和离屏 UI 冒烟通过。
  • 没验证到的部分:没有在真实 Android 设备上重新执行 cg44 的完整规格解析后采购链路;没有触发提交订单或付款。

遗留问题

  • 工作区已有 client/src/version.py 为 0.1.2,两个旧测试仍固定期待 0.1.0;该问题不属于 #260。

相关提交

  • 752d420 修正规格返回后的繁简体复核。