Skip to content

v0.51.1 — 验证修复补丁

Choose a tag to compare

@Gawg-AI Gawg-AI released this 05 Jul 14:30

v0.51.1 — 验证修复补丁 (Post-Release Verification Fixes)

发布日期:2026-07-05
SemVer 等级:PATCH(仅 bug 修复 + 测试/配置硬化,无 API 变更)
前序版本:v0.51.0(commit d23e5ff

概要

v0.51.1 是 v0.51.0 发布后的验证硬化补丁版本,修复 v0.51.0 发布后多批次重验证
(Batches A–E)发现的 4 项 bug。本版本为纯修复版本:0 新功能、0 BREAKING 变更、
0 新 crate、0 新协议
。56 个 crate 数量与 v0.51.0 完全一致。

修复清单

BUG-A1 — config save/load roundtrip 测试偶发失败 (P2)

eneros-core::config::tests::test_save_and_load_roundtripcargo test --workspace
并行运行时偶发失败(missing field topology / 空文件)。

调查结论:生产代码无 bug——to_toml_string()EnerOSConfig::default() 产出非空 TOML。
失败由测试使用固定临时路径 eneros_config_test/test_config.toml 在并发测试或残留临时文件
场景下产生竞态。

修复:测试临时路径改为唯一路径(PID + nanos),新增非空 + [topology] section 回归断言。

BUG-C1-1 — FastDecoupledSolver 零电压初值产生 NaN (P1)

FastDecoupledSolver::solvev_initial 含 0.0 时产出 NaN 电压,返回 Ok 含 NaN
而非报错。根因:FD solver 在 P-θ 与 Q-V 更新中对 v[i] 做除法(Stott & Alsac /V 缩放),
未校验初值。

修复solve() 顶部校验所有 v_initial 条目为正有限数;若任何条目 ≤ 0 或非 finite,
返回 Err(EnerOSError::PowerFlow("v_initial contains non-positive or non-finite voltage..."))

新增测试

  • fd_solver.rs::test_fd_rejects_non_positive_voltage_initial(单元回归,覆盖 0/负/NaN/Inf)
  • fd_solver_boundary.rs(新文件,7 边界测试:空 Y-Bus / 单节点 / 奇异 B' / 零电压 / 极值 tolerance / max_iterations=0)

BUG-E3-1 — eneros.toml [quality].fuzz_targets 缺失 (P3)

eneros.toml [quality] section 不含 fuzz_targets 字段。

修复:新增 fuzz_targets = ["iec104", "iec103", "dlt698", "pmu_c37118"]

BUG-E3-2 — eneros.toml proptest_cases=1000 与注释 256 漂移 (P3)

eneros.toml proptest_cases = 1000,但注释说 "proptest 默认 256 cases(CI 友好)"。

修复:改为 proptest_cases = 256,与注释一致。

验证结果(F2 全量质量门)

质量门 结果
cargo fmt --all -- --check PASS(0 diff)
cargo build --workspace PASS(0 error)
cargo clippy --workspace --all-targets -- -D warnings PASS(0 warning)
cargo test --workspace PASS(~4018 passed / 0 failed / 17 ignored)
cargo doc --workspace --no-deps PASS(0 new warning)
cargo deny check PASS(advisories/bans/licenses/sources 全 ok)

升级指南

v0.51.1 是 PATCH 版本,无 BREAKING 变更,可直接从 v0.51.0 升级:

git fetch && git checkout v0.51.1
cargo build --workspace

行为变更FastDecoupledSolver::solve 现在对 v_initial 中的非正/非 finite 电压返回
Err(EnerOSError::PowerFlow(...)),而非静默产出 NaN。调用方应确保初值为正有限数
(flat start 使用 NoneSome(&[1.0; n]))。

详细变更

详见 CHANGELOG.md §"[0.51.1]"。