5ee3b62
PurchaseLiveAutomationTest
updateShippingAddress
phoneNodes
addressCards
tapTargets
预计修改:
android/app/src/main/java/cn/ilapage/goauto/agent/automation/PurchaseLiveAutomation.kt
android/app/src/test/java/cn/ilapage/goauto/agent/PurchaseLiveAutomationTest.kt
android/app/build.gradle.kts
地址修改和采购属于高风险流程。本单不增加下单能力,只修复地址入口唯一性解析;用户已明确授权实施。真实多地址保持 fail-closed,付款永久禁止。回退本单 Android 提交即可恢复旧逻辑。
当前环境无 Gitea MCP 工单工具,按规则回退项目配置的 Gitea API;凭据仅从忽略的 gitea.env 读取。
gitea.env
#229 实施完成,待人工验收。
实现:
PURCHASE_ADDRESS_ENTRY_AMBIGUOUS
phoneNodes/addressCards/tapTargets
代码:
fix/229-address-entry-dedup
c9aaade fix(agent): deduplicate address entry nodes (#229)
验证:
scripts/verify.ps1 -Component android
python dev_scripts/harness.py check --strict
git diff --check
0767D2B930D32913802A2F9996048FA87D58C8CB826C1DD444A5010B3856147A
192.168.0.173:41751
安全与未验证项:
CG94 在 Agent 0.9.51(64)仍失败。服务端结构化事实为 phoneNodes=2;addressCards=2;tapTargets=2:PDD 将视觉上的同一地址卡暴露为两套不同路径、不同可点击祖先的无障碍节点,v1 仅按祖先路径分组,仍会误判为两个地址。
phoneNodes=2;addressCards=2;tapTargets=2
v2 调整:
文档影响仍为:无长期规则/契约变化,只修复既有唯一地址入口的实现偏差,不更新 Wiki。
c9aaade
1f40a7f
0.9.52
实现结果:
11EFB5141AAD969397D5C07AA3777B7FB5BBDC16CA15C87652DFF5740C916420
未自动重试 CG94,未修改真实地址、未创建订单、未支付。请由用户手动重试同任务验收。无长期规则/契约变化,按工单方案跳过 Wiki 更新。无关工作区改动保持未动。
No dependencies set.
The note is not visible to the blocked user.
基本信息
依赖与并行
5ee3b62子项目影响
PurchaseLiveAutomationTest、Android 全量单测和 APK 构建原始需求
当前事实与根因
updateShippingAddress直接收集所有包含脱敏手机号的可见节点,只合并边界近乎完全重叠的节点;合并后数量大于 1 就判定地址入口歧义。目标与方案
phoneNodes、addressCards、tapTargets数量,不记录手机号、地址、控件树或截图。预计修改:
android/app/src/main/java/cn/ilapage/goauto/agent/automation/PurchaseLiveAutomation.ktandroid/app/src/test/java/cn/ilapage/goauto/agent/PurchaseLiveAutomationTest.ktandroid/app/build.gradle.kts做什么 / 不做什么
设计与原型门禁
文档影响
交付文档影响
任务记录
验收标准
风险和回退
地址修改和采购属于高风险流程。本单不增加下单能力,只修复地址入口唯一性解析;用户已明确授权实施。真实多地址保持 fail-closed,付款永久禁止。回退本单 Android 提交即可恢复旧逻辑。
工具说明
当前环境无 Gitea MCP 工单工具,按规则回退项目配置的 Gitea API;凭据仅从忽略的
gitea.env读取。#229 实施完成,待人工验收。
实现:
PURCHASE_ADDRESS_ENTRY_AMBIGUOUS,不点击、不修改地址、不创建订单。phoneNodes/addressCards/tapTargets数量,不记录手机号或原始控件树。代码:
fix/229-address-entry-dedupc9aaade fix(agent): deduplicate address entry nodes (#229)验证:
PurchaseLiveAutomationTest:通过;覆盖同卡重复节点归并、两个独立地址卡片安全失败。scripts/verify.ps1 -Component android:通过(Debug/Release 单测与 Debug APK 构建)。python dev_scripts/harness.py check --strict:通过。git diff --check:通过。0767D2B930D32913802A2F9996048FA87D58C8CB826C1DD444A5010B3856147A。192.168.0.173:41751,回读 0.9.51(64),GoAuto 无障碍服务仍启用。安全与未验证项:
v2 根因与方案更新(CG94 真机回归)
CG94 在 Agent 0.9.51(64)仍失败。服务端结构化事实为
phoneNodes=2;addressCards=2;tapTargets=2:PDD 将视觉上的同一地址卡暴露为两套不同路径、不同可点击祖先的无障碍节点,v1 仅按祖先路径分组,仍会误判为两个地址。v2 调整:
文档影响仍为:无长期规则/契约变化,只修复既有唯一地址入口的实现偏差,不更新 Wiki。
v2 实施完成,待验收
fix/229-address-entry-dedupc9aaade1f40a7f0.9.52(versionCode 65)实现结果:
PURCHASE_ADDRESS_ENTRY_AMBIGUOUS。验证:
PurchaseLiveAutomationTest定向测试通过(38 项),新增覆盖跨子树同语义归并、不同语义拒绝、路径漂移无手势降级。scripts/verify.ps1 -Component android通过:Debug/Release 单元测试与 Debug APK 构建成功。python dev_scripts/harness.py check --strict与git diff --check通过。11EFB5141AAD969397D5C07AA3777B7FB5BBDC16CA15C87652DFF5740C916420。192.168.0.173:41751,回读为 0.9.52(65),GoAuto 无障碍服务仍启用。未自动重试 CG94,未修改真实地址、未创建订单、未支付。请由用户手动重试同任务验收。无长期规则/契约变化,按工单方案跳过 Wiki 更新。无关工作区改动保持未动。