Repository navigation
v0.58.0 — 验证阶段真实现、覆盖率口径修正、编辑核心修复
概述
三个实质变化:验证阶段从“诚实”变成“真的会验证”、修正了长期错误的覆盖率口径、修掉编辑核心两处真实缺陷。
1. 验证阶段真的会验证了
新增 src/workflow/verification_runner.py:
- 默认命令:
<cwd>/tests/存在 →python -m pytest -q --tb=short tests CLAWD_VERIFY_COMMAND可覆盖(Windows 引号/反斜杠已处理)- 以退出码判定,保留命令、耗时、输出尾部作为证据
passed/failed/timeout/error/not_configured- 未配置时返回
not_configured,绝不冒充通过
接线:
pipeline.py的ralph-verify:passed→SUCCESS,failed/timeout/error→FAILED,not_configured→SKIPPEDstages/ralph_verify_stage.py:未通过返回failed(此前恒返回completed),未配置时提前结束迭代
2. 所有 pipeline 阶段真实执行时崩溃(P0)
4 个内嵌阶段类都用 self._logger,但基类 PipelineStage 没有该属性 ——
真实执行第一个阶段就 AttributeError。此前只测注册与构造,从未真正跑过阶段。
修复后做了真实端到端验证:构造含 ralph-verify 的 pipeline,实际执行,verified=True。
3. 编辑核心两处真实缺陷
| 位置 | 问题 | 后果 |
|---|---|---|
udiff_parser._directly_apply_hunk |
从 search_replace 导入不存在的 SearchTextNotUnique(该名字定义在本模块) |
apply_hunks 的直接应用分支永远 ImportError |
search_replace.try_strategy |
只捕获 (ValueError, IndexError, OSError);InvalidGitRepositoryError 穿透 |
非 git 目录下多策略回退矩阵中断,编辑失败 |
新增 tests/tools_runtime/test_udiff_parser.py(15 用例)。
4. 覆盖率口径修正
文档长期写“~20%”,来自 2026-10-15 的陈旧 coverage.json。全量 pytest --cov=src 实测:
覆盖率 46.15%(25,877 / 56,072 行)
仍低于 fail_under = 60,但 v0.53 目标(≥35%)已达成。
README / 指南 / workflow_status 中的旧数字已更正。
新增 scripts/coverage_gap.py:只对「生产可达」模块看覆盖缺口,
避免给死代码刷覆盖率数字。
5. 部署验证边界
- 本地安装已验证:
pip install -e .成功;clawd.exe --version / agent keywords / catalog reload全部实跑通过 - 容器部署未验证:本机未安装 Docker,
docker compose build/up无法执行;
docs/MAINTENANCE.md已写清缺失条件与恢复验证步骤,不冒充已部署 - 本项目是 CLI/库,无常驻服务进程;“线上热更新”没有可验证的落地路径
验证
pytest tests/ -q → 3079 passed / 0 failed
ruff --select F821,F811 → All checks passed
scripts/import_sweep.py → 0 缺陷(640 模块)
scripts/reachability.py → 431 生产可达(新增 verification_runner 与 verifier)
真实 pipeline 端到端(ralph-verify) → SUCCESS, verified=True
pip install -e . + clawd.exe → 通过
仍未闭合
覆盖率 46.15%(目标 60%)· 死模块 135 · 静默吞异常 101 · CLI 启动剩余 ~20s ·
容器部署与线上热更新(缺 Docker / 部署目标与凭证)。
🤖 Generated with Claude Code