Skip to content

v0.4.0

Choose a tag to compare

@morodomi morodomi released this 22 Mar 23:35
· 132 commits to main since this release

v0.4.0 (2026-03-22)

Python observe reaches stable (ship criteria P>=98%, R>=90%), new default output format, and route extraction for 4 frameworks.

Features

  • Python observe stable: Ship criteria achieved (P=98.2%, R=96.8% on httpx). L1 prefix stripping, L2 barrel import resolution, assertion-referenced import filter, test helper exclusion, and non-SUT helper filtering (mock/version/types).
  • ai-prompt default output: New --format ai-prompt output with actionable fix guidance, now the default format.
  • Route extraction: NestJS decorators, FastAPI route decorators, Next.js App Router route.ts, Django URL conf patterns.
  • Python observe L2 improvements: Barrel wildcard re-export resolution, bare import statement resolution, attribute-access filtering for precision, stem-only fallback with barrel suppression.

Bug Fixes

  • Python observe FP reduction: is_non_sut_helper() now excludes mock*.py, __version__.py, _types.py from production file candidates.
  • Python _ prefix in L1: production_stem() strips leading _ for filename matching.
  • Python src/ layout: L2 import resolution detects src/<package>/ project structure.

Install

cargo install exspec

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