Files
chengmaandClaude Opus 4.8 c204fc205c fix: 运行方式改回脚本并自注入项目根,修复 Windows No module named 'src'
- 现象: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>
2026-06-24 17:48:35 +08:00

7.6 KiB
Raw Permalink Blame History

执行进度(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 → 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 · 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 · 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 · 修复 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 面板、订单确认页结构待真机验证。
  • 订单号读取位置待支付后真机验证。

下一步

  1. 按 tasks.md 领取 T-001 初始化 Python 项目骨架。
  2. 初始化项目后同步更新 docs/current-state.md。
  3. 完成任务后在本文追加验证结果。