3.3 KiB
3.3 KiB
260 修复 AI 规格返回后的繁简体颜色复核误判
- 类型:缺陷
- 父级大工单:#96
- 所属 MVP / 版本:#253 采购运行时 AI 规格纠偏闭环
- 状态:已完成
- 日期:2026-08-18
- Gitea 工单:http://ilaer.eicp.net:8418/chengma/cmautobuy/issues/260
背景与目标
任务颜色为繁体、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.pyC:/Python310/python.exe -m pytest -q test/test_pdd_u2_purchase_adapter.py test/test_purchase_task_service.py --disable-warningsC:/Python310/python.exe -m pytest -q testC:/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修正规格返回后的繁简体复核。