Semantic extractors for eleven more languages, so all sixteen registered languages now report canonical concepts: C, C++, Java, Ruby, PHP, Swift, Kotlin, C#, Scala, Lua, and shell join TypeScript/JavaScript, Python, Rust, and Go.
Hardening and performance:
- Hash collision safety: every content-hash match is verified against the full subtree, in the matcher and the cross-file correlator
- Content-addressed parse cache: repeated file content in a run parses once
- Streaming ndjson output: one JSON object per file as results land, in input order
- Config file support: differens.toml or .differensrc.json sets the default format and driver extensions
- install-git-driver now writes .gitattributes itself, preserving existing rules
- Binary tier plugin interface for format-aware binary diffs
- Renamed-and-edited files across directories report as one move
- env files get key-path diffs; CSV, TSV, GraphQL, and Dockerfiles route to line diffs
Tests: 420 unit, integration, and e2e tests, zero failures, 95% line coverage gated in CI. A 150-file mixed-tier repo snapshot pins the exact changed-file set.
npm: npm install -g differens