Commit Graph

5 Commits

Author SHA1 Message Date
7487cea0e2 feat: add BuildCodeGraph use case, sink orchestration out of presentation 2026-06-17 13:44:22 +02:00
8f68714977 refactor: CheckFreshness and DiffDiagram take &str instead of &Path 2026-06-17 13:44:22 +02:00
692a64a622 refactor: make GenerateDiagram pure — return RenderOutput instead of writing files 2026-06-17 13:44:22 +02:00
a7e466011b clean up
Some checks failed
CI / Check / Test (push) Successful in 3m6s
Architecture Docs / Generate diagrams (push) Has been cancelled
2026-06-17 11:29:06 +02:00
fc8ad0ebc0 refactor: five architectural deepening improvements
Some checks failed
CI / Check / Test (push) Failing after 43s
Architecture Docs / Generate diagrams (push) Successful in 3m20s
Candidate 1 (NormalizedGraph): qualify→resolve→filter is now a single
named operation returning a distinct type; raw CodeGraph cannot call
module_edges/subgraph_by_module — pipeline order enforced at compile time.

Candidate 2 (Use cases): GenerateDiagram, CheckFreshness, DiffDiagram
extracted to application/src/use_cases/; presentation is now a thin CLI
dispatcher (~100 lines less, three fewer local functions).

Candidate 3 (ExtractionContext): shared accumulator for both Rust and
Python extractors replaces parallel Vec<> + 4-arg passing chains.

Candidate 4 (ModuleAssignment): ModuleName::assign() returns
ModuleAssignment { Explicit | Inferred | Unresolved } instead of Option,
callers can distinguish resolution strategies.

Candidate 5 (SplitRenderer): append_cross_module_deps removed from
DiagramRenderer port; replaced by render_for_module() default impl —
port interface now reflects what all renderers actually share.
2026-06-17 11:24:22 +02:00