Releases: nash-dir/diffinite
Releases · nash-dir/diffinite
v0.13.1 - Extension README corrections
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 (
5raw /93normalize). - Deep Compare table gains an Inconclusive column description.
v0.13.0 - Measured normalize false-positive disclosure + calibrated threshold
What's new in v0.13.0
Added
- Measured normalize false-positive rate.
--normalizereports 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 underexample/validation/. - Calibrated normalize operating point. Under
--normalize,--threshold-deepnow 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
autojunkdifflib state is now shown in every Analysis Configuration banner. - The
--max-file-sizecap 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
AnalysisMetadatafield-order hazard (positional construction still works), library entry point normalize-disclosure gap, dormant import error inevidence.py, and a self-contradicting disclosure when--threshold-deep 93was set explicitly.
v0.12.2 — Similarity labels, README accuracy, pipeline hardening
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 toName Sim. (%); Markdown/HTML index/diff pages relabelled; binary pairs show SHA-256 status). - Bundle hygiene: dropped absolute build paths from
DEPENDENCY_LICENSES.mdand 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.pdfFontsettings. 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
Fixed
- CI/CD Pipeline: Restore pytest across Python 3.10–3.13, add
libcairo2-devfor Ubuntu runner, fixvsce --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
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
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
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
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
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
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