93 lines
6.8 KiB
Markdown
93 lines
6.8 KiB
Markdown
---
|
||
id: T-106
|
||
title: 确认页、闸门三与返回路径真机取证
|
||
phase: 1
|
||
deps: [T-105]
|
||
status: DOING
|
||
created: 2026-08-04
|
||
vikunja_task_id: 41
|
||
context_ref: db2b781
|
||
work_branch: task/t-106-confirm-evidence
|
||
needs_device: true
|
||
needs_human_review: true
|
||
write_paths:
|
||
- docs/tasks/T-106.md
|
||
- client/src/cmbuyer_client/pdd/order_confirm_spike.py
|
||
- client/tests/pdd/test_order_confirm_spike.py
|
||
- client/scripts/capture_order_confirm_spike.py
|
||
- docs/current-state.md
|
||
---
|
||
|
||
<!-- BEGIN VIKUNJA EXPORT id=41 synced=2026-08-06T02:20:32Z sha256=3e585159a2607c63f54d72b84d9779699cce3cc79805ebc7c2bbd08cb80b815f -->
|
||
## 问题 / 背景
|
||
|
||
T-105 验证规格面板数量与闸门二后,下一步会进入更高风险的订单确认页。T-106 只由人手工准备确认页、最终提交控件可见态和一次返回后的页面,再用完全只读脚本采集真机事实;本任务不自动导航、不写确认页判据。
|
||
|
||
## 关联需求与交互
|
||
|
||
- 功能:F-011、F-016。
|
||
- 用户故事:US-004、US-005。
|
||
- 依赖:T-105。
|
||
- 后续消费者:T-107。
|
||
- 需要真机和人工页面对应性、安全结果确认。
|
||
|
||
## 方案
|
||
|
||
1. 提供只读取证 CLI,唯一能力为核对指定设备/App 版本、app_current、screenshot 与 compressed=false XML、hash 和原子 manifest;静态禁止 click、press/back、swipe、input、intent 和任意 UI 修改。
|
||
2. 人先手工完成已取证规格/数量并进入确认页,停在规格、数量、应付总额及最终“提交订单”控件可见的安全状态;绝不能点击最终提交控件。
|
||
3. 只读采集确认页主体与最终控件状态,记录准确规格、数量、应付总额、控件精确文案/匹配数/启用态;这些只是人工观察,不转成生产 selector。
|
||
4. 随后由人只按一次返回并停手,再用同一只读取证 CLI 采集返回后的页面。Back 结果不明不再次按;记录页面身份与是否回到证据允许的安全页面。
|
||
5. 三组证据都记录设备型号、Android、USB/WiFi、serial、PDD 版本、goods_id、截图/XML 路径和 SHA-256;完整 XML 仅留本机。
|
||
6. 如果人误触最终提交、产生待付款订单、进入支付/安全验证/外部页面或页面结果不明,立即停止、不重试、不继续取证,并如实记录路径为不可用;绝不操作付款。
|
||
7. 当前规格面板中出现“提交订单 ¥...”不能仅凭文案推断为确认页导航或最终控件;T-107 只能消费本任务由人确认的结构事实。
|
||
|
||
## 验收要点
|
||
|
||
- 静态证明 spike/CLI 没有任何 UI 修改 API;mock 覆盖设备/版本/包/截图/XML/超时/原子发布/异常脱敏。
|
||
- 人工确认三组截图/XML对应:确认页规格数量金额、最终控件可见态、一次返回后页面。
|
||
- 执行记录列出准确控件文案与匹配数,但不把坐标/selector 作为结论;完整 XML、地址、手机号、支付信息不进 Git/Vikunja/日志。
|
||
- 明确记录未点击最终提交、未创建订单、未进入支付;若相反则任务保持 DOING/受阻且不自动处置。
|
||
- client 全量 unittest、compileall、完整 init、上下文校验、Vikunja 导出与 diff-check 通过;agent 不得自行标 DONE。
|
||
|
||
## 执行记录
|
||
|
||
### 2026-08-04T14:01:13Z · ila
|
||
|
||
2026-08-04 预研定值:T-106 与 T-107 分开,严格只做人工准备页面后的只读取证;采集代码零 UI 修改,最终提交控件不点击,一次返回也由人执行且结果不明不重试。
|
||
|
||
### 2026-08-04T14:02:39Z · ila
|
||
|
||
2026-08-04 主审补齐导航来源事实:T-106 必须采集四态——闸门二后的确认页导航前状态、确认页闸门三、最终提交控件可见态、人工一次返回后状态;人记录进入确认页时实际单击的精确控件/容器与匹配数,agent 仍只读取证。缺少来源态时 T-107 不得从目标页反推入口。
|
||
|
||
### 2026-08-06T02:12:17Z · ila
|
||
|
||
2026-08-06T02:12:16.724Z · Codex
|
||
已领取 T-106。基线 init.ps1 通过(client 330 tests);按任务边界只实现四态纯只读取证,禁止 click/press/back/swipe/input/intent,代码完成后等待人工真机准备与验收。
|
||
|
||
### 2026-08-06T02:20:23Z · ila
|
||
|
||
2026-08-06T02:20:23.748Z · Codex
|
||
T-106 四态纯只读取证代码已完成:新增 order_confirm_spike、capture_order_confirm_spike.py 与 16 项专项测试。静态 AST 证明生产模块/CLI 只允许 takeScreenshot、dumpWindowHierarchy,且不可达页面修改、确认页导航、提交、围栏或付款能力。client 全量 346 tests、compileall、validate_agent_context 与完整 init.ps1 均通过。任务保持 DOING,等待项目所有者依次人工准备并确认 Gate2 导航前、Gate3、最终控件可见、一次返回后四态;绝不点击最终提交。
|
||
<!-- END VIKUNJA EXPORT -->
|
||
|
||
## 边界
|
||
|
||
- 本任务只实现和运行只读取证能力:设备/App 摘要、`app_current`、screenshot、`compressed=false` XML、
|
||
hash 与原子 manifest。代码中不得出现 click、press/back、swipe、input、intent 或其他 UI 修改 API,
|
||
不得自动进入或退出确认页,也不得从前序项目、旧 XML 或推理写生产判据。
|
||
- 确认页、最终提交控件可见态和一次返回后的页面都由人手工准备;人不得点击最终“提交订单”控件。
|
||
一次返回结果不明时不得再次按 Back。agent 只采集已准备状态,不远程替人执行这些动作。
|
||
- 人工验收必须明确规格、数量、应付总额、最终控件精确文案/匹配数/启用态和返回后的页面身份;
|
||
本任务只记录真机事实,不把文案、坐标、节点或 selector 批准为生产能力。
|
||
- 取证必须包含四个稳定状态:闸门二通过后的**确认页导航前**页面、确认页闸门三、最终提交控件
|
||
可见态、一次返回后页面。人还需记录从第一态进入第二态时实际只点击的精确控件文本/容器及当时
|
||
匹配数量;agent 不执行该点击。缺少来源态时,T-107 不得仅凭“已到确认页”反推导航控件。
|
||
- 规格面板中出现的“提交订单 ¥...”不得凭文案推断为确认页导航或最终提交控件。任何确认页入口、
|
||
金额节点、最终控件和返回后置条件都必须等 T-107 从本任务已确认的证据中最小化固化。
|
||
- 若人工误触最终提交、产生待付款订单、进入支付/安全验证/外部页面或结果不明,立即停止、不重试、
|
||
不继续取证并如实记录;绝不点击支付、免密支付、先用后付或任何扣款控件。
|
||
- 原始 screenshot/XML 只留 `%LOCALAPPDATA%\cmbuyer\artifacts\T-106\...`,不提交 Git、不上传采购服务,
|
||
不把完整 XML、地址、手机号、支付信息、页面全文或本机路径写入普通日志/Vikunja/fixture。
|
||
- `needs_device: true`:agent 不得自行标 DONE。只有人确认四组证据对应、一次返回安全、未点击最终提交、
|
||
未创建订单且未进入支付相关页面,任务才可完成。
|