You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix: change default embedding model from jina-code to nomic-v1.5
jina-code requires HuggingFace authentication (gated model), causing
`codegraph embed` to crash for users without HF_TOKEN. nomic-v1.5 is
public, same 768d dimensions, and improved quality with 8192 context.
Copy file name to clipboardExpand all lines: README.md
+39-15Lines changed: 39 additions & 15 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -93,7 +93,7 @@ Most code graph tools make you choose: **fast local analysis with no AI, or powe
93
93
|**⚡**|**Always-fresh graph**| Three-tier change detection: journal (O(changed)) → mtime+size (O(n) stats) → hash (O(changed) reads). Sub-second rebuilds even on large codebases. Competitors re-index everything from scratch; Merkle-tree approaches still require O(n) filesystem scanning |
94
94
|**🔓**|**Zero-cost core, LLM-enhanced when you want**| Full graph analysis with no API keys, no accounts, no cost. Optionally bring your own LLM provider for richer embeddings and AI-powered search — your code only goes to the provider you already chose |
95
95
|**🔬**|**Function-level, not just files**| Traces `handleAuth()` → `validateToken()` → `decryptJWT()` and shows 14 callers across 9 files break if `decryptJWT` changes |
96
-
|**🤖**|**Built for AI agents**| 17-tool [MCP server](https://modelcontextprotocol.io/) — AI assistants query your graph directly. Single-repo by default, your code doesn't leak to other projects |
96
+
|**🤖**|**Built for AI agents**| 17-tool [MCP server](https://modelcontextprotocol.io/)with `context` and `explain` compound commands — AI assistants get full function context in one call. Single-repo by default, your code doesn't leak to other projects |
97
97
|**🌐**|**Multi-language, one CLI**| JS/TS + Python + Go + Rust + Java + C# + PHP + Ruby + HCL in a single graph — no juggling Madge, pyan, and cflow |
98
98
|**💥**|**Git diff impact**|`codegraph diff-impact` shows changed functions, their callers, and full blast radius — ships with a GitHub Actions workflow |
99
99
|**🧠**|**Semantic search**| Local embeddings by default, LLM-powered embeddings when opted in — multi-query with RRF ranking via `"auth; token; JWT"`|
| 🧬 |**Function-level tracing**| Call chains, caller trees, and function-level impact with qualified call resolution |
187
+
| 🎯 |**Deep context**|`context` gives AI agents source, deps, callers, signature, and tests for a function in one call; `explain` gives structural summaries of files or functions |
188
+
| 📍 |**Fast lookup**|`where` shows exactly where a symbol is defined and used — minimal, fast |
@@ -361,18 +384,19 @@ Both engines produce identical output. Use `--engine native|wasm|auto` to contro
361
384
362
385
### Call Resolution
363
386
364
-
Calls are resolved with priority and confidence scoring:
387
+
Calls are resolved with **qualified resolution** — method calls (`obj.method()`) are distinguished from standalone function calls, and built-in receivers (`console`, `Math`, `JSON`, `Array`, `Promise`, etc.) are filtered out automatically. Import scope is respected: a call to `foo()` only resolves to functions that are actually imported or defined in the same file, eliminating false positives from name collisions.
365
388
366
389
| Priority | Source | Confidence |
367
390
|---|---|---|
368
391
| 1 |**Import-aware** — `import { foo } from './bar'` → link to `bar`|`1.0`|
369
392
| 2 |**Same-file** — definitions in the current file |`1.0`|
370
-
| 3 |**Same directory** — definitions in sibling files |`0.7`|
| 5 |**Method hierarchy** — resolved through `extends`/`implements`| varies |
396
+
397
+
Method calls on unknown receivers skip global fallback entirely — `stmt.run()` will never resolve to a standalone `run` function in another file. Duplicate caller/callee edges are deduplicated automatically. Dynamic patterns like `fn.call()`, `fn.apply()`, `fn.bind()`, and `obj["method"]()` are also detected on a best-effort basis.
374
398
375
-
Dynamic patterns like `fn.call()`, `fn.apply()`, `fn.bind()`, and `obj["method"]()` are also detected on a best-effort basis.
399
+
Codegraph also extracts symbols from common callback patterns: Commander `.command().action()` callbacks (as `command:build`), Express route handlers (as `route:GET /api/users`), and event emitter listeners (as `event:data`).
0 commit comments