用户 2026-09-18:「agent回填还是失败,真机停留现场,你分析原因」。
回填结果:「等待订单列表加载超时,未完整扫描」,已检查 0。前一次为「返回后未识别全部订单列表」,同样已检查 0。checked++ 无条件执行,两次都证明没有任何一张订单卡片被打开过。
checked++
拿真机控件树(445 节点)逐条复算判据:
allTab()
label=="全部"
cards()
[0,588][1080,696]
根因:cardContext 含状态词「待收货」「待发货」,而状态词就长在卡片顶部的店铺行里(如 [924,618][1047,666]),与店铺 logo、店铺名同行。店铺行于是自己凑齐「有图 + 有 ≥4 字文本 + 有上下文词」三个条件;它比真卡片更深,「最小容器」规则把真卡片当祖先滤掉。店铺行里只有 logo 一张图,cardEntry 取面积最大的图仍然指向它,入口回到店铺名——#311 的前提因此也是错的,那条改动是在错误的容器上做优化。
cardContext
[924,618][1047,666]
cardEntry
换成仅用动作词复算,结果正确:
awaitOrders()
代价:完全没有动作按钮的卡片会被跳过。跳过是安全的,误点不是。
回退即还原 cardContext 与签名两处。
无长期文档影响:未改入口、配置、接口和状态机。
提交 92fa73d(deploy-main)。
92fa73d
真机回填能否完整跑完——待人工触发。
#311 的根因判断不成立:问题不在卡片内锚错了图,而在 cards() 返回的根本不是卡片。#313 的中间帧推断被三帧实测证伪,其签名改动已撤销。
状态:待验收。
No dependencies set.
The note is not visible to the blocked user.
原始需求
用户 2026-09-18:「agent回填还是失败,真机停留现场,你分析原因」。
事实(真机 192.168.0.173:38881,0.9.59,2026-09-18)
回填结果:「等待订单列表加载超时,未完整扫描」,已检查 0。前一次为「返回后未识别全部订单列表」,同样已检查 0。
checked++无条件执行,两次都证明没有任何一张订单卡片被打开过。拿真机控件树(445 节点)逐条复算判据:
allTab()的全部前置在真实树上通过:无风险词、无「订单编号」、「我的订单」存在、label=="全部"唯一、与禁词无几何重叠。cards():返回 4 个容器,全部是店铺行,例如[0,588][1080,696]高 108,其中唯一的图面积 3600(60×60 店铺 logo),没有商品图。根因:
cardContext含状态词「待收货」「待发货」,而状态词就长在卡片顶部的店铺行里(如[924,618][1047,666]),与店铺 logo、店铺名同行。店铺行于是自己凑齐「有图 + 有 ≥4 字文本 + 有上下文词」三个条件;它比真卡片更深,「最小容器」规则把真卡片当祖先滤掉。店铺行里只有 logo 一张图,cardEntry取面积最大的图仍然指向它,入口回到店铺名——#311 的前提因此也是错的,那条改动是在错误的容器上做优化。换成仅用动作词复算,结果正确:
方案
cardContext去掉状态词「待发货」「待收货」「交易成功」,只保留动作词。动作词只出现在卡片底部按钮行,能同时包住店铺行与按钮行的容器才是真卡片。awaitOrders()的两处调用保留:把单帧不合格即中止改成有界重试,与该推断无关。代价:完全没有动作按钮的卡片会被跳过。跳过是安全的,误点不是。
验收
cardContext后相关用例必须变红。风险与回退
回退即还原
cardContext与签名两处。文档影响
无长期文档影响:未改入口、配置、接口和状态机。
实施
提交
92fa73d(deploy-main)。cardContext去掉状态词「待发货」「待收货」「交易成功」,只保留动作词。awaitOrders()稳定签名加的可见非零高度节点数;两处awaitOrders()调用保留。验证
cardContext,6 条用例变红(含新增的「店铺行不得被当作卡片」)。旧的平层夹具无法复现该缺陷,已一并修正。未验证
真机回填能否完整跑完——待人工触发。
更正
#311 的根因判断不成立:问题不在卡片内锚错了图,而在
cards()返回的根本不是卡片。#313 的中间帧推断被三帧实测证伪,其签名改动已撤销。状态:待验收。