Skip to content

Latest commit

 

History

History
43 lines (41 loc) · 5.51 KB

File metadata and controls

43 lines (41 loc) · 5.51 KB

Latest News

Newest first. Entries are the project's headline features and capabilities for users: new language support, analysis, querying, graph, and integrations. They are NOT for CI, developer tooling, release or build automation, refactors, documentation, tests, or bug fixes; leave that kind out. Every entry above the latest-release-end marker is rendered into the README's "Latest News" section by scripts/generate_readme.py, so edit entries here rather than in the README. The release workflow prepends feature entries via scripts/update_news.py, derived from the release's generated Highlights (dropping non-feature themes), and moves the marker below the block it inserted; hand edits remain welcome between releases and render too.

  • File System Operations: Improved handling of file system operations with platform-neutral joins and safeguards against removing project root.
  • Cache Management: Enhanced cache management with atomic publishing, dedicated cache stamps, and improved deletion handling for orphan caches.
  • Graph Querying: Introduced deterministic graph query tools for more precise analysis of code relationships.
  • Re-ingestion & Parsing: Improved re-ingestion processes, including handling of deleted files, re-parsing of related files, and rebuilding of key data structures.
  • Security & Stability: Addressed security concerns by blocking removal of project root and improved stability by preventing skipped edits and handling orphaned caches.
  • C++ & Go Integration: Enhanced integration with C++ and Go, including parsing of module interfaces and handling of module-level class aliases.
  • Index Consistency: Ensure incremental deletes match clean index states.
  • Patch Reporting: Distinguish between unverifiable and verified patches in reports.
  • Windows Teardown: Clear the read-only bit when removing a temp repo for successful Windows teardown.
  • TypeScript Grading: Grade TypeScript inheritance against the tsc oracle for improved accuracy.
  • Exclude Set Handling: Record the exclusion set to ensure --exclude flags are correctly applied across runs.
  • MCP Indexing: Honour .cgrignore and .gitignore in MCP index and update processes, matching the CLI.
  • Transactional Multi-File Edits: Multi-file edits now run as a transaction with staged verification and undo, alongside concrete-syntax-preserving patchers per language and import rewriting for renames and moves.
  • Scala Inheritance and Markdown Front-Matter: Scala INHERITS edges are read from extends/with clauses, and declared Markdown front-matter is read onto the Module node.
  • Graph Retrieval: MCP and CLI graph retrieval is scoped to one project, and call-site and import-site locations are now stored on graph edges.
  • Direct MCP Tools: find_duplicate_code and get_function_source are exposed as direct MCP tools, and PHP use function imports resolve through declared namespaces.
  • Graph Indexing: The name property is now indexed for improved graph read-path lookups. SQL routines are also indexed to resolve calls that name their target in a string.
  • Duplicate Code Detection: An AST-based duplicate code detection system has been introduced, alongside fixes for duplicate detection across multiple repositories.
  • Agentic QA: A new agentic QA benchmark harness and indexing-time benchmark have been added.
  • Java Taint Improvements: Enhanced taint tracking in Java, including handling JDK shims, chained call receivers, literal arguments, and type-test patterns.
  • C# Taint Propagation: Improved taint propagation in C# with refinements to argument binding, tuple deconstruction, and await plumbing methods.
  • Semantic Frontend Enhancements: Added in-process Jedi semantic frontend for Python and re-run semantic frontends on the watch path for more accurate analysis.
  • Protocol Buffer Indexing: Introduced a canonical protobuf index with provenance manifest and a verify command for improved data integrity.
  • Structural Analysis: Added structural snapshot diffs between protobuf indexes and structural ast-grep support for seven additional languages.
  • Runtime Call Tracing: A dynamic tracer runs your code (typically the test suite) and merges the calls that actually happened into the graph as CALLS edges (flagged where static analysis missed them), so dispatch through interfaces, virtual methods, function pointers, reflection, and framework routing becomes visible. Convert a run from Python, the JVM, Node.js, .NET, PHP, Lua, Dart, Go, Rust, or C/C++ with cgr trace, or ingest production pprof profiles from an eBPF continuous profiler (Parca, Pyroscope, OpenTelemetry) with cgr trace convert --format ebpf.
  • Ruby Support: Ruby joins the graph through a new pluggable ast-grep tier that adds a language from a single YAML pattern file, emitting Module, Function, and Class nodes plus import edges without a hand-written parser.
  • Structural Search & Replace: Find and rewrite code by AST pattern with ast-grep, exposed as agent tools so you can match and transform structure across the whole codebase instead of relying on text or regex.
  • Data-Flow Tracing: New FLOWS_TO taint edges follow values through assignments, function calls, and I/O sinks. This release adds C#, Java, C, and Go, bringing tracing to 10 languages (Python, JavaScript, TypeScript/TSX, Go, Java, Rust, C++, C, and C#).
  • C# and Dart Support: Full C# (with Roslyn semantic analysis) and Dart/Flutter now join the graph, bringing the total to 14 supported languages.