Skip to content

chore(发布): 准备 0.7.14 - #66

Merged
Dandre126 merged 7 commits into
mainfrom
feat/dev_0814
Sep 11, 2026
Merged

chore(发布): 准备 0.7.14#66
Dandre126 merged 7 commits into
mainfrom
feat/dev_0814

Conversation

@Dandre126

Copy link
Copy Markdown
Contributor

本版唯一的对外改动

doctor() 改用批量 Git 观测。原先对每个 (开发线, 仓库) 组合串行发约 8 条 git 命令,一个 5 仓库 × 13 开发线的工作区一次需要 399 次子进程调用、耗时 5.61s;首页菜单与开发线准入闸门各跑一轮。

改为按仓库预取两份观测:

  • git worktree list --porcelain 一次取回该仓库全部 worktree 的路径、HEAD 与分支,取代逐 worktree 的 branch --show-currentrev-parse HEAD,以及成对的 rev-parse --git-common-dir。出现在这份清单里本身就是共用 Git 公共目录的证据。
  • git for-each-ref refs/heads refs/remotes/origin 一次取回每个本地分支的上游与每个引用的对象 ID,取代逐开发线的 show-refrev-parse origin/<branch>rev-parse @{upstream}

worktree 不在 anchor 清单里时回退到原有的单次探测,missing worktreeunexpected Git common-dir 两种诊断仍可区分。ReadBudget 的字节计费与观测 deadline 照常穿透,观测点由每条开发线移到每个仓库。

验证

输出等价性:在 4 个真实多仓库工作区上,用改动前后的两棵源码树跑同一个 doctor(),findings 列表(含顺序)逐条相同。

工作区 改动前 改动后 findings
5 仓库 × 13 开发线 399 次 git 调用 / 5.61s 16 次 / 0.30s 58 条,一致
4 仓库 × 1 开发线 28 次 / 0.41s 13 次 / 0.20s 10 条,一致
1 仓库 × 2 开发线 18 次 / 0.26s 4 次 / 0.08s 5 条,一致
1 仓库 × 1 开发线 4 次 / 0.06s 4 次 / 0.06s 4 条,一致

测试Ran 1123 tests。与同一 HEAD 上跑出的改动前基线逐条对比,失败集合完全相同,没有新增失败。基线上既有的两条环境敏感失败(test_inspect_timeout_reaps_hung_descendantstest_legacy_board_status_stays_on_protocol_id)与本改动无关。

tests/test_control_plane_read_budget.py 的故障注入点 _raise_deadline_on_worktree 同步扩展为「路径含 versions/ git worktree 调用」。原因是 doctor 现在通过 anchor 批量观测开发线,不再逐个读 worktree 路径,旧判据打不中。这条注入器在改动前后两版代码上都通过,是放宽而非削弱,被测不变量(超时后保留已完成的 FAIL、追加 deadline finding、不产生 PASS line:*)未变。

0.7.14 发布准备

docs/publishing.md 同步了全部 7 处版本绑定:pyproject.tomluv.lockCHANGELOG.mdsrc/dyro/bridge/skill/SKILL.md 的 bridge skill client version,以及 test_clitest_console_artifactstest_release_gates 中的版本断言。

本地锁定验证全部通过:

uv lock --check
uv sync --locked --all-extras --dev
uv run ruff check src tests experiments          → All checks passed!
uv run python -m build                            → dyro-0.7.14.tar.gz / dyro-0.7.14-py3-none-any.whl
uv run python -m twine check --strict dist/*      → PASSED / PASSED

uv lock 在更新项目版本的同时,把 importlib-metadatazipp 的依赖标记收紧为 python_full_version < '3.14'。这是 uv 重解析出的上游 metadata 修正,无任何包版本变化。

合入后需要在 main 的对应 SHA 上打 v0.7.14、创建 GitHub Release,并在 pypi Environment 完成人工批准。

未 push 的开发线不再把 next/start 卡成 needs_repair;task close 拒绝符号链接工作树;dry-run 与复核拒绝按契约执行。
task loop/daemon 在复核失败时非零退出;事件追加失败标记 overlay 不完整;merge --dry-run --push 改为真实预检。
把 feat/dev_0814 上的控制面诚实性与任务关闭收口收进 0.7.13。
版本停在 0.7.x,不改 0.7.12 历史,不发明新功能。
next / Console 在仅缺 origin/<branch> 时保持 ready;测试改为断言 WARN 契约。
doctor() 原先对每个 (开发线, 仓库) 组合串行发约 8 条 git 命令。慧衣橱工作区
(5 个仓库 × 13 条开发线)一次需要 399 次子进程调用、耗时 5.6s;首页菜单与
开发线准入闸门各跑一轮,进一条开发线约 11s。

改为按仓库预取两份观测:

- git worktree list --porcelain 一次取回该仓库全部 worktree 的路径、HEAD 与
  分支,取代逐 worktree 的 branch --show-current、rev-parse HEAD 以及成对的
  rev-parse --git-common-dir。出现在这份清单里本身就是共用 Git 公共目录的
  证据。
- git for-each-ref refs/heads refs/remotes/origin 一次取回每个本地分支的上游
  与每个引用的对象 ID,取代逐开发线的 show-ref、rev-parse origin/<branch> 与
  rev-parse @{upstream}。

worktree 不在清单里时回退到原有的单次探测,"missing worktree" 与
"unexpected Git common-dir" 两种诊断仍可区分。ReadBudget 的字节计费与 deadline
照常穿透,观测点由每条开发线移到每个仓库。

慧衣橱工作区的调用次数由 399 降到 16,耗时由 5.61s 降到 0.30s;四个真实工作区
的 findings 列表(含顺序)与改动前逐条相同。

测试故障注入点 _raise_deadline_on_worktree 同步扩展为「路径含 versions/ 或为
git worktree 调用」,新旧两版代码均通过,被测不变量未变。
把版本号推进到 0.7.14,并同步所有与版本绑定的断言与资产:
`pyproject.toml`、`uv.lock`、bridge skill 的 client version,以及
`test_cli`、`test_console_artifacts`、`test_release_gates` 中的版本断言。
CHANGELOG 记录本版唯一的对外改动:doctor 改用批量 Git 观测。

`uv lock` 在更新项目版本的同时,把 `importlib-metadata` 对 `zipp` 的依赖
标记收紧为 `python_full_version < '3.14'`。这是本机 uv 重解析出的上游
metadata 修正,没有任何包版本变化。

本地锁定验证:`uv lock --check`、`uv sync --locked --all-extras --dev`、
`ruff check src tests experiments`、`python -m build`、
`twine check --strict` 全部通过。
@vercel

vercel Bot commented Sep 11, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
dyro Error Error Sep 11, 2026 10:40am UTC
dyro-engineering-flow Error Error Sep 11, 2026 10:40am UTC

main 上的 #65 以 squash 方式合入,使本分支与 main 在 0.7.13 的版本绑定
文件上产生同容不同史的冲突。合并前已验证 git diff origin/main a417f22
为空,即 main 的树与本分支合入 0.7.13 之后的树逐字相同,main 不含本分支
缺少的任何内容;冲突解析一律取本分支侧,合并后树与合并前 HEAD 相同。
@Dandre126
Dandre126 merged commit f462569 into main Sep 11, 2026
9 of 11 checks passed
Dandre126 added a commit that referenced this pull request Sep 11, 2026
main 上的 #66 以 squash 方式合入,本分支与 main 再次同容不同史。合并前
已确认 git diff origin/main HEAD 只含本分支尚未发布的 4 个文件,main 不
含本分支缺少的内容;冲突解析取本分支侧,合并后树与合并前 HEAD 相同。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant