Skip to content

ProjectForge v0.2.0

Choose a tag to compare

@Zi-Yi-Ming Zi-Yi-Ming released this 07 Sep 12:30
· 76 commits to master since this release

v0.2.0 把"约束式执行"从口号变成现实:executor 可插拔、cancel 真正生效、确定性验证真实执行、base-dir 单一贯通。

主要变化

executor 可插拔(MS1)

  • CodingAgentAdapter 泛化为 CliAgentAdapter 模板基类(重试/超时映射/git checkpoint/scope 判定可复用),sandbox 变为可注入的 SandboxPolicy
  • ProjectService(executor_factory=...);CLI/API 新增 --executor {hermes,mock}
  • 新增离线 MockExecutor:真实走 orchestrator + validator,无需 Hermes/bwrap/网络即可跑通全链路(demo 与 CI 的关键解锁)

base-dir 单一贯通(MS2,⚠️ BREAKING)

  • --base-dir 现在是唯一运行时根:projects/runs/workspaces/ 三分;workspace 独立为 --run-dir(默认 <base>/workspaces/<project>
  • 修复 replan/resume 路径忽略 --base-dir 的缺陷;v0.1.x 自定义布局不自动迁移,默认 .runtime 布局不变

cancel 真正生效(MS3)

  • 持久化 cancel_requested(跨覆盖粘滞),orchestrator 在任务间检查取消并置 BLOCKED/CANCELLED
  • run 执行移出全局锁;run 身份统一(orchestrator 复用 run_control 的 run_id);终态不再被覆盖

确定性验证真实执行 + 验收标准语义修复(MS4)

  • 任务可声明 test_paths/test_command,validator 真实执行声明的测试命令
  • 声明的测试套件通过时,人工验收标准降级为 manual_review_items,任务可达 DONE;无 test_scope 保持保守 BLOCKED;套件失败 = 硬 FAIL
  • scope 检查支持 workspace 相对路径与绝对 allowed_paths 的解析比对
  • 此前生产路径的任务因验收标准恒 NEEDS_REVIEW 永远无法完成——已修复

验证证据

结果
GitHub Actions CI(3.10/3.11/3.12) 通过
本地全量多轮 325 passed / 19 skipped,零 flake
真实执行环境(Hermes + bwrap sandbox,19 个真实 LLM 用例) 344 passed / 0 skipped

离线一键体验:python scripts/demo.py(生命周期 → 执行 → 注入失败 → 人工审批 replan → resume → COMPLETED),见 docs/demo.md

PyPI

元数据已就绪(sdist + wheel 构建通过)。发布由 tag/release 触发的 workflow 完成,需要在仓库 Secrets 配置 PYPI_API_KEY

已知限制

  • 沙箱与宿主共享网络(真隔离需 slirp4netns)
  • git checkpoint 在非 git workspace 下为空,validator 尚未消费 checkpoint
  • hermes 执行超时最坏 900s × 3 次