2026-06-24 16:15:46 +08:00
|
|
|
|
# 执行进度(Progress)
|
|
|
|
|
|
|
|
|
|
|
|
> 本文记录任务执行进度、验证结果、阻塞点和关键决策。任务定义和依赖见 [`tasks.md`](tasks.md),当前代码现实见 [`docs/current-state.md`](docs/current-state.md)。
|
|
|
|
|
|
>
|
|
|
|
|
|
> **职责边界**:本文是**只追加的历史流水**——每次执行后追加一条带日期的记录,不回头改写或删除旧记录。需要"当前是什么样"的可覆盖快照(目录结构、可运行命令、下一个任务),看 [`docs/current-state.md`](docs/current-state.md),不要在本文重复维护。
|
|
|
|
|
|
|
|
|
|
|
|
## 使用规则
|
|
|
|
|
|
|
|
|
|
|
|
- 每完成一个任务,追加一条进度记录。
|
|
|
|
|
|
- 记录实际验证命令、真机验证情况和结果文件位置。
|
|
|
|
|
|
- 遇到阻塞时记录阻塞原因、已尝试方案和下一步建议。
|
|
|
|
|
|
- 不在本文重新定义任务范围;任务范围以 `tasks.md` 为准。
|
|
|
|
|
|
|
|
|
|
|
|
## 当前摘要
|
|
|
|
|
|
|
|
|
|
|
|
- 日期:2026-06-24
|
2026-06-24 17:32:28 +08:00
|
|
|
|
- 阶段:Phase 0 地基完成(T-001/2/3)/ 进入 Phase 1 原型验证
|
|
|
|
|
|
- 当前任务:无(T-003 已完成)
|
|
|
|
|
|
- 下一个任务:`T-101 验证 ADB 和 uiautomator2 真机连接`(需真机环境)
|
2026-06-24 16:15:46 +08:00
|
|
|
|
- 当前阻塞:尚未提供真实 Excel 样例、Android 真机和测试商品链接
|
|
|
|
|
|
|
|
|
|
|
|
## 进度记录
|
|
|
|
|
|
|
|
|
|
|
|
### 2026-06-24 · 文档初始化
|
|
|
|
|
|
|
|
|
|
|
|
- 完成:按 harness coding 文档风格建立项目文档集。
|
|
|
|
|
|
- 完成:确认 MVP 形态为 Windows 桌面 GUI + Excel 导入/回写 + Android 真机自动化。
|
|
|
|
|
|
- 完成:支付策略更新为默认人工确认,预留受控自动支付开关。
|
|
|
|
|
|
- 完成:将任务定义移到根目录 `tasks.md`,新增根目录 `progress.md`。
|
|
|
|
|
|
- 验证:文档结构和引用已通过文本搜索检查。
|
|
|
|
|
|
|
|
|
|
|
|
### 2026-06-24 · 文档一致性补丁
|
|
|
|
|
|
|
|
|
|
|
|
- 新增根目录 `.gitignore`:忽略 `logs/`、`artifacts/`、`samples/*.xlsx`、结果文件和虚拟环境,防止提交含 PII 的运行产物。
|
|
|
|
|
|
- 统一 `TaskStatus` 中英映射:`04-architecture.md` §3.4 新增英文枚举成员 ↔ 中文显示值表,明确中文只在 GUI/Excel 边界出现。
|
|
|
|
|
|
- 消解自动支付口径冲突:支付模式收敛为全局 `PaymentConfig`,从 `OrderTask` 移除 `auto_pay_enabled`;`api.md` 的 `enable_auto_pay` 改为 `set_payment_config`。
|
|
|
|
|
|
- 明确暂停语义:`04-architecture.md` §4.5 新增 `RunnerState`(执行器级 `PAUSED`),与任务级 `status` 分离;`api.md` 补 `TaskRunner.pause()/resume()`。
|
|
|
|
|
|
- 验证:全文搜索确认无 `auto_pay_enabled` / `enable_auto_pay` 残留引用。
|
|
|
|
|
|
|
|
|
|
|
|
### 2026-06-24 · 文档可维护性补丁(中优先级)
|
|
|
|
|
|
|
|
|
|
|
|
- 新增 `CLAUDE.md`:薄入口指向 `AGENTS.md`,Claude Code 与 Codex 共用一套规则,避免双份漂移。
|
|
|
|
|
|
- 钉死 `progress.md` 与 `current-state.md` 职责边界:前者为只追加历史流水,后者为可覆盖当前快照,二者顶部各加边界声明。
|
|
|
|
|
|
- T-001 受理条件补充:要求用真实可运行命令替换各文档中的占位符验证命令。
|
|
|
|
|
|
|
|
|
|
|
|
### 2026-06-24 · 合规风险留痕(低优先级 item 9)
|
|
|
|
|
|
|
|
|
|
|
|
- `02-requirements.md` §七 新增「平台规则与合规风险」一条:中立记录对第三方 App 做批量自动化下单可能触及平台协议/账号风控的已知风险,交叉引用 `01-vision.md` 非目标与 `05-coding-rules.md` 安全纪律;明确 MVP 不提供任何规避平台限制能力,使用范围与账号风险由业务方评估承担。
|
|
|
|
|
|
|
2026-06-24 17:02:15 +08:00
|
|
|
|
### 2026-06-24 · T-001 初始化 Python 项目骨架(DONE)
|
|
|
|
|
|
|
|
|
|
|
|
- 完成:建立 `src/`(`__init__.py`、`main.py` 最小可运行入口)、`tests/`(`__init__.py`、`test_smoke.py` 冒烟测试)、`requirements.txt`(含依赖纪律注释,当前零第三方运行时依赖)。
|
|
|
|
|
|
- 决策:骨架阶段测试用标准库 `unittest`,不引入 `pytest`(sandbox 网络受限装不上,且骨架只需冒烟测试、保持零依赖更契合范围纪律);已在 `03-tech-stack.md` 留痕。
|
|
|
|
|
|
- 文档:用真实命令替换 `00`/`03`/`05`/`current-state` 的占位符(`python -m pytest` → `python -m unittest discover -s tests -t .`)。
|
|
|
|
|
|
- 验证(WSL Python 3.10.12,命令用 `python3`):
|
|
|
|
|
|
- `python3 -m compileall src` → OK
|
|
|
|
|
|
- `python3 -m unittest discover -s tests -t .` → Ran 2 tests, OK
|
|
|
|
|
|
- `python3 src/main.py` → 正常输出,exit=0
|
|
|
|
|
|
- 范围:未提前创建 models/GUI/Android 等后续任务模块;`logs/`、`artifacts/`、`samples/` 归 T-003。
|
|
|
|
|
|
|
2026-06-24 17:16:45 +08:00
|
|
|
|
### 2026-06-24 · T-002 建立核心数据模型和状态枚举(DONE)
|
|
|
|
|
|
|
|
|
|
|
|
- 完成:`src/core/status.py` 定义 `TaskStatus`(六态,英文成员 + `display_name`/`from_display` 中英映射,单一事实源);`src/core/models.py` 定义 `OrderTask` dataclass,字段集合/类型对齐 `04-architecture.md` §3.3。
|
|
|
|
|
|
- 测试:`tests/test_models.py` 覆盖枚举完整性、中英映射双向往返、未知值报错、`OrderTask` 默认值与 `sku_items` 实例独立性。
|
|
|
|
|
|
- 文档:`04-architecture.md` §3.4 约定同步为 `display_name` + `from_display`。
|
|
|
|
|
|
- 范围:未含 `PaymentConfig`/`PaymentMode`/`RunnerState`(属支付与执行器任务,按需引入)。
|
|
|
|
|
|
- 验证:`python3 -m compileall src` OK;`python3 -m unittest discover -s tests -t .` → Ran 10 tests, OK。
|
|
|
|
|
|
|
2026-06-24 17:32:28 +08:00
|
|
|
|
### 2026-06-24 · T-003 建立日志和运行产物目录策略(DONE)
|
|
|
|
|
|
|
|
|
|
|
|
- 完成:`src/paths.py` 集中管理运行时路径与产物命名(`logs/`、`artifacts/` 运行时创建并 gitignore;截图/UI XML 按 `artifacts/<task_id>/<时间戳>_<step>.png|.xml` 归档,`_safe` 安全化防路径穿越);`src/logging_config.py` 统一日志格式(含 `task_id`/`step`,控制台 + `logs/app.log`,缺上下文时由 filter 补默认值,幂等 setup)。
|
|
|
|
|
|
- 集成:`src/main.py` 启动时 `ensure_runtime_dirs()` + `setup_logging()` 并写一条启动日志。
|
|
|
|
|
|
- 修正:`main.py` 引入 `from src.*` 后 `python src/main.py` 直接运行会 `ModuleNotFoundError`;运行方式统一为 `python -m src.main`,同步替换 `00/03/05/current-state` 文档命令与 `dev.bat`。
|
|
|
|
|
|
- 测试:`tests/test_paths.py`、`tests/test_logging.py` 覆盖安全化、路径生成与归档、防穿越、日志上下文与幂等。
|
|
|
|
|
|
- 安全:日志格式不含敏感字段,并在 `logging_config`/`05` 留下「不记录支付密码/验证码/账号密码」约定。
|
|
|
|
|
|
- 验证:`python3 -m compileall src` OK;`python3 -m unittest discover -s tests -t .` → Ran 17 tests, OK;`python3 -m src.main` exit=0 且 `logs/app.log` 正常写入。
|
|
|
|
|
|
|
2026-06-24 16:15:46 +08:00
|
|
|
|
## 阻塞与风险
|
|
|
|
|
|
|
|
|
|
|
|
- 真实 Excel 表头待提供。
|
|
|
|
|
|
- ADB 和 Android 真机连接待验证。
|
|
|
|
|
|
- 拼多多商品详情页、SKU 面板、订单确认页结构待真机验证。
|
|
|
|
|
|
- 订单号读取位置待支付后真机验证。
|
|
|
|
|
|
|
|
|
|
|
|
## 下一步
|
|
|
|
|
|
|
|
|
|
|
|
1. 按 `tasks.md` 领取 `T-001 初始化 Python 项目骨架`。
|
|
|
|
|
|
2. 初始化项目后同步更新 `docs/current-state.md`。
|
|
|
|
|
|
3. 完成任务后在本文追加验证结果。
|