Refreshed static analysis of workspace dependency structure: - graph.json: 10 crates, 17 crate-level edges, 95 files, 123 file-level edges - graph.summary.md: Updated metrics and fan-in/fan-out rankings - sccs.md: Confirmed no cycles (DAG structure intact) - layers.observed.md: 5-layer hierarchy from binaries to infrastructure - hotspots.md: Identified g3-config, g3-providers as high fan-in; g3-cli as high fan-out - limitations.md: Documented extraction method constraints Agent: euler
1.3 KiB
1.3 KiB
Strongly Connected Components Analysis
Method
Tarjan's algorithm applied to file-level dependency graph.
Edge types considered:
mod_declaration: Parent module declares child modulecross_crate_import: File imports from another crate
Results
No non-trivial SCCs detected.
The file-level dependency graph is acyclic. All mod declarations form a strict tree structure within each crate, and cross-crate imports follow the crate dependency DAG.
Crate-Level Cycle Analysis
The crate dependency graph was also analyzed:
g3 → g3-cli → g3-core → g3-providers
→ g3-config
→ g3-execution
→ g3-computer-control
→ g3-planner → g3-core
→ g3-providers
→ g3-config
→ g3-ensembles → g3-core
→ g3-config
No cycles detected at crate level.
The workspace forms a directed acyclic graph (DAG) with:
- Leaf crates:
g3-providers,g3-config,g3-execution,g3-computer-control,studio - Mid-tier crates:
g3-core,g3-planner,g3-ensembles - Top-tier crates:
g3-cli,g3
Implications
- No circular dependencies exist
- Build order is deterministic
- Crates can be compiled in parallel respecting the DAG