v0.4.4
v0.4.4 (2026-03-24)
Rust observe precision from 76.7% to 100%, fan-out filter for high-frequency utility class FP, and pub-only visibility filter.
Features
- Rust L0 barrel self-mapping exclusion:
detect_inline_tests()no longer self-maps barrel files (mod.rs, lib.rs, main.rs) that have#[cfg(test)]but no test module. (#161) - Rust L0 mod_item verification:
detect_inline_tests()now verifies that#[cfg(test)]is followed by amod_itemsibling. (#162) - Rust L2 export symbol filter:
apply_l2_imports()now filters L2 matches throughfile_exports_any_symbol(). (#162) - Rust pub-only visibility filter:
exported_symbol.scmnow distinguishespubfrompub(crate)/pub(super). (#168) - Observe fan-out filter: Post-processing filter excludes production files mapped to more than
max_fan_out_percent(default 20%) of all test files. Configurable via[observe]in.exspec.toml. Disable with--no-fan-out-filter. (#129)
Dogfooding
- Rust observe: P=76.7% -> P=100% (50-pair, tokio). Ship criteria P>=98% PASS.
- PHP observe: P=90.0% -> P=96.0% (50-pair, laravel). FAIL — deferred to v0.4.5.
- TypeScript/Python: unchanged (stable).
Install
cargo install exspecFull changelog: https://github.com/morodomi/exspec/blob/main/CHANGELOG.md