Skip to content

Releases: nash-dir/diffinite

v0.13.1 - Extension README corrections

23 Jun 14:49

Choose a tag to compare

What's new in v0.13.1

Docs

  • Extension README corrections for 0.13.0 features:
    • Normalize option now documents the calibrated default threshold (93) and 45-token inconclusive band that activate when Normalize is enabled.
    • "Content Match" label corrected to "Line match (difflib)" in the Cover Page table, matching the actual report output.
    • Threshold (Deep) row now shows the channel-dependent defaults (5 raw / 93 normalize).
    • Deep Compare table gains an Inconclusive column description.

v0.13.0 - Measured normalize false-positive disclosure + calibrated threshold

23 Jun 14:32

Choose a tag to compare

What's new in v0.13.0

Added

  • Measured normalize false-positive rate. --normalize reports now disclose the measured FP rate (Wilson 95% CI: [0.17%, 5.2%]), per-level recall (near-verbatim only), and small-file scope — so a flagged match is not read as a known-copy verdict. Evidence committed under example/validation/.
  • Calibrated normalize operating point. Under --normalize, --threshold-deep now defaults to 93 (calibrated for FP <= 1% on IR-Plag) instead of 5. Matches whose smaller file is below a 45-token floor are reported as inconclusive.
  • --lang-aware (opt-in): language-aware normalization via Pygments lexers, falling back to per-language keyword sets. Reduces false positives on Rust, Go, and other non-JVM languages.
  • Unicode/i18n example (example/unicode/) with end-to-end coverage for non-ASCII filenames, CJK/Cyrillic/Arabic content, and emoji.

Changed

  • The "Content Match" headline is relabelled "Line match (difflib)" in all report formats.
  • The autojunk difflib state is now shown in every Analysis Configuration banner.
  • The --max-file-size cap now also bounds fingerprint extraction in deep compare (not just the line-diff path).

Fixed

  • Console output is now ASCII/codepage-safe on Windows legacy consoles (no more cp1252 UnicodeEncodeError on diffinite --help).
  • Resolved AnalysisMetadata field-order hazard (positional construction still works), library entry point normalize-disclosure gap, dormant import error in evidence.py, and a self-contradicting disclosure when --threshold-deep 93 was set explicitly.

v0.12.2 — Similarity labels, README accuracy, pipeline hardening

22 Jun 14:36

Choose a tag to compare

First published release since 0.11.1 (0.12.0/0.12.1 were prepared but never published, so this ships their changes too).

Fixed

  • Report labels — filename vs. content similarity: every report format now shows filename similarity and content match as two clearly-labelled, distinct figures, so a 100% filename match is no longer mistaken for identical file content (CSV gains Content Match (%) next to Name Sim. (%); Markdown/HTML index/diff pages relabelled; binary pairs show SHA-256 status).
  • Bundle hygiene: dropped absolute build paths from DEPENDENCY_LICENSES.md and stopped shipping stray build logs in the VSIX.

Docs

  • Corrected and expanded both READMEs: comment-stripping coverage (45+ extensions from the language registry), previously-undocumented CLI flags, a PDF Font / CJK rendering section, and diffinite.pdfLang/diffinite.pdfFont settings. Fixed the extension README's FSM state count, broken license links, and the default deep-threshold value.

CI / Release

  • Marketplace publish now fails loudly on errors (no more silent success on an expired token); release tag is gated against package.json/pyproject.toml; added opt-in Open VSX publishing.

Verified

  • 337 tests pass; Unicode/CJK pipeline (ko/ja/zh) renders with zero tofu; win32-x64 VSIX packages cleanly (34.86 MB) with correct Apache-2.0 metadata.

v0.11.1 — CI/CD Hardening & Docs Update

28 Mar 14:07

Choose a tag to compare

Fixed

  • CI/CD Pipeline: Restore pytest across Python 3.10–3.13, add libcairo2-dev for Ubuntu runner, fix vsce --dry-run (unsupported in v3.x), unify release.yml to pwsh.
  • Tests: Update TestBreakPath assertions for CSS-based word wrapping. 18 test files restored to repo.

Changed

  • VSCE README: Document progress bar, OOM defense, time estimation, SHA-256, encoding, uncompared modes, embedded Python.
  • PyPI metadata: Expand keywords for discoverability.
  • CI dependency chain: VSCode Bundle job now requires pytest to pass first.

Previous (v0.11.0)

  • Real-time progress bar, pre-analysis time estimation, dynamic CPU calibration
  • OOM defense (5MB limit), SHA-256 evidence integrity hashes
  • PDF layout fixes: table-layout fixed, pdf-word-wrap CJK, column width weights
  • Uncompared file modes (inline/separate/none), JSON report output

v0.10.0

22 Mar 13:37

Choose a tag to compare

What's New

Binary File Handling

  • New --binary-handling {exclude,hash,error}\ option (default: \hash)
    • \exclude: skip binary files entirely
    • \hash: SHA-256 match comparison
    • \error: previous behavior (decode error)

Enhanced Sort Options

  • --sort-by: \ ilename\ (basename), \path\ (full), \similarity,
    atio\
  • --sort-order asc|desc\

PDF Large File Warning

  • Pre-flight warning for diffs exceeding 500KB HTML
  • Suggests --collapse-identical, --no-merge, or --report-html\

VSCode Extension

  • Binary files dropdown, Sort by/order dropdowns
  • Options panel reorganized — common options always visible in simple mode

v0.9.6 — Moved Block Detection + Bates Presets

18 Mar 14:48

Choose a tag to compare

What's New

Moved Block Detection

  • --detect-moved\ flag: highlights relocated code blocks (purple=original, blue=destination)

Bates Numbering Presets

  • --bates-prefix, --bates-suffix, --bates-start\ CLI flags
  • VSCode preset dropdown from \settings.json\

CI Pipeline Fixes

  • Pinned vsce@3.2.2 (pre-secret-scanning era)
  • Resolve macOS Python.framework symlinks before VSIX packaging
  • Use --packagePath\ for marketplace publish (avoids 58MB re-package timeout)
  • 3x retry with 30s backoff for transient marketplace API failures

Full Changelog: v0.9.2...v0.9.6

v0.9.5 — Moved Block Detection + Bates Presets

18 Mar 14:35

Choose a tag to compare

What's New

Moved Block Detection

  • --detect-moved\ flag: highlights relocated code blocks in purple/blue

Bates Numbering Presets

  • --bates-prefix, --bates-suffix, --bates-start\ CLI flags
  • VSCode preset dropdown from \settings.json\

CI Fixes (since v0.9.2)

  • Pinned vsce@3.2.2 (pre-secret-scanning)
  • Resolve macOS \Python.framework\ symlinks before VSIX packaging (\cp -rL)

Full Changelog: v0.9.2...v0.9.5

v0.9.4 — Moved Block Detection + Bates Presets

18 Mar 14:26

Choose a tag to compare

What's New

Moved Block Detection

  • --detect-moved\ flag: highlights relocated code blocks in purple/blue

Bates Numbering Presets

  • --bates-prefix, --bates-suffix, --bates-start\ CLI flags
  • VSCode preset dropdown from \settings.json\

Bug Fixes

  • Fixed CLI args (--encoding, --sort-by, --sort-order) not passed from VSCode
  • Pinned vsce@3.2.2 to resolve VSIX packaging secret scan crash on binary bundles

Full Changelog: v0.9.3...v0.9.4

v0.9.3 — Moved Block Detection + Bates Presets

18 Mar 14:15

Choose a tag to compare

What's New

Moved Block Detection

  • --detect-moved\ flag detects code blocks relocated rather than simply added/deleted
  • Highlight: purple (original position) / blue (destination)

Bates Numbering Presets

  • --bates-prefix, --bates-suffix, --bates-start\ CLI flags
  • VSCode preset dropdown with auto-fill from \settings.json\

Bug Fixes

  • Fixed --encoding, --sort-by, --sort-order\ not passed from VSCode to CLI
  • Pinned vsce@3.2.2 + VSCE_DISABLE_SECRETS_SCAN for CI binary bundles

Full Changelog: v0.9.2...v0.9.3

v0.9.1

18 Mar 01:00

Choose a tag to compare

Bug Fix

  • Fixed UnicodeEncodeError on Windows: CLI help text contained Unicode arrow character that can't be encoded in Windows cp1252 console, causing --help and binary verification to crash.

Full v0.9.x Features (from v0.9.0)

  • Encoding auto-detect + manual override (--encoding)
  • SQL keyword expansion (142+ keywords, 7 file extensions)
  • Report sorting (--sort-by filename/size/ratio, --sort-order asc/desc)
  • darwin-arm64 VSIX packaging fix