Refreshed static dependency analysis for the G3 codebase: - graph.json: 143 nodes (9 crates, 134 files), 189 edges - No cycles detected (DAG structure confirmed) - Top fan-in: g3-core (43), g3-providers (27), g3-config (16) - Top fan-out: g3-core/src/lib.rs (27), g3-cli/src/lib.rs (12) - 4-layer architecture: Foundation → Core → Services → Application Extraction method: Cargo.toml parsing + regex-based import analysis Limitations documented: internal crate imports, re-exports, conditional compilation Agent: euler
41 lines
1.1 KiB
Markdown
41 lines
1.1 KiB
Markdown
# Strongly Connected Components (Cycles)
|
|
|
|
## Summary
|
|
|
|
**No non-trivial strongly connected components detected.**
|
|
|
|
The dependency graph is acyclic at both the crate level and the file level.
|
|
|
|
## Analysis Details
|
|
|
|
- Algorithm: Tarjan's SCC algorithm
|
|
- Scope: All 143 nodes (9 crates + 134 files)
|
|
- Result: 0 cycles with size > 1
|
|
|
|
## Crate-Level Verification
|
|
|
|
The crate dependency graph forms a directed acyclic graph (DAG):
|
|
|
|
```
|
|
Leaf crates (no dependencies on other g3-* crates):
|
|
- g3-providers
|
|
- g3-config
|
|
- g3-execution
|
|
- g3-computer-control
|
|
|
|
Intermediate crates:
|
|
- g3-core → depends on: g3-providers, g3-config, g3-execution, g3-computer-control
|
|
- g3-ensembles → depends on: g3-core, g3-config
|
|
- g3-planner → depends on: g3-providers, g3-core, g3-config
|
|
|
|
Top-level crates:
|
|
- g3-cli → depends on: g3-core, g3-config, g3-planner, g3-computer-control, g3-providers, g3-ensembles
|
|
- g3 (root) → depends on: g3-cli, g3-providers
|
|
```
|
|
|
|
## Implications
|
|
|
|
- No circular dependencies exist between crates
|
|
- Build order is deterministic
|
|
- Crates can be compiled in topological order
|