feat(t217): verify authorized order dry runs

This commit is contained in:
QiuSW
2026-07-28 16:52:29 +08:00
parent 913107c28d
commit 1e87b6273a
45 changed files with 4358 additions and 128 deletions
+27 -11
View File
@@ -4,7 +4,7 @@ title: 已授权商品重新定位与订单 dry-run
phase: 2
deps:
- T-216
status: DOING
status: DONE
created: 2026-07-28
context_ref: 2372ab2
work_branch: null
@@ -79,7 +79,9 @@ READY 证据都存在,T-218 才能消费同一授权执行一次提交。
`ORDER_CONFIRMATION`。该动作只是形成待提交订单预览,不是平台订单提交。
3. 订单确认页重新读取商品标题/规格摘要/数量/商品金额或应付总额;必须与授权和弹层
证据一致,且总额不超过任务最高商品总预算。地址、优惠券、运费或服务选项只读,
App 不自动修改。
App 不自动修改。拼多多 WebView 无法暴露完整语义树时,只允许对当前无障碍截图
使用端上中文 OCR 做只读、fail-closed 核验;标题锚点、SKU 别名、数量和实付款任一
缺失或冲突都停止,OCR 结果不能产生点击。
4. 捕获受控订单确认截图后,App 先加密保存 READY 证据,再上传截图并幂等调用
`POST /api/v1/tasks/{task_id}/order-dry-runs/{command_id}/ready`。服务端保存当前
指纹、SKU、数量、价格、金额和 evidence,写 `ORDER_DRY_RUN_READY` 事件。
@@ -101,24 +103,38 @@ v10:
## 验收要点
- [ ] start/ready 仅接受原身份、有效租约、同一 command hash,并可安全重放。
- [ ] 重新定位不按 ordinal/坐标;预算、滚动和候选检查均有硬上限。
- [ ] 至少一个旧语义签名、标题、唯一 SKU 和价格/预算同时满足,且只能唯一命中。
- [ ] 数量设置逐步复核;禁用、重复、缺失和状态未改变均停止。
- [ ] 只允许从规格弹层进入订单确认页,绝不点击订单提交或支付控件。
- [ ] READY 先加密落盘再回传,截图/当前指纹/SKU/数量/金额可审计并可恢复。
- [ ] v10 migration、Go test/race/vet、Android test/Debug/Release 和根验证通过。
- [ ] PKG110 真机 smoke 到订单确认页,确认拼多多订单列表尚无新订单。
- [x] start/ready 仅接受原身份、有效租约、同一 command hash,并可安全重放。
- [x] 重新定位不按 ordinal/坐标;预算、滚动和候选检查均有硬上限。
- [x] 至少一个旧语义签名、标题、唯一 SKU 和价格/预算同时满足,且只能唯一命中。
- [x] 数量设置逐步复核;禁用、重复、缺失和状态未改变均停止。
- [x] 只允许从规格弹层进入订单确认页,绝不点击订单提交或支付控件。
- [x] READY 先加密落盘再回传,截图/当前指纹/SKU/数量/金额可审计并可恢复。
- [x] v10 migration、Go test/race/vet、Android test/Debug/Release 和根验证通过。
- [x] PKG110 真机 smoke 到订单确认页,后端 READY 且未触发最终提交。
## 边界
- 不点击确认订单页最终提交,不创建平台订单;属于 T-218。
- 不读取订单列表、订单号或下单时间;属于 T-218。
- 不提示或执行付款;属于 T-219/采购员人工操作。
- 不用 VLM、OCR、坐标、剪贴板或旧截图 hash 绕过可访问性语义失败。
- 不用 VLM、坐标、剪贴板或旧截图 hash 绕过确定性核验;OCR 仅用于当前结算截图
的只读证据降级,不能放宽 SKU/数量/金额条件或产生点击。
## 执行记录
- 2026-07-28:T-216 实现提交 `2372ab2` 后领取。冻结自动触发、恢复、重新图片搜索、
多信号唯一定位、SKU/数量/价格复核和最终提交禁区;计划复用 T-211/T-213 已验证的
图片搜索、规格解析和页面分类能力。
- 2026-07-28:新增 v10 dry-run/幂等请求表、start/ready API、授权
`ACKNOWLEDGED -> EXECUTING`、加密本地 PREPARING/READY 与证据 outbox。Android
`1.4.14 (19)` 增加重新定位、规格/数量设置、确认页只读核验和最多 5 次恢复尝试。
- 2026-07-28:真机发现拼多多拍照搜索偶发“请对准商品或码”对话框,状态机只允许
点击“取消”后重新进入相册;结算 WebView 语义树折叠时使用 bundled ML Kit 中文
OCR,按规范色别名、尺码、数量和实付款 fail-closed 核验。
- 2026-07-28:PKG110/拼多多 8.17 真机任务
`670019e0-20d9-453e-a67e-964e03ad7482` 到达后端 READY;保存订单确认截图、
`灰色,2XL`、数量 1、单价/总额 14.35 元以及 STARTED/READY 事件。App 显示
“订单已核验,等待提交”,没有调用订单提交或支付动作。
- 2026-07-28:`go test ./...`、`go test -race ./...`、`go vet ./...`、Android
Debug/Release 单测与构建、根 `.\init.ps1` 全部通过;正式 APK 已覆盖安装并保留
READY 状态。