Skip to content

v0.17.0

Choose a tag to compare

@mliotta mliotta released this 15 May 18:49
· 111 commits to main since this release
eca38e7

Highlights

  • Full multi-language coverage for Ruby, Kotlin, Swift, PHP, Go, and Rust — god-file detection, error-swallow detection (empty catch/rescue/if err != nil { }/if let Err/Err => arms), semantic chunking, and import edges all light up for files that previously fell through to "extension recognized, zero signal."
  • Empty-catch detector for JS/TS/TSX/Java/C#/C++ — tree-sitter-backed, surfaced alongside the existing Python swallowed_except detector in the KNOWN-ISSUES prompt section.
  • Breaking dep change: tree-sitter is now required, not optional. Switched from the unmaintained tree-sitter-languages to tree-sitter-language-pack>=0.13.0,<1.0 — wheels for Python 3.10–3.14 across macOS universal2, Linux x86_64/aarch64/musl, and Windows x64.
  • Dead code removed: neo.self_correction and neo.input_templates (625 lines, unreachable since v0.7.0).
  • neo serve — CAR-hosted tool surface for neo.process, Phase 1 of the CAR migration.

Full details in CHANGELOG.md.

Migration

If you were pinning tree-sitter-languages in a downstream environment, switch to tree-sitter-language-pack. Fresh pip install neo-reasoner users get the new stack automatically.