What is Dependency Graph?
Last updated
A dependency graph is a directed graph representing the import and call relationships between modules in a codebase. Nodes are files, modules, or packages; edges represent that one node depends on another. It's the map that shows how changes propagate through a system.
Why does dependency graph matter for engineering teams?
Without a dependency graph, understanding the impact of a change requires manual tracing through imports and function calls, which is slow and easy to get wrong. A dependency graph makes that lookup fast and repeatable, which is what architecture-aware review and blast radius analysis depend on.
How does Argus handle dependency graph?
Argus stores a file and symbol graph per repository, built from the default branch. Go is parsed with go/ast and other supported languages with tree-sitter; TypeScript/JavaScript, Python, Java, Rust, and C# fall back to regex when tree-sitter returns nothing. Calls and imports are resolved by name. The graph refreshes after a push or merge to the default branch and at least every 14 days, not on each review, so code a PR adds has no dependents until it merges. Reviews use it for the dependents list in the prompt, choke-point flags, and PR description diagrams; the dashboard's Memory → Files view shows it as a file list and a file-level map.