All notable changes to Infigraph are documented here.
Format follows Keep a Changelog. Versions follow Semantic Versioning.
- Remote (shared-Neo4j) mode, follow-ups found in production testing:
get_symbols_in_file,get_skeleton,symbols_in_range, andget_file_depsnow accept a repo-relative file path (not just the fully namespaced one) by normalizing it against the repo namespace — previously a bare path returned "not indexed" even though the file was indexed.get_symbols_in_fileoutput now includes each symbol'sid, which is the argument the traversal tools (trace_callers,get_code_snippet,symbol_context,find_all_references, …) require — they were undiscoverable.get_code_snippetstrips theorg/repo/namespace before joining to the project root, fixing a double-prefixed path that made source reads fail.detect_config_bindingsis repo-scoped (was returning other projects' bindings).- Contract sync into Postgres is chunked to stay under the 65535 bound-parameter limit — large groups previously failed with "parameters is not drained", dropping cross-service contract data.
- Remote (shared-Neo4j) mode: MCP read tools no longer return another project's
data or
Symbols: 0. Read paths that queried the global graph are now scoped to the repo (org/repo), resolved from the group registry:apply_repo_filter(MCP reader) resolves the repo namespace from the group registry instead of guessing fromINFIGRAPH_ORG, fixingSymbols: 0(withFolders/Containsstill populated) when the env org didn't match.detect_cross_cutting,detect_routes, andsearch/semantic_search(remote) now return only the queried repo instead of all repos.get_dependenciesis scoped through the repo's own modules, and theDEPENDS_ONedge is written only against in-repo modules (previouslym.file CONTAINS 'package.json'cross-linked every repo's manifest).detect_clustersscopes CALLS edges and symbols to the repo.GraphBackendgains arepo_filter()accessor so backend-agnostic analysis passes can scope their own Cypher.
- Remote (shared-Neo4j) mode: a single-repo webhook no longer re-indexes every
repo in the group, and combined-graph queries no longer return 0 while
per-repo queries succeed. Root cause was read/write disagreement on repo
identity plus a Kùzu-only transaction statement leaking into Neo4j:
- Webhook now pulls and runs
group buildonly — the standaloneindexstep (wrong namespace + stole the commit-change signal) is removed. f.repois stamped asorg/repoat write time in both the per-file and bulk write paths; the global unfilteredf.repobackfill inupsert_repo(which stole orphan files across repos) is removed.- Group indexing scopes reads to the repo being indexed, so reindexing one repo no longer deletes every other repo's data from the shared graph.
- Read filters resolve the same
org/repokey that writes use, looked up from the group registry (source of truth) rather than derived fromINFIGRAPH_ORG. Fixes MCP tools reportingSymbols: 0 / Files: 0(with globally-countedFolders/Containsstill populated) when the server'sINFIGRAPH_ORGdidn't match the org a repo was indexed under. BEGIN TRANSACTION/COMMIT/ROLLBACKare no-ops on the Neo4j backend (valid Kùzu, invalid Cypher), fixing concern/taint/reflection/config/ dynamic-URL analysis in remote mode.- Org-scoped groups are usable from the CLI:
group add/build/indexresolve a bare group name to its org-qualified key.
- Webhook now pulls and runs
- Remote mode
indexnow resolves a repo'sorg/reponamespace from the group registry and refuses to index a repo that isn't registered in any group, instead of inventing a namespace from the directory name.
0.10.1 - 2026-05-11
- Pascal/Delphi language support (.pas, .pp, .dpr, .dpk, .lpr)
- VB6 language support (.bas, .cls, .frm)
- 30 MCP tools for AI coding agents (Claude Code, Cursor, Copilot, and more)
- Web UI at localhost:9749 with graph explorer, route map, and multi-repo groups
- Multi-repo groups with cross-service HTTP dependency detection
- SCIP index import for compiler-grade symbol enrichment
- lsp-to-scip bridge for any LSP server (C/C++, Zig, Swift, Dart, Elixir, and more)
- Dead code detection, blast radius analysis, git diff impact mapping
- Louvain community detection for functional module discovery
- HTTP route/endpoint detection across 22 frameworks
- Graph database migrated to LadybugDB (lbug 0.16, maintained Kuzu fork)
- Embedding model: potion-base-8M 256-dim, bundled — no network or proxy required