From 637c341b95dbe3bd399fab8e7fbdc2adafd8b7f7 Mon Sep 17 00:00:00 2001 From: QiuSW <105186638@qq.com> Date: Mon, 3 Aug 2026 18:40:19 +0800 Subject: [PATCH] docs(tasks): define T-101 device connectivity spike --- docs/tasks/T-101.md | 70 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 docs/tasks/T-101.md diff --git a/docs/tasks/T-101.md b/docs/tasks/T-101.md new file mode 100644 index 0000000..f4fa53a --- /dev/null +++ b/docs/tasks/T-101.md @@ -0,0 +1,70 @@ +--- +id: T-101 +title: 验证 ADB 与 uiautomator2 双通道连接 +phase: 1 +deps: [T-002] +status: TODO +created: 2026-08-03 +vikunja_task_id: 21 +context_ref: 87591e8 +work_branch: task/t-101-device-connectivity +needs_device: true +needs_human_review: true +write_paths: + - docs/tasks/T-101.md + - client/.gitignore + - client/src/cmbuyer_client/device/** + - client/tests/device/** + - client/scripts/capture_device_baseline.py + - docs/evidence/T-101/** + - docs/04-architecture.md + - docs/03-tech-stack.md + - docs/current-state.md +--- + + +## 问题 / 背景 + +T-002 已建立采购工具骨架,但本项目还没有对实际 Android 手机、ADB 通道或 uiautomator2 做过取证。后续所有拼多多页面判据都依赖稳定、显式且可审计的设备连接;若复用前序项目结论或自动猜设备,会把错误设备和旧页面事实带入生产流程。 + +## 关联需求与交互 + +- 功能:Phase 1 真机环境盘点,是 T-102/T-103 的前置。 +- 用户故事 / 交互:采购工具配置页的显式设备 serial、连接检查与错误反馈。 +- 架构 / API:只验证 ADB/uiautomator2 基础能力,不编写拼多多页面判据,不调用采购服务业务接口。 + +## 方案 + +1. 实现显式 serial 的设备连接边界与可替换命令执行器;禁止留空自动选择,离线测试覆盖无设备、多设备、unauthorized/offline 和同一手机 USB+WiFi 双通道冲突。 +2. 提供只读取证命令:对指定通道连接 uiautomator2,获取设备型号/Android 版本/拼多多 App 版本,执行截图与 dump_hierarchy(compressed=False),所有超时可配置。 +3. 产物按稳定目录保存并记录 SHA-256;日志只记录设备标识与元数据,不记录 token、地址、手机号或页面全文。 +4. 先完成 mock/fixture 离线测试;随后由人分别用 USB 与 WiFi 真机执行并把设备、Android、拼多多版本、截图/XML 路径和结论写入任务执行记录。 +5. 同一手机两个通道同时在线必须明确拒绝,不能随机选一个继续。 + +## 验收要点 + +- USB 和 WiFi 均能显式指定并完成截图、compressed=False XML dump。 +- 设备未授权、离线、超时、serial 不存在和双通道冲突有可区分错误。 +- 取证记录含设备型号、Android 版本、拼多多 App 版本、通道、时间、截图/XML 路径及 SHA-256。 +- 离线单测与 compileall 通过,不要求真机。 +- needs_device=true:agent 完成代码后保持 DOING,只有人完成两通道真机验收后才能 DONE。 + +## 执行记录 + +(暂无) + + +## 边界 + +- 本任务只建立并验证设备连接、元数据读取、截图和 `dump_hierarchy(compressed=False)`;不打开 + 拼多多商品、不编写任何页面判据,不选择规格,不进入购买或订单页面。 +- 设备 serial 必须显式提供;无设备、多设备、未授权、离线或同一手机 USB + WiFi 双通道并存时 + 必须明确失败,不得随机选择或静默降级。 +- 不使用 `/mnt/d/chengma/cmroubao`、`/mnt/d/chengma/cmpdd` 的设备常量、页面 XML 或结论作为 + 本项目事实;所有真机结论都必须在本项目重新取证。 +- 产物与执行记录不得包含 token、地址、手机号、支付信息或无关页面全文;页面 XML 原始文件只 + 保存于明确的 T-101 取证目录,日志只记录路径、哈希与非敏感元数据。 +- 不修改 `admin/`、业务 API、数据模型或产品 UI,不实现任务领取、采购执行、下单、提交订单、 + 付款或支付逻辑。 +- `needs_device: true`:agent 完成代码和离线门禁后仍必须保持 `DOING`;只有人完成 USB、WiFi + 两通道真机验收并记录设备型号、Android 版本、拼多多 App 版本、截图/XML 路径后才能标 `DONE`。