缺陷:同一颜色卡片重复无障碍节点导致精确选中误判(CG85,关联 #243) #244

Open
opened 2026-09-08 18:04:18 +08:00 by ila · 1 comment
Owner

来源与目标

2026-09-08 用户确认最小补丁方案并要求“建工单,做,然后安装到192.168.0.9:43829”。关联 #243,但不混入入口打不开问题。

代码与现场事实

基线 ec4802d / Agent 0.9.61。CG85 第二次已打开面板;同一颜色卡片容器/图片文字尾部为199,目标文字节点为19,均 selected=true。服务端精确目标为文字节点原值。解析器按原文形成多个选项,isExactSpecSelected 先发现非目标已选而返回false。树仅内存读取,未保存原始树/截图。

范围与非目标

仅 Android 颜色选中状态确认的局部补丁、合成节点单测、版本绑定与构建安装。不修改通用解析器、目标规范化、入口/滚动/尺码选择/地址/价格/下单;不删19/199,不模糊匹配、不增加点击。

实施方案

目标颜色完整精确命中且已选中时,仅将有明确父子链和独立卡片边界的同卡片容器/图片已选节点排除为重复表达。卡片需可点击、非滚动并位于规格区域;不跨越滚动容器,不以整个面板或位置相近证明同卡片。两个独立目标、不同卡片冲突、目标未选中、结构歧义仍沿用拒绝。非本例情况沿用已有判断。

依赖与设计

#243 已实现作为基线,独立分支;不与其余工单并行改相关文件。恢复既有选中确认,无UI/API变化无需原型;设计证据为同卡片合成结构及反例。

验收与测试

同卡片19/199、容器/图片重复通过;不同卡片19/199、两个独立目标、目标未选中、不可判断边界、滚动祖先均不得合并;正常单选及现有Android回归通过,assembleDebug通过。安装前核对设备在线与无活动采购,覆盖安装保留数据、回读版本。安装授权不包含自动重试/真实下单,CG85业务结果待用户验证。禁止支付。

文档影响

实现后更新Business-Rules-and-Glossary的精确选中同卡片限定例外,线上回读后sync与sync --check,提交镜像,不建任务快照。

风险与状态

不宣称零回归;条件不明时拒绝,保留单独回退能力。开始实施,提交推送回写后保持待验收,未经用户验收不关闭。Gitea MCP不可用,回退项目安全配置凭据的API,不输出凭据。

## 来源与目标 2026-09-08 用户确认最小补丁方案并要求“建工单,做,然后安装到192.168.0.9:43829”。关联 #243,但不混入入口打不开问题。 ## 代码与现场事实 基线 ec4802d / Agent 0.9.61。CG85 第二次已打开面板;同一颜色卡片容器/图片文字尾部为199,目标文字节点为19,均 selected=true。服务端精确目标为文字节点原值。解析器按原文形成多个选项,isExactSpecSelected 先发现非目标已选而返回false。树仅内存读取,未保存原始树/截图。 ## 范围与非目标 仅 Android 颜色选中状态确认的局部补丁、合成节点单测、版本绑定与构建安装。不修改通用解析器、目标规范化、入口/滚动/尺码选择/地址/价格/下单;不删19/199,不模糊匹配、不增加点击。 ## 实施方案 目标颜色完整精确命中且已选中时,仅将有明确父子链和独立卡片边界的同卡片容器/图片已选节点排除为重复表达。卡片需可点击、非滚动并位于规格区域;不跨越滚动容器,不以整个面板或位置相近证明同卡片。两个独立目标、不同卡片冲突、目标未选中、结构歧义仍沿用拒绝。非本例情况沿用已有判断。 ## 依赖与设计 #243 已实现作为基线,独立分支;不与其余工单并行改相关文件。恢复既有选中确认,无UI/API变化无需原型;设计证据为同卡片合成结构及反例。 ## 验收与测试 同卡片19/199、容器/图片重复通过;不同卡片19/199、两个独立目标、目标未选中、不可判断边界、滚动祖先均不得合并;正常单选及现有Android回归通过,assembleDebug通过。安装前核对设备在线与无活动采购,覆盖安装保留数据、回读版本。安装授权不包含自动重试/真实下单,CG85业务结果待用户验证。禁止支付。 ## 文档影响 实现后更新Business-Rules-and-Glossary的精确选中同卡片限定例外,线上回读后sync与sync --check,提交镜像,不建任务快照。 ## 风险与状态 不宣称零回归;条件不明时拒绝,保留单独回退能力。开始实施,提交推送回写后保持待验收,未经用户验收不关闭。Gitea MCP不可用,回退项目安全配置凭据的API,不输出凭据。
Author
Owner

实现与安装完成,待验收

实现93aab6a,基线ec4802d,分支fix/244-selected-card-duplicates已推送,未合并main。
仅颜色存在已选冲突时使用同卡片判据:目标完整精确且自身选中,独立ViewGroup卡片与滚动父边界明确,只排除容器/图片重复。不同卡片/不同文字、多个目标、未选中目标、结构不明仍拒绝。不改规格数字、解析器、入口、尺码、地址、价格或下单,不增加点击。
新增7项结构单测、1项执行器集成回归;完整Android单测338项,0失败;assembleDebug和diff --check通过。覆盖跨卡片同名被解析器去重的反例。
APK 0.9.62/75,SHA256 9da286eb30d9cadc41829edc1f3a60208de3918935e1fe5cfe6f0d17db2b555f。
按用户授权覆盖安装192.168.0.9:43829;安装前在线、线上运行采集/采购均0,install -r Success。回读0.9.62/75,lastUpdateTime 2026-09-08 18:07:18。保留数据,未主动采购/修改地址/下单/支付。CG85业务效果待用户验证。
Business-Rules-and-Glossary在线更新回读后,一次sync和一次sync --check通过;其他非本单同步镜像保留未提交,不覆盖原工作区用户改动。未导出任务快照、未更新Server或规则。工单保持待验收,不关闭。镜像提交:66e0bdf

## 实现与安装完成,待验收 实现93aab6a,基线ec4802d,分支fix/244-selected-card-duplicates已推送,未合并main。 仅颜色存在已选冲突时使用同卡片判据:目标完整精确且自身选中,独立ViewGroup卡片与滚动父边界明确,只排除容器/图片重复。不同卡片/不同文字、多个目标、未选中目标、结构不明仍拒绝。不改规格数字、解析器、入口、尺码、地址、价格或下单,不增加点击。 新增7项结构单测、1项执行器集成回归;完整Android单测338项,0失败;assembleDebug和diff --check通过。覆盖跨卡片同名被解析器去重的反例。 APK 0.9.62/75,SHA256 9da286eb30d9cadc41829edc1f3a60208de3918935e1fe5cfe6f0d17db2b555f。 按用户授权覆盖安装192.168.0.9:43829;安装前在线、线上运行采集/采购均0,install -r Success。回读0.9.62/75,lastUpdateTime 2026-09-08 18:07:18。保留数据,未主动采购/修改地址/下单/支付。CG85业务效果待用户验证。 Business-Rules-and-Glossary在线更新回读后,一次sync和一次sync --check通过;其他非本单同步镜像保留未提交,不覆盖原工作区用户改动。未导出任务快照、未更新Server或规则。工单保持待验收,不关闭。镜像提交:66e0bdf
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: OPC/goauto#244