Skip to content

v0.4.4

Choose a tag to compare

@morodomi morodomi released this 24 Mar 04:56
· 71 commits to main since this release

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 a mod_item sibling. (#162)
  • Rust L2 export symbol filter: apply_l2_imports() now filters L2 matches through file_exports_any_symbol(). (#162)
  • Rust pub-only visibility filter: exported_symbol.scm now distinguishes pub from pub(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 exspec

Full changelog: https://github.com/morodomi/exspec/blob/main/CHANGELOG.md