v0.6.1
What's Changed
Dead Code Detection Improvements
- Fix call-filter prefix stripping:
this.get()andself.set()are no longer silently filtered as builtins — user method calls are preserved in the call graph - Confidence levels: Dead functions now have
confidence: 'high' | 'low'— exported/public functions get low confidence since they may be consumed externally - Re-export awareness: Functions re-exported from barrel files (
index.ts) are correctly flagged as low-confidence instead of definitive dead code - Namespace import resolution: Calls like
utils.foo()(fromimport * as utils) now resolve to the standalone functionfooin the reverse call graph - Health score consistency: Health penalty now uses only high-confidence dead code, computed via the same
detectDeadCodeanalyzer used bycodemap analyze
Cross-Name Function Similarity Detection
- Multi-signal similarity scoring: New 5-signal weighted comparison (call patterns 35%, param structure 25%, structural shape 15%, call categories 15%, return type 10%)
- Cross-name detection: Functions with different names but similar behavior are now detected with a 0.6 similarity threshold
- Smart pre-filtering: Skips comparisons where line count ratio exceeds 2x to avoid noise
- Distinct recommendations: Structural matches get "Functionally similar" titles with "review and consolidate" action plans, separate from same-name "Deduplicate" recommendations
Stats
- 25 new tests (335 → 360 total)
- 0 regressions
Full Changelog: v0.6.0...v0.6.1