- 现象:Windows(Python 3.7) python -m src.main 报 No module named 'src', 即便 cwd 在项目根、src/__init__.py 存在。 - 根因:该环境运行时不把当前目录加入 sys.path,python -m 找不到 cwd 下的 src 包。 - 修复: - src/main.py 启动时自注入项目根到 sys.path,不依赖运行环境配置; - 运行方式从 python -m src.main 改回脚本方式 python src/main.py; - dev.bat 恢复 CRLF 行尾并改用 python src\main.py; - 00/03/05/current-state 文档命令同步。 验证:WSL 下从不含 src 的目录脚本方式运行 exit=0;unittest 17 passed。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
7.6 KiB
7.6 KiB
执行进度(Progress)
本文记录任务执行进度、验证结果、阻塞点和关键决策。任务定义和依赖见
tasks.md,当前代码现实见docs/current-state.md。职责边界:本文是只追加的历史流水——每次执行后追加一条带日期的记录,不回头改写或删除旧记录。需要"当前是什么样"的可覆盖快照(目录结构、可运行命令、下一个任务),看
docs/current-state.md,不要在本文重复维护。
使用规则
- 每完成一个任务,追加一条进度记录。
- 记录实际验证命令、真机验证情况和结果文件位置。
- 遇到阻塞时记录阻塞原因、已尝试方案和下一步建议。
- 不在本文重新定义任务范围;任务范围以
tasks.md为准。
当前摘要
- 日期:2026-06-24
- 阶段:Phase 0 地基完成(T-001/2/3)/ 进入 Phase 1 原型验证
- 当前任务:无(T-003 已完成)
- 下一个任务:
T-101 验证 ADB 和 uiautomator2 真机连接(需真机环境) - 当前阻塞:尚未提供真实 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 · 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→ OKpython3 -m unittest discover -s tests -t .→ Ran 2 tests, OKpython3 src/main.py→ 正常输出,exit=0
- 范围:未提前创建 models/GUI/Android 等后续任务模块;
logs/、artifacts/、samples/归 T-003。
2026-06-24 · T-002 建立核心数据模型和状态枚举(DONE)
- 完成:
src/core/status.py定义TaskStatus(六态,英文成员 +display_name/from_display中英映射,单一事实源);src/core/models.py定义OrderTaskdataclass,字段集合/类型对齐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 srcOK;python3 -m unittest discover -s tests -t .→ Ran 10 tests, OK。
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 srcOK;python3 -m unittest discover -s tests -t .→ Ran 17 tests, OK;python3 -m src.mainexit=0 且logs/app.log正常写入。
2026-06-24 · 修复 Windows 运行方式(No module named 'src')
- 现象:Windows(Python 3.7)下
python -m src.main报ModuleNotFoundError: No module named 'src',即使 cwd 在项目根、src/__init__.py存在。 - 根因:该环境运行时未把当前目录加入
sys.path,python -m找不到 cwd 下的src包(os.listdir能看到文件属文件系统层,import 靠sys.path)。 - 修复:
src/main.py启动时自注入项目根到sys.path;运行方式从python -m src.main改回脚本方式python src/main.py(脚本目录可定位,配合自注入不依赖 cwd/环境);同步dev.bat(恢复 CRLF +python src\main.py)与00/03/05/current-state文档命令。 - 教训:Windows 脚本保持 CRLF;运行方式以目标机实测为准,不臆断
python -m可用。 - 验证:WSL 下从不含
src的目录脚本方式运行 exit=0、unittest 17 passed;Windows 由用户实测确认。
阻塞与风险
- 真实 Excel 表头待提供。
- ADB 和 Android 真机连接待验证。
- 拼多多商品详情页、SKU 面板、订单确认页结构待真机验证。
- 订单号读取位置待支付后真机验证。
下一步
- 按
tasks.md领取T-001 初始化 Python 项目骨架。 - 初始化项目后同步更新
docs/current-state.md。 - 完成任务后在本文追加验证结果。