Skip to content

v0.3.2

Choose a tag to compare

@rs545837 rs545837 released this 23 Apr 06:44
· 51 commits to main since this release

What's Changed

Fix silent drops in import merger and add line-level safety nets

Import merger fixes:

  • Single-line ours + multi-line theirs: merge specifiers instead of keeping only ours's single line
  • Parse specifiers from single-line imports (fixes empty theirs_specs causing all specifiers to be removed when theirs is single-line)
  • Remove wrong base_specs skip in "truly new imports" section that dropped theirs imports when source existed in base

Safety nets (run on every clean merge):

  • Line-level invariant: lines present in all 3 inputs must appear in output, otherwise fall back to git
  • Two-tier added-lines check: significant lines (>40 chars) trigger fallback at threshold 0, shorter lines at threshold 3, with substring matching to avoid false positives from reformatting

Verification

Verified on JetBrains git_good_bench: 0 true silent drops across 450 merges, 667 conflict files (Python, Java, Kotlin). Issues #58 and #60 reproductions both produce correct output.

Full Changelog: v0.3.1...v0.3.2

What's Changed

Full Changelog: v0.3.1...v0.3.2