From 052f51785bd3fcd3e60470b13b81eefec76417a3 Mon Sep 17 00:00:00 2001 From: ila <2+ila@noreply.git.ilapage.cn> Date: Fri, 21 Aug 2026 16:11:18 +0800 Subject: [PATCH] docs(#61): archive safe spec entry fix evidence --- ...B%E5%AE%89%E5%85%A8%E5%85%A5%E5%8F%A3.-.md | 49 +++++++++++++------ 1 file changed, 35 insertions(+), 14 deletions(-) diff --git a/Task-61-%E4%BF%AE%E5%A4%8D%E9%87%87%E8%B4%AD%E8%A7%84%E6%A0%BC%E6%8E%A2%E6%B5%8B%E6%9C%AA%E8%AF%86%E5%88%AB%E5%AE%89%E5%85%A8%E5%85%A5%E5%8F%A3.-.md b/Task-61-%E4%BF%AE%E5%A4%8D%E9%87%87%E8%B4%AD%E8%A7%84%E6%A0%BC%E6%8E%A2%E6%B5%8B%E6%9C%AA%E8%AF%86%E5%88%AB%E5%AE%89%E5%85%A8%E5%85%A5%E5%8F%A3.-.md index 1c4f64f..6a6ee6b 100644 --- a/Task-61-%E4%BF%AE%E5%A4%8D%E9%87%87%E8%B4%AD%E8%A7%84%E6%A0%BC%E6%8E%A2%E6%B5%8B%E6%9C%AA%E8%AF%86%E5%88%AB%E5%AE%89%E5%85%A8%E5%85%A5%E5%8F%A3.-.md +++ b/Task-61-%E4%BF%AE%E5%A4%8D%E9%87%87%E8%B4%AD%E8%A7%84%E6%A0%BC%E6%8E%A2%E6%B5%8B%E6%9C%AA%E8%AF%86%E5%88%AB%E5%AE%89%E5%85%A8%E5%85%A5%E5%8F%A3.-.md @@ -1,42 +1,63 @@ # 61 修复采购规格探测未识别安全入口 -- 类型:需求 / 缺陷 / 重构 -- 所属 Epic:# -- 所属 MVP / 版本:# -- 状态:待验收 / 已完成 +- 类型:缺陷修复 +- 所属 Epic:无 +- 所属 MVP / 版本:PDD 自动采购 MVP +- 状态:待用户验收 - 日期:2026-08-21 - Gitea 工单:https://git.ilapage.cn/OPC/goauto/issues/61 - Wiki 页面:Task-61-修复采购规格探测未识别安全入口 -- Wiki revision:见本地镜像头 ## 背景与目标 - +采购任务 CG-3、CG-4 在三星商品 `172119352488` 的第一趟规格探测中失败,错误为“没有找到商品规格入口”。旧默认规则把 `选择规格` 作为硬编码文字别名;Agent 一旦收到别名会改用页面原始文本扫描,绕过 PDD 语义解析。实际页面提供的是底部“快要抢光 免拼购买”安全入口,因此任务没有进入规格面板。 + +目标是在不扩大点击范围的前提下,使 Agent 能使用已确认的规格/购买语义入口开始规格探测;不得修改地址、创建订单或支付。 ## 最终方案 - +1. 默认正式采购规则移除 `openSpecPanel.textAliases`,由 Agent 使用 PDD 页面解析器给出的语义安全入口。 +2. 即使某个历史规则提供文字别名,Agent 也只会在已确认的规格入口和底部购买入口中按别名过滤;别名不能再把任意页面同名文字(例如商品评价)变成可点击入口。 +3. 新增单元测试覆盖底部“免拼购买”入口,以及“商品评价”别名不能绕过安全候选。 + +与建单方案一致;没有引入 OCR/VLM、原始控件树或截图持久化。 ## 修改文件 -- `<文件>`:<改动说明> +- `server/app/goauto/purchasecontract/default.go`:默认采购规则取消硬编码规格文字。 +- `server/app/goauto/purchasecontract/default_test.go`:锁定默认规则必须使用语义安全入口。 +- `android/app/src/main/java/cn/ilapage/goauto/agent/automation/PurchaseRehearsalExecutor.kt`:别名改为安全候选的交集过滤。 +- `android/app/src/test/java/cn/ilapage/goauto/agent/PurchaseRehearsalExecutorTest.kt`:覆盖安全底部购买入口与评价页防误点。 +- Wiki `Business-Rules-and-Glossary`、`Android-Agent-API-Contract`、`OnePlus-Real-Device-Acceptance`:记录行为边界与真机证据。 ## 验收结果 | 验收标准 | 结果 | |---|---| -| | 通过 / 未通过 | +| 默认规则不再把任意“选择规格”文字当作入口 | 通过(自动化测试) | +| 别名不能触发商品评价等非规格控件 | 通过(自动化测试) | +| 新规则可在三星进入规格面板并提交第一趟探测 | 通过:采购任务 5(CG-5)attempt 1 返回 `spec_probe_completed` | +| 不修改地址、不创建订单、不支付 | 通过:CG-5 没有订单号、下单时间或不可逆标记 | +| 用户最终验收 | 待确认 | + +CG-5 回传了 2 个颜色、8 个尺码以及两个颜色的 3112 分价格,随后按既有两趟流程进入 `spec_probe_pending`。其后因 #46 尚未实施,服务端不会自动处理繁简/单位差异的规格匹配;这不是本缺陷的规格入口失败。 ## 测试 -- 执行命令:`<命令>` -- 结果: -- **未验证部分**: +- 执行命令:`go test ./app/goauto/purchasecontract/... ./app/goauto/purchase/...` +- 结果:通过。 +- 执行命令:`.\\gradlew.bat testDebugUnitTest --tests cn.ilapage.goauto.agent.PurchaseRehearsalExecutorTest` +- 结果:通过。 +- 执行命令:`.\\gradlew.bat test assembleDebug` +- 结果:通过。 +- 真机:三星 SM-G9700 覆盖安装 Debug APK,启用无障碍服务后以新规则重试;第一趟规格探测成功。 +- **未验证部分**:未修改真实地址、未创建真实待付款订单、未支付;这些不属于本工单且需要独立人工授权。#46 的自动规格匹配尚未实施。 ## 遗留问题 - +- #46 的服务端“确定性规格标准化 → AI 兜底”尚未实施。当前 CG-5 因目标规格繁简/重量单位与 PDD 实际文字不同,保持在 `spec_probe_pending`,不会自动进入第二趟。 ## 相关提交 -- `<提交哈希>` <提交说明> +- `aebe80f` `fix(#61): use safe purchase spec entry` +- `5a94f4f` `docs(#61): record safe purchase spec entry` \ No newline at end of file