5.8 KiB
5.8 KiB
id, title, phase, deps, status, created, vikunja_task_id, context_ref, work_branch, needs_device, needs_human_review, write_paths
| id | title | phase | deps | status | created | vikunja_task_id | context_ref | work_branch | needs_device | needs_human_review | write_paths | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| T-102 | 验证按链接打开商品详情页 | 1 |
|
DOING | 2026-08-04 | 22 | 393f26d |
task/t-102-open-product | true | true |
|
问题 / 背景
T-101 已证明同一台 PKG110(Android 16、拼多多 8.17.0)可通过 USB/WiFi 显式 serial 完成只读截图与完整 XML 取证。MVP 下一风险是任务自带的合法拼多多链接能否由 Android intent 打开到对应商品详情页。此前项目和旧文档不能证明当前 App 的行为;若先写详情页判据,会把未经本项目真机验证的假设带入 T-103。
关联需求与交互
- 功能:F-006 的第一步
open_product(url);仅覆盖链接打开,不覆盖规格面板、规格选择或价格。 - 用户故事 / 交互:采购工具执行链接任务前的只读真机 spike;无生产 GUI。
- 架构 / API:
docs/04-architecture.md第三节 A 路径;docs/api.md的 canonicalproduct_url/goods_id示例;T-103 前置。
方案
- 只接受 HTTPS canonical 链接
https://mobile.yangkeduo.com/goods.html?goods_id=<纯数字>;拒绝 userinfo、非默认端口、fragment、重复/缺失/非数字 goods_id、其他 host/path 和额外业务参数。解析后由代码按 goods_id 重建 canonical URL,绝不把任意输入拼入 shell。 - 复用 T-101 的显式 serial、同机多通道 fail-closed、no-reconnect、类型化超时和原子证据发布边界;运行拼多多版本必须精确等于本项目已取证的 8.17.0,否则在打开链接前停止。
- 通过参数数组执行只含 Android
VIEWintent 语义的adb shell am start -W,显式限定包com.xunmeng.pinduoduo;不使用 shell 字符串、不点击/滑动/输入任何控件。Android 命令失败、超时、未解析 intent、未停留在拼多多包、截图/XML 失败分别给出脱敏错误。 - 启动后只读取 current app/package、截图和
dumpWindowHierarchy(compressed=False),manifest 记录 goods_id、canonical URL、设备/App 元数据、命令结果摘要、路径与 SHA-256,不记录页面全文或原始 serial。原始截图/XML 仅存%LOCALAPPDATA%,不提交 Git。 - 离线 mock 测试覆盖 URL 正反例、参数数组与超时、版本失配在 intent 前停止、包不匹配、无 UI 点击 API、证据原子性和异常脱敏。代码完成后由人使用一个明确 goods_id 在仅单通道在线的真机执行,人工确认截图确为对应商品详情页并检查 XML/截图无敏感信息;再把设备、Android、拼多多版本、goods_id、路径、SHA-256 与结论写入执行记录。
验收要点
- 合法 canonical 链接可在拼多多 8.17.0 上打开;人工确认到达与 goods_id 对应的商品详情页。
- 非法链接、设备状态、App 版本失配、intent 失败/超时、落在非拼多多包、证据失败均有可区分且不泄露页面内容的错误。
- 取证记录包含 PKG110、Android 16、连接方式、拼多多 8.17.0、goods_id、canonical URL、截图/XML 本地路径与 SHA-256。
- client 全部单测、compileall、wheel metadata、上下文校验及完整
init.ps1通过。 needs_device=true:agent 只能完成离线实现并保持 DOING;只有人完成真机链接打开、页面对应性与隐私检查后才能 DONE。
执行记录
2026-08-04T01:09:47Z · ila
2026-08-04:已认领 T-102,工作分支 task/t-102-open-product,从任务定义提交 4281b06 开始实现。离线阶段只实现严格 canonical URL 校验、Android VIEW intent、版本/设备 fail-closed 与原子证据采集;不写商品详情页节点判据,不操作任何 App 控件。needs_device=true,离线实现完成后仍保持 DOING,等待人工提供明确商品链接并完成真机页面对应性和隐私验收。
边界
- 本任务只验证由显式 canonical 链接启动拼多多并采集本地证据;不编写或声称商品详情页节点判据, 页面是否为对应商品必须由人查看本项目新产物确认。
- 只允许 Android
VIEWintent;不点击、滑动、长按、输入任何 App 控件,不打开规格面板,不选择 颜色或尺码,不读取价格,不进入购买或订单页面。 - 不引用或实现
go_to_order_confirm()、submit_order()、提交订单、付款、支付、授权或采购服务接口; 不把前序项目的 URL、activity、节点文本或页面结论当作事实。 - 输入 URL 必须先严格解析并按纯数字
goods_id重建,再以参数数组传给 ADB;禁止 shell 拼接、 任意 scheme/host/path、短链跳转、额外参数或自动猜测链接。 - 运行拼多多版本与本项目已取证版本不一致时必须在 intent 前停止;证据失败、当前包不符或结果无法 由人确认时均不得声称成功,不增加自动点击或其他兜底路径。
- 截图和完整 XML 只保存在明确的本地 T-102 目录,人工检查后只把路径、SHA-256 与非敏感元数据 写入执行记录;不得提交原始证据,不记录地址、手机号、支付信息或无关页面正文。
- 不修改
admin/、业务 API、数据模型、生产 GUI 或 T-103 规格面板逻辑。 needs_device: true:agent 完成离线实现后保持DOING;只有人使用明确 goods_id 完成真机打开、 确认对应商品详情页并完成隐私检查后才能标DONE。