shopee_product
RULE_ACTION_FAILED
spec_probe
purchase/service.go
PurchaseRehearsalExecutor.applyPostAction
openSpecPanel.swipeAfter = {count:2, direction:up, durationMs:500, intervalMs:1000}
driver.swipePurchase
currentScreen().specPanelType == NON_SCROLLABLE_CONFIRMATION
GoAutoAccessibilityService.swipePurchase
swipeAfter
specPanelType
error_message
[panel=…,scrollables=0]
probeSpecs
selectSpec
swipePurchase
applyPostAction
开始实施 #348,基于 origin/main 7a2c2d1,分支 fix/348-reveal-swipe。仅改 Android 揭示滑动结果区分、脱敏诊断及对应测试,不调整探测/规格选择/最终复核,也不修改规则或 Server/Web。本轮完成单测、APK 构建、提交推送后待验收;不安装真机、不创建订单、不发布线上。Gitea MCP 不可用,回退 Gitea API。
基线 main 7a2c2d1;分支 fix/348-reveal-swipe 已提交推送。源码 6550b9f,Wiki 镜像 fcb7dad。未合并 main、未发布 Server/Admin、未安装 APK、未执行真实采购或支付。
7a2c2d1
fix/348-reveal-swipe
6550b9f
fcb7dad
.\gradlew.bat test assembleDebug --console=plain
git diff --check
Android 0.9.64 / versionCode 77,Manifest 经 aapt 回读。 本地:D:/OPC/goauto-348/android/app/build/outputs/apk/debug/app-debug.apk 大小6400321字节;SHA256 fe2f696c9847f42225311efc52a7b1ce21bbcdc967281e46c3762c0e8c1da1e0。
D:/OPC/goauto-348/android/app/build/outputs/apk/debug/app-debug.apk
fe2f696c9847f42225311efc52a7b1ce21bbcdc967281e46c3762c0e8c1da1e0
88ed799e92f64a73b3bd9472ab6c0b06fa080b37
5d9810286d76c52a90902c27a5316f39164f36e0
18260ec2725eaeb4dcf2543422d58ee4ede8b981
harness.py sync
sync --check
真机及实际商品回归尚未验证。需另行授权安装与只读规格探测验证;验证不得提交订单或付款。工单保持待验收,不关闭。
用户授权合并 main 并发布最新版 APK 到线上 Admin(122.228.200.167:9527),供其他设备自行更新;不强制安装、不执行采购。已完成无冲突合并并推送 main:bf06b2d500c9a875ea8aa9aa07b56275434c096d,合并树与已验证 fcb7dad 完全一致。APK 0.9.64(77)SHA256 与构建证据一致。使用现有管理员浏览器会话走版本管理上传与设为当前入口。Gitea MCP 本会话不可用,评论回退配置的 Gitea API。
No dependencies set.
The note is not visible to the blocked user.
来源与原始需求摘要
前置依赖
当前事实(2026-09-29 核对,线上 122.228.200.167)
shopee_product1249 → PDD 商品 8903(goods_id 942187429431),PDD 规格仅 2 个颜色(黑色九分微喇裤、黑色长款微喇裤)、7 个尺码。RULE_ACTION_FAILED规则要求的有限滑动失败(约 3.8s)spec_probe(purchase/service.go:确认过的映射只作指导,不跳过探测),因此同规格次日仍须探测,属预期。PurchaseRehearsalExecutor.applyPostAction——采购规则openSpecPanel.swipeAfter = {count:2, direction:up, durationMs:500, intervalMs:1000};driver.swipePurchase返回 false 即失败。唯一例外:currentScreen().specPanelType == NON_SCROLLABLE_CONFIRMATION时跳过。GoAutoAccessibilityService.swipePurchase在界面没有任何可见可滚动节点时返回 false。spec_probe,「有限滑动失败」仅出现在该商品(3 次),其他商品为 0。目标
swipeAfter(打开规格面板后的揭示滑动)在界面无任何可见可滚动节点时视为无需滑动(跳过并记录诊断),不再判为RULE_ACTION_FAILED。有可滚动节点但手势派发失败/被取消时仍按失败处理。specPanelType、可见可滚动节点数量、是否为揭示滑动;失败时把关键诊断带入error_message(如[panel=…,scrollables=0]),便于服务端直接定位。probeSpecs、selectSpec及最终规格复核的任何校验。非目标
spec_probe流程与映射策略。方案(初步,实施时确认)
swipePurchase的调用路径区分「无可滚动目标」与「手势失败」两种结果(例如返回枚举或新增查询方法),applyPostAction对「无可滚动目标」跳过剩余次数并记诊断。RULE_ACTION_FAILED且带诊断;NON_SCROLLABLE_CONFIRMATION 例外保持。验收
error_message带面板类型与可滚动节点数。风险
设计证据
文档影响
swipeAfter失败语义,需补充「无可滚动节点时跳过」;否则无长期文档影响。实施时核对。开始实施 #348,基于 origin/main 7a2c2d1,分支 fix/348-reveal-swipe。仅改 Android 揭示滑动结果区分、脱敏诊断及对应测试,不调整探测/规格选择/最终复核,也不修改规则或 Server/Web。本轮完成单测、APK 构建、提交推送后待验收;不安装真机、不创建订单、不发布线上。Gitea MCP 不可用,回退 Gitea API。
实施完成,待真机验证与验收(2026-09-29)
基线 main
7a2c2d1;分支fix/348-reveal-swipe已提交推送。源码6550b9f,Wiki 镜像fcb7dad。未合并 main、未发布 Server/Admin、未安装 APK、未执行真实采购或支付。实现
验证
.\gradlew.bat test assembleDebug --console=plain成功:Debug/Release 各48套、463个测试,失败/错误/跳过均0;APK构建成功。git diff --check通过;工作区干净。APK
Android 0.9.64 / versionCode 77,Manifest 经 aapt 回读。
本地:
D:/OPC/goauto-348/android/app/build/outputs/apk/debug/app-debug.apk大小6400321字节;SHA256
fe2f696c9847f42225311efc52a7b1ce21bbcdc967281e46c3762c0e8c1da1e0。Wiki 与事实边界
88ed799e92f64a73b3bd9472ab6c0b06fa080b375d9810286d76c52a90902c27a5316f39164f36e018260ec2725eaeb4dcf2543422d58ee4ede8b981先线上更新并在线回读revision,再完成唯一一轮
harness.py sync与sync --check,全部一致。核对发现历史 #238 说明绑定58a6c1c,该提交不在本轮main祖先中,当前代码仍执行后置滑动;文档已说明历史分支边界,未混入该历史分支或改为跳过全部预滑动。
Gitea MCP不可用,按仓库规则回退API。
未验证 / 下一步
真机及实际商品回归尚未验证。需另行授权安装与只读规格探测验证;验证不得提交订单或付款。工单保持待验收,不关闭。
用户授权合并 main 并发布最新版 APK 到线上 Admin(122.228.200.167:9527),供其他设备自行更新;不强制安装、不执行采购。已完成无冲突合并并推送 main:bf06b2d500c9a875ea8aa9aa07b56275434c096d,合并树与已验证
fcb7dad完全一致。APK 0.9.64(77)SHA256 与构建证据一致。使用现有管理员浏览器会话走版本管理上传与设为当前入口。Gitea MCP 本会话不可用,评论回退配置的 Gitea API。