@@ -195,6 +195,7 @@ Full agent setup: [AI Agent Guide](docs/guides/ai-agent-guide.md) · [CLAU
195195| 👀 | ** Watch mode** | Incrementally update the graph as files change |
196196| 🤖 | ** MCP server** | 30-tool MCP server for AI assistants; single-repo by default, opt-in multi-repo |
197197| ⚡ | ** Always fresh** | Three-tier incremental detection — sub-second rebuilds even on large codebases |
198+ | 🔬 | ** Data flow analysis** | Intraprocedural parameter tracking, return consumers, argument flows, and mutation detection — all 11 languages |
198199| 🧮 | ** Complexity metrics** | Cognitive, cyclomatic, nesting depth, Halstead, and Maintainability Index per function |
199200| 🏘️ | ** Community detection** | Louvain clustering to discover natural module boundaries and architectural drift |
200201| 📜 | ** Manifesto rule engine** | Configurable pass/fail rules with warn/fail thresholds for CI gates via ` check ` (exit code 1 on fail) |
@@ -208,7 +209,7 @@ Full agent setup: [AI Agent Guide](docs/guides/ai-agent-guide.md) · [CLAU
208209| 📋 | ** Composite audit** | Single ` audit ` command combining explain + impact + health metrics per function — one call instead of 3-4 |
209210| 🚦 | ** Triage queue** | ` triage ` merges connectivity, hotspots, roles, and complexity into a ranked audit priority queue |
210211| 📦 | ** Batch querying** | Accept a list of targets and return all results in one JSON payload — enables multi-agent parallel dispatch |
211- | 🔬 | ** Dataflow analysis** | Track how data moves through functions with ` flows_to ` , ` returns ` , and ` mutates ` edges — included by default (JS/TS) , skip with ` --no-dataflow ` |
212+ | 🔬 | ** Dataflow analysis** | Track how data moves through functions with ` flows_to ` , ` returns ` , and ` mutates ` edges — all 11 languages, included by default, skip with ` --no-dataflow ` |
212213| 🧩 | ** Control flow graph** | Intraprocedural CFG construction for all 11 languages — ` cfg ` command with text/DOT/Mermaid output, included by default, skip with ` --no-cfg ` |
213214| 🔎 | ** AST node querying** | Stored queryable AST nodes (calls, ` new ` , string, regex, throw, await) — ` ast ` command with SQL GLOB pattern matching |
214215| 🧬 | ** Expanded node/edge types** | ` parameter ` , ` property ` , ` constant ` node kinds with ` parent_id ` for sub-declaration queries; ` contains ` , ` parameter_of ` , ` receiver ` edge kinds |
@@ -225,6 +226,7 @@ See [docs/examples](docs/examples) for real-world CLI and MCP usage examples.
225226``` bash
226227codegraph build [dir] # Parse and build the dependency graph
227228codegraph build --no-incremental # Force full rebuild
229+ codegraph build --dataflow # Extract data flow edges (flows_to, returns, mutates)
228230codegraph build --engine wasm # Force WASM engine (skip native)
229231codegraph watch [dir] # Watch for changes, update graph incrementally
230232```
@@ -327,7 +329,8 @@ codegraph ast -k call # Filter by kind: call, new, string, regex
327329codegraph ast -k throw --file src/ # Combine kind and file filters
328330```
329331
330- > ** Note:** Dataflow (JS/TS only) and CFG are included by default. Use ` --no-dataflow ` / ` --no-cfg ` for faster builds.
332+ > ** Note:** Dataflow and CFG are included by default for all 11 languages. Use ` --no-dataflow ` / ` --no-cfg ` for faster builds.
333+
331334
332335### Audit, Triage & Batch
333336
@@ -477,15 +480,15 @@ codegraph registry remove <name> # Unregister
477480
478481| Language | Extensions | Coverage |
479482| ---| ---| ---|
480- | ![ JavaScript] ( https://img.shields.io/badge/-JavaScript-F7DF1E?style=flat-square&logo=javascript&logoColor=black ) | ` .js ` , ` .jsx ` , ` .mjs ` , ` .cjs ` | Full — functions, classes, imports, call sites |
481- | ![ TypeScript] ( https://img.shields.io/badge/-TypeScript-3178C6?style=flat-square&logo=typescript&logoColor=white ) | ` .ts ` , ` .tsx ` | Full — interfaces, type aliases, ` .d.ts ` |
482- | ![ Python] ( https://img.shields.io/badge/-Python-3776AB?style=flat-square&logo=python&logoColor=white ) | ` .py ` | Functions, classes, methods, imports, decorators |
483- | ![ Go] ( https://img.shields.io/badge/-Go-00ADD8?style=flat-square&logo=go&logoColor=white ) | ` .go ` | Functions, methods, structs, interfaces, imports, call sites |
484- | ![ Rust] ( https://img.shields.io/badge/-Rust-000000?style=flat-square&logo=rust&logoColor=white ) | ` .rs ` | Functions, methods, structs, traits, ` use ` imports, call sites |
485- | ![ Java] ( https://img.shields.io/badge/-Java-ED8B00?style=flat-square&logo=openjdk&logoColor=white ) | ` .java ` | Classes, methods, constructors, interfaces, imports, call sites |
486- | ![ C#] ( https://img.shields.io/badge/-C%23-512BD4?style=flat-square&logo=dotnet&logoColor=white ) | ` .cs ` | Classes, structs, records, interfaces, enums, methods, constructors, using directives, invocations |
487- | ![ PHP] ( https://img.shields.io/badge/-PHP-777BB4?style=flat-square&logo=php&logoColor=white ) | ` .php ` | Functions, classes, interfaces, traits, enums, methods, namespace use, calls |
488- | ![ Ruby] ( https://img.shields.io/badge/-Ruby-CC342D?style=flat-square&logo=ruby&logoColor=white ) | ` .rb ` | Classes, modules, methods, singleton methods, require/require_relative, include/extend |
483+ | ![ JavaScript] ( https://img.shields.io/badge/-JavaScript-F7DF1E?style=flat-square&logo=javascript&logoColor=black ) | ` .js ` , ` .jsx ` , ` .mjs ` , ` .cjs ` | Full — functions, classes, imports, call sites, dataflow |
484+ | ![ TypeScript] ( https://img.shields.io/badge/-TypeScript-3178C6?style=flat-square&logo=typescript&logoColor=white ) | ` .ts ` , ` .tsx ` | Full — interfaces, type aliases, ` .d.ts ` , dataflow |
485+ | ![ Python] ( https://img.shields.io/badge/-Python-3776AB?style=flat-square&logo=python&logoColor=white ) | ` .py ` | Functions, classes, methods, imports, decorators, dataflow |
486+ | ![ Go] ( https://img.shields.io/badge/-Go-00ADD8?style=flat-square&logo=go&logoColor=white ) | ` .go ` | Functions, methods, structs, interfaces, imports, call sites, dataflow |
487+ | ![ Rust] ( https://img.shields.io/badge/-Rust-000000?style=flat-square&logo=rust&logoColor=white ) | ` .rs ` | Functions, methods, structs, traits, ` use ` imports, call sites, dataflow |
488+ | ![ Java] ( https://img.shields.io/badge/-Java-ED8B00?style=flat-square&logo=openjdk&logoColor=white ) | ` .java ` | Classes, methods, constructors, interfaces, imports, call sites, dataflow |
489+ | ![ C#] ( https://img.shields.io/badge/-C%23-512BD4?style=flat-square&logo=dotnet&logoColor=white ) | ` .cs ` | Classes, structs, records, interfaces, enums, methods, constructors, using directives, invocations, dataflow |
490+ | ![ PHP] ( https://img.shields.io/badge/-PHP-777BB4?style=flat-square&logo=php&logoColor=white ) | ` .php ` | Functions, classes, interfaces, traits, enums, methods, namespace use, calls, dataflow |
491+ | ![ Ruby] ( https://img.shields.io/badge/-Ruby-CC342D?style=flat-square&logo=ruby&logoColor=white ) | ` .rb ` | Classes, modules, methods, singleton methods, require/require_relative, include/extend, dataflow |
489492| ![ Terraform] ( https://img.shields.io/badge/-Terraform-844FBA?style=flat-square&logo=terraform&logoColor=white ) | ` .tf ` , ` .hcl ` | Resource, data, variable, module, output blocks |
490493
491494## ⚙️ How It Works
@@ -804,7 +807,7 @@ const { results: fused } = await multiSearchData(
804807- ** No full type inference** — parses ` .d.ts ` interfaces but doesn't use TypeScript's type checker for overload resolution
805808- ** Dynamic calls are best-effort** — complex computed property access and ` eval ` patterns are not resolved
806809- ** Python imports** — resolves relative imports but doesn't follow ` sys.path ` or virtual environment packages
807- - ** Dataflow analysis** — currently JS/TS only; intraprocedural (single-function scope), not interprocedural
810+ - ** Dataflow analysis** — intraprocedural (single-function scope), not interprocedural
808811
809812## 🗺️ Roadmap
810813
0 commit comments