Problem
The current project dependency structure is backwards:
GeneralUpdate.Differential depends on GeneralUpdate.Core — but Differential is the low-level diffing engine and Core is the higher-level orchestrator
ICleanStrategy/IDirtyStrategy/IBinaryDiffer are defined in Core but are Differential concepts
Bowl/Drivelution/Extension unnecessarily depend on Core even though they only use basic utilities (logging, file operations)
Solution
See PR #446
Key changes:
- Reverse Core↔Differential dependency: Core now references Differential
- Move orchestration types from Differential to Core (DefaultCleanStrategy, DiffPipeline, etc.)
- Make Differential a pure algorithm library (IBinaryDiffer + implementations only)
- Make Bowl/Drivelution/Extension fully independent (zero project references)
- Remove ICleanStrategy from Core.Differential namespace
Final dependency graph:
Differential (0 deps) ← Core (1 dep)
Bowl (0 deps) | Drivelution (0 deps) | Extension (0 deps)
🤖 Generated with Claude Code
Problem
The current project dependency structure is backwards:
GeneralUpdate.Differentialdepends onGeneralUpdate.Core— but Differential is the low-level diffing engine and Core is the higher-level orchestratorICleanStrategy/IDirtyStrategy/IBinaryDifferare defined in Core but are Differential conceptsBowl/Drivelution/Extensionunnecessarily depend on Core even though they only use basic utilities (logging, file operations)Solution
See PR #446
Key changes:
Final dependency graph:
🤖 Generated with Claude Code