缺陷:采购入口点击未生效时商品页动态变化阻断安全兜底(CG82/CG85) #243

Open
opened 2026-09-08 17:37:55 +08:00 by ila · 3 comments
Owner

来源与目标

2026-09-08 用户要求按代码核对结果“建工单,做”。CG82、CG85 在设备 7 / Agent 0.9.60 / PDD 8.22.0 完成探测后,正式采购停留商品页,报 PURCHASE_SPEC_PANEL_EVIDENCE_NOT_MATCHED。规则快照 a4d97dee5155c01a156e945a7b139a0cca4163b8567236f9eebd93b484dfac41。

基线与根因

Android 基线 7ac1355(#238 已安装版本)。两阶段共用 openSpecPanel;首次点击非歧义失败也继续等待;整页结构变化一旦发生就置 changed=true,阻断一次手势兜底。CG85 日志候选16/17/18变化,缺所有面板强证据。首次点击未生效的底层原因尚未证实,不宣称已确定点击了发起拼单。

范围与方案

仅 Android 入口结果判断、脱敏日志和测试。保留面板识别规则;重新读取仍在相同包/Activity、合法商品上下文、没有面板/关闭/支付/订单异常信号且同一语义安全入口唯一时,允许一次重新定位后的受控手势兜底,即便整页其他节点变化。进入其他页面、弹层或入口变化时仍失败。点击与兜底日志只含枚举/数量/布尔,不含页面文本、坐标、订单、地址。失败分类区分仍在商品页未打开与未知面板。
不改选择规格、价格、地址、创建订单、采购状态机、服务端、规则快照或 UI。无原型需要:恢复既有入口能力,设计证据为代码分支和合成页面回归。

依赖与并行

基于 #238 分支独立工作区;无待完成阻塞,不并行修改相关入口。与 #241/#242 无关。

验收与验证

覆盖整页动态变化+点击失败/无效、一次手势成功/无效、入口消失/歧义、未知弹层/登录/支付拒绝,正常入口不额外点击。运行受影响 Android 单测与 APK 构建;CG82/CG85 真机完整采购仅在另获明确授权后验证。当前请求授权实现,不执行下单、安装、发布或付款。保留现有用户改动。

文档影响

实施后更新 Business-Rules-and-Glossary 的入口恢复边界,在线回读并 sync、sync --check,提交镜像。无需 API/数据库迁移。

状态

开始实施,完成后提交推送并回写,保持待验收不关闭。Gitea MCP 不可用,使用项目安全配置的 API 回退;不记录凭据。

## 来源与目标 2026-09-08 用户要求按代码核对结果“建工单,做”。CG82、CG85 在设备 7 / Agent 0.9.60 / PDD 8.22.0 完成探测后,正式采购停留商品页,报 PURCHASE_SPEC_PANEL_EVIDENCE_NOT_MATCHED。规则快照 a4d97dee5155c01a156e945a7b139a0cca4163b8567236f9eebd93b484dfac41。 ## 基线与根因 Android 基线 7ac1355(#238 已安装版本)。两阶段共用 openSpecPanel;首次点击非歧义失败也继续等待;整页结构变化一旦发生就置 changed=true,阻断一次手势兜底。CG85 日志候选16/17/18变化,缺所有面板强证据。首次点击未生效的底层原因尚未证实,不宣称已确定点击了发起拼单。 ## 范围与方案 仅 Android 入口结果判断、脱敏日志和测试。保留面板识别规则;重新读取仍在相同包/Activity、合法商品上下文、没有面板/关闭/支付/订单异常信号且同一语义安全入口唯一时,允许一次重新定位后的受控手势兜底,即便整页其他节点变化。进入其他页面、弹层或入口变化时仍失败。点击与兜底日志只含枚举/数量/布尔,不含页面文本、坐标、订单、地址。失败分类区分仍在商品页未打开与未知面板。 不改选择规格、价格、地址、创建订单、采购状态机、服务端、规则快照或 UI。无原型需要:恢复既有入口能力,设计证据为代码分支和合成页面回归。 ## 依赖与并行 基于 #238 分支独立工作区;无待完成阻塞,不并行修改相关入口。与 #241/#242 无关。 ## 验收与验证 覆盖整页动态变化+点击失败/无效、一次手势成功/无效、入口消失/歧义、未知弹层/登录/支付拒绝,正常入口不额外点击。运行受影响 Android 单测与 APK 构建;CG82/CG85 真机完整采购仅在另获明确授权后验证。当前请求授权实现,不执行下单、安装、发布或付款。保留现有用户改动。 ## 文档影响 实施后更新 Business-Rules-and-Glossary 的入口恢复边界,在线回读并 sync、sync --check,提交镜像。无需 API/数据库迁移。 ## 状态 开始实施,完成后提交推送并回写,保持待验收不关闭。Gitea MCP 不可用,使用项目安全配置的 API 回退;不记录凭据。
Author
Owner

实现完成,待验收

实现 ec8b14a,基于 #238 的 7ac1355 独立分支 fix/243-spec-entry-recovery;已提交推送,未合并 main。Android 0.9.61 / 74。

  • 保留强面板分类。点击等待后重新读取商品页面,要求包/Activity、非空标题、入口来源/语义不变,无关闭、数量、摘要、支付、订单等信号,显式/嵌套入口无歧义,才执行一次新定位手势;整页动画不再直接阻断恢复。既有底部入口最右选择规则不变。
  • 页面标题约束不等于 goods_id 回读;原导航复用逻辑未改。首次 ACTION_CLICK 失败的具体底层原因仍待真机新日志,不宣称已定位为发起拼单文字问题。
  • 新增入口来源、点击返回/原因、恢复拒绝/尝试/结果等脱敏标量日志,沿既有日志带 task/device/attempt/rule hash。
  • 330 项 Android 单元测试通过,0 失败;assembleDebug 通过。覆盖动态页+点击无效/失败/目标过期、一次兜底成功/无效、入口缺失/重复、Activity 变化、关闭/支付信号拒绝;原未知面板、正常点击、登录等回归通过。首次测试因新页面身份记录位置错误有6项失败,修正后完整重跑通过,不隐瞒首次失败。
  • APK android/app/build/outputs/apk/debug/app-debug.apk;SHA256 25ba2eaced2cc2d90665a4fef1ac0500bf6486cc505830829b34e06a0142b91f。
  • 未安装、未发布、未重启 Server、未修改采购任务或规则,未进行真机采购/地址变更/创建订单/支付。CG82、CG85 实际恢复效果待安装后单独授权验证。
  • Business-Rules-and-Glossary revision ec56c45a7fbcd9978e68d8e298e7cf6765a7d119 已在线回读;一次 sync 与 sync --check 通过,镜像提交 ec4802d 已推送。其他4份随同步更新的非本单镜像保留在独立工作区未提交;未覆盖原工作区用户改动。未导出任务快照。工单保持待验收,不关闭。
## 实现完成,待验收 实现 ec8b14a,基于 #238 的 7ac1355 独立分支 fix/243-spec-entry-recovery;已提交推送,未合并 main。Android 0.9.61 / 74。 - 保留强面板分类。点击等待后重新读取商品页面,要求包/Activity、非空标题、入口来源/语义不变,无关闭、数量、摘要、支付、订单等信号,显式/嵌套入口无歧义,才执行一次新定位手势;整页动画不再直接阻断恢复。既有底部入口最右选择规则不变。 - 页面标题约束不等于 goods_id 回读;原导航复用逻辑未改。首次 ACTION_CLICK 失败的具体底层原因仍待真机新日志,不宣称已定位为发起拼单文字问题。 - 新增入口来源、点击返回/原因、恢复拒绝/尝试/结果等脱敏标量日志,沿既有日志带 task/device/attempt/rule hash。 - 330 项 Android 单元测试通过,0 失败;assembleDebug 通过。覆盖动态页+点击无效/失败/目标过期、一次兜底成功/无效、入口缺失/重复、Activity 变化、关闭/支付信号拒绝;原未知面板、正常点击、登录等回归通过。首次测试因新页面身份记录位置错误有6项失败,修正后完整重跑通过,不隐瞒首次失败。 - APK android/app/build/outputs/apk/debug/app-debug.apk;SHA256 25ba2eaced2cc2d90665a4fef1ac0500bf6486cc505830829b34e06a0142b91f。 - 未安装、未发布、未重启 Server、未修改采购任务或规则,未进行真机采购/地址变更/创建订单/支付。CG82、CG85 实际恢复效果待安装后单独授权验证。 - Business-Rules-and-Glossary revision ec56c45a7fbcd9978e68d8e298e7cf6765a7d119 已在线回读;一次 sync 与 sync --check 通过,镜像提交 ec4802d 已推送。其他4份随同步更新的非本单镜像保留在独立工作区未提交;未覆盖原工作区用户改动。未导出任务快照。工单保持待验收,不关闭。
Author
Owner

2026-09-08 用户明确授权安装至 192.168.0.173:36805。安装前设备在线、旧版0.9.60/73,线上运行中采集和采购数量均为0。覆盖安装 #243 APK,SHA256 25ba2eaced2cc2d90665a4fef1ac0500bf6486cc505830829b34e06a0142b91f;adb install -r 返回 Success,安装后回读0.9.61/versionCode74,lastUpdateTime 17:48:06。未卸载/清数据,未主动启动任务、修改地址、创建订单或付款。仅确认安装成功,CG82/CG85采购效果尚未真机验收。工单保持待验收。

2026-09-08 用户明确授权安装至 192.168.0.173:36805。安装前设备在线、旧版0.9.60/73,线上运行中采集和采购数量均为0。覆盖安装 #243 APK,SHA256 25ba2eaced2cc2d90665a4fef1ac0500bf6486cc505830829b34e06a0142b91f;adb install -r 返回 Success,安装后回读0.9.61/versionCode74,lastUpdateTime 17:48:06。未卸载/清数据,未主动启动任务、修改地址、创建订单或付款。仅确认安装成功,CG82/CG85采购效果尚未真机验收。工单保持待验收。
Author
Owner

2026-09-08 按用户明确授权,将 0.9.61 覆盖安装到 192.168.0.9:43829(设备7)。安装前设备在线,线上采集/采购运行数均0;APK SHA256 25ba2eaced2cc2d90665a4fef1ac0500bf6486cc505830829b34e06a0142b91f。adb install -r 返回 Success,包管理器回读0.9.61/versionCode74,lastUpdateTime 17:56:08。保留数据,未主动触发采购或其他任务。此前CG82成功、CG81入口失败与CG85选中确认失败均发生于该手机0.9.60,不作为本修复验收证据。新版本真实采购效果仍待用户验证,工单保持待验收。

2026-09-08 按用户明确授权,将 0.9.61 覆盖安装到 192.168.0.9:43829(设备7)。安装前设备在线,线上采集/采购运行数均0;APK SHA256 25ba2eaced2cc2d90665a4fef1ac0500bf6486cc505830829b34e06a0142b91f。adb install -r 返回 Success,包管理器回读0.9.61/versionCode74,lastUpdateTime 17:56:08。保留数据,未主动触发采购或其他任务。此前CG82成功、CG81入口失败与CG85选中确认失败均发生于该手机0.9.60,不作为本修复验收证据。新版本真实采购效果仍待用户验证,工单保持待验收。
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: OPC/goauto#243