v0.4.0 发布
v0.4.0 于 2026-09-08T16:26:31Z 发布为 GitHub Release v0.4.0(release task:Issue #551)。
Tag 状态(对 origin 验证)
Release notes
Changelog
Features
- 多 Repo Registry:显式配置与兼容单 Repo (Issue #134; PR #150)
- 开发契约:将用户视角的端到端验收内化到 Issue、Agent 和 Review 流程 (Issue #173; PR #550)
- Orbi 自包含管理 Pi extensions,隔离全局 Pi 配置 (Issue #249; PR #524)
- 维护:清理滞留重复 PR,串行恢复 #316/#360/#319 原有 PR 交付闭环 (Issue #533)
- Enhancement:CI failure triage 优先复用已有 PR,减少重复修复票 (Issue #544; PR #545)
Reliability and recovery
- Runner Python exception:review/fix 达到 5 轮上限后抛出 UnrecoverableDeliveryError (Issue #478; PR #480)
- 修复 ai-blocked review loop:外部前置条件修复后无法恢复同一 PR (Issue #483; PR #485)
- Runner Python exception:resume 校验对已关闭 PR 抛 expected exactly one open PR 并死循环重试 (Issue #494; PR #541)
- resume PR 校验失败时 Runner 不应未处理退出进程 (Issue #495; PR #496)
- P0 Bug:新 PR 错误继承旧 PR 的 review exhausted 状态并立即 ai-blocked (Issue #508; PR #509)
- 可观测性:Orbi progress/blocked/failed 评论携带 runner 版本指纹,旧代码执行一眼可见 (Issue #526; PR #536)
- Epic 自动收尾:tick 级 reconcile——声明子票全部完结且无 open blocker 时自动关闭 Epic (Issue #552; PR #554)
Deployment and operations
- Git 网络操作增加有界 timeout 重试,降低偶发 SSH push/fetch 失败 (Issue #479; PR #481)
- 健壮性:Runner 启动时强制校验执行代码与 origin/main 一致,deploy_home 落后时 fail-fast(09-07 旧部署事故根因) (Issue #525; PR #539)
- Bug:direct-Pi website service 因 beta base ref freshness 检查失败而无法启动 (Issue #543; PR #546)
Documentation
- v0.4.0 起交付分支命名不再包含
run_id,改用orbi/<owner>-<repo>-issue-<N>;worktree、Pi session 和 run 产物名称仍带 run 范围。 - 文章:用 z.ai GLM 5.3 Flash 免费额度跑 Orbi(系列第一篇) (Issue #306; PR #523)
- 5 步跑通第一个 Issue:面向免费额度系列的极简上手路径(含图文/录屏) (Issue #308; PR #522)
- 模板:pi_providers 多 provider 配置文件模板(重点覆盖免费额度各家),支撑 #305 系列 (Issue #309; PR #475)
- 配置文档:Google Gemini(AI Studio 免费层)接入 orbi (Issue #314; PR #521)
- 配置文档:z.ai GLM(免费/体验额度)接入 orbi (Issue #315; PR #515)
- 配置文档:OpenRouter :free 模型接入 orbi (Issue #316; PR #549)
- 配置文档:Groq 免费档接入 orbi (Issue #317; PR #519)
- 配置文档:Cloudflare Workers AI 免费额度接入 orbi (Issue #318; PR #518)
- 配置文档:GitHub Models 免费原型额度接入 orbi (Issue #319; PR #548)
- 补齐部署迁移/清理文档,避免 stale systemd units (Issue #349; PR #477)
- 配置文档:Codex OAuth / GPT-5.6 Luna 额度接入 Orbi (Issue #358; PR #487)
- 配置文档:OpenCode provider 额度/认证接入 Orbi (Issue #360; PR #547)
- 配置文档:Ollama Pro 云端模型接入 Orbi (Issue #361; PR #482)
Bug fixes
- release runner 不应强制要求 Python pyproject.toml:Node-only source repo 发布失败 (Issue #488)
- release 后置路径仍错误地从 Node source repo 查找 pyproject.toml (Issue #490; PR #491)
- release 前自动收敛已完成的 ai-epic,避免 Epic 阻塞 Milestone 关闭 (Issue #492; PR #498)
- 修复 milestone 推进确认票:不得被 Runner pickup,已手动推进后应自动收敛 (Issue #493; PR #505)
- CI failure: tests on PR #496 (pull_request) (Issue #497)
- CI failure: tests on PR #498 (pull_request) (Issue #499; PR #503)
- P0 Bug:diff coverage 失败被测试包装吞掉,错误返回 exit 0 占住 Runner slot (Issue #500; PR #511)
- P0 Bug:CI 自动修复票应继承来源 Issue 的 p0 优先级 (Issue #501; PR #502)
- CI failure: tests on PR #503 (pull_request) (Issue #504)
- CI failure: tests on PR #505 (pull_request) (Issue #506)
- CI failure: tests on PR #498 (pull_request) (Issue #510)
- P0:review 测试门禁改为以 PR CI 为准(CI-as-gate),取代 PR #511 的本地包装方案(关联 #500) (Issue #513; PR #514)
- CI failure: tests on branch orbi/orbi-build-orbi-issue-526-7d9a98f7 (pull_request) (Issue #529; PR #531)
- CI failure: tests on branch main (push) (Issue #538; PR #540)
- CI failure: tests on PR #541 (pull_request) (Issue #542)
- Bug:交付分支身份含 run_id 导致重复/滞留 PR 阻塞 release——分支改为按 issue 命名,claim 时接管已有交付 (Issue #553; PR #555)
- Bug:release 测试步非中性执行器——硬编码 /usr/bin/python3 coverage gate(Python 锁死+依赖系统工具链)——runner 原样执行仓库自有测试入口,契约归客户仓库 (Issue #556; PR #557)
- bug: release 路径裸调 create_worktree——上次尝试的稳定分支/worktree 残留使 retry 必然 255(交付路径已处理,release 漏了) (Issue #565; PR #566)
- bug: release 声明的 test_command 非自包含(系统 python 无测试工具链)+ 全量套件依赖未声明——建立自包含测试入口并更新 #551/#563 (Issue #567; PR #568)
-
tag:
v0.4.0 -
release commit:
fd31207ce3351587b0f78e33da311feb47ae2c6d - release task: Issue #551
Scope (verified item by item)
- Issue #134 closed
- Issue #173 closed
- Issue #249 closed
- Issue #306 closed
- Issue #308 closed
- Issue #309 closed
- Issue #314 closed
- Issue #315 closed
- Issue #316 closed
- Issue #317 closed
- Issue #318 closed
- Issue #319 closed
- Issue #349 closed
- Issue #358 closed
- Issue #360 closed
- Issue #361 closed
- Issue #478 closed
- Issue #479 closed
- Issue #483 closed
- Issue #488 closed
- Issue #490 closed
- Issue #492 closed
- Issue #493 closed
- Issue #494 closed
- Issue #495 closed
- Issue #497 closed
- Issue #499 closed
- Issue #500 closed
- Issue #501 closed
- Issue #504 closed
- Issue #506 closed
- Issue #508 closed
- Issue #510 closed
- Issue #513 closed
- Issue #525 closed
- Issue #526 closed
- Issue #529 closed
- Issue #533 closed
- Issue #538 closed
- Issue #542 closed
- Issue #543 closed
- Issue #544 closed
- Issue #552 closed
- Issue #553 closed
- Issue #556 closed
- Issue #565 closed
- Issue #567 closed
- NOT released (still open in milestone v0.4.0): open Issue #569 bug: 移除 scripts/test 本地测试链——release 测试验收交给 GitHub Actions(KISS:能交给平台的就交出去)
- NOT released (still open in milestone v0.4.0): open Issue #551 Release task:发布 v0.4.0 并完成远端交付对账
- NOT released (still open in milestone v0.4.0): open Issue #305 Epic:各家 AI provider 免费/试用额度接入 Orbi —— 系列上手文章
Pre-release gates
- no open Issue carries ai-in-progress / ai-pr-opened / ai-fix-needed
- CI on the release commit: 4 check(s) all success/neutral/skipped (waited 30s for pending checks)
- no open PR targets main
Tests
- declared test command and tiered coverage gate (line/branch >= 95%, Issue #234) passed in a clean worktree at fd31207ce3351587b0f78e33da311feb47ae2c6d (timeout 1800s)