diff --git a/src/c-sharp/.archlens/snaphot b/src/c-sharp/.archlens/snaphot deleted file mode 100644 index 3b8a4375..00000000 --- a/src/c-sharp/.archlens/snaphot +++ /dev/null @@ -1,912 +0,0 @@ -{ - "Version": 1, - "Items": [ - { - "Path": "./", - "Name": ".", - "LastWriteTime": "2026-03-09T10:09:18.9383872Z", - "Type": "Directory" - }, - { - "Path": "./Application/", - "Name": "Application", - "LastWriteTime": "2026-03-09T10:09:18.9116254Z", - "Type": "Directory" - }, - { - "Path": "./Application/ChangeDetector.cs", - "Name": "ChangeDetector.cs", - "LastWriteTime": "2026-03-09T10:09:18.9081503Z", - "Type": "File" - }, - { - "Path": "./Application/DependencyGraphBuilder.cs", - "Name": "DependencyGraphBuilder.cs", - "LastWriteTime": "2026-03-09T10:09:18.9093805Z", - "Type": "File" - }, - { - "Path": "./Application/UpdateDiffGraphUseCase.cs", - "Name": "UpdateDiffGraphUseCase.cs", - "LastWriteTime": "2026-03-09T10:09:18.9106998Z", - "Type": "File" - }, - { - "Path": "./Application/UpdateGraphUseCase.cs", - "Name": "UpdateGraphUseCase.cs", - "LastWriteTime": "2026-03-09T10:09:18.9127611Z", - "Type": "File" - }, - { - "Path": "./Domain/", - "Name": "Domain", - "LastWriteTime": "2026-03-09T10:09:18.9219642Z", - "Type": "Directory" - }, - { - "Path": "./Domain/DependencyAggregator.cs", - "Name": "DependencyAggregator.cs", - "LastWriteTime": "2026-03-09T10:09:18.9159638Z", - "Type": "File" - }, - { - "Path": "./Domain/DependencyGraphSerializer.cs", - "Name": "DependencyGraphSerializer.cs", - "LastWriteTime": "2026-03-09T10:09:18.9179645Z", - "Type": "File" - }, - { - "Path": "./Domain/Interfaces/", - "Name": "Interfaces", - "LastWriteTime": "2026-03-06T13:42:34.7003333Z", - "Type": "Directory" - }, - { - "Path": "./Domain/Interfaces/IDependencyParser.cs", - "Name": "IDependencyParser.cs", - "LastWriteTime": "2026-03-06T13:42:34.7003333Z", - "Type": "File" - }, - { - "Path": "./Domain/Interfaces/ISnapshotManager.cs", - "Name": "ISnapshotManager.cs", - "LastWriteTime": "2026-03-06T13:42:34.7003333Z", - "Type": "File" - }, - { - "Path": "./Domain/Models/", - "Name": "Models", - "LastWriteTime": "2026-03-09T10:09:18.9189636Z", - "Type": "Directory" - }, - { - "Path": "./Domain/Models/Enums/", - "Name": "Enums", - "LastWriteTime": "2026-03-05T10:24:29.3968689Z", - "Type": "Directory" - }, - { - "Path": "./Domain/Models/Enums/Language.cs", - "Name": "Language.cs", - "LastWriteTime": "2026-03-05T10:24:29.3968689Z", - "Type": "File" - }, - { - "Path": "./Domain/Models/Enums/RenderFormat.cs", - "Name": "RenderFormat.cs", - "LastWriteTime": "2026-02-05T13:28:12.2867137Z", - "Type": "File" - }, - { - "Path": "./Domain/Models/Enums/SnapshotManager.cs", - "Name": "SnapshotManager.cs", - "LastWriteTime": "2025-11-03T15:44:58.3307736Z", - "Type": "File" - }, - { - "Path": "./Domain/Models/ProjectDependencyGraph.cs", - "Name": "ProjectDependencyGraph.cs", - "LastWriteTime": "2026-03-09T10:09:18.9199668Z", - "Type": "File" - }, - { - "Path": "./Domain/Models/Records/", - "Name": "Records", - "LastWriteTime": "2026-03-09T10:09:18.920964Z", - "Type": "Directory" - }, - { - "Path": "./Domain/Models/Records/GitInfo.cs", - "Name": "GitInfo.cs", - "LastWriteTime": "2026-02-24T12:41:15.4031063Z", - "Type": "File" - }, - { - "Path": "./Domain/Models/Records/Options.cs", - "Name": "Options.cs", - "LastWriteTime": "2026-03-09T10:09:18.9219642Z", - "Type": "File" - }, - { - "Path": "./Domain/Models/Records/Package.cs", - "Name": "Package.cs", - "LastWriteTime": "2026-02-07T21:03:59.3667806Z", - "Type": "File" - }, - { - "Path": "./Domain/Models/Records/ProjectChanges.cs", - "Name": "ProjectChanges.cs", - "LastWriteTime": "2026-03-06T13:42:34.7003333Z", - "Type": "File" - }, - { - "Path": "./Domain/Models/Records/RelativePath.cs", - "Name": "RelativePath.cs", - "LastWriteTime": "2026-03-06T13:42:34.7003333Z", - "Type": "File" - }, - { - "Path": "./Domain/Models/Records/View.cs", - "Name": "View.cs", - "LastWriteTime": "2026-02-07T21:03:59.3820464Z", - "Type": "File" - }, - { - "Path": "./Domain/RendererBase.cs", - "Name": "RendererBase.cs", - "LastWriteTime": "2026-03-09T10:09:18.9229674Z", - "Type": "File" - }, - { - "Path": "./Domain/Utils/", - "Name": "Utils", - "LastWriteTime": "2026-03-06T13:42:34.7003333Z", - "Type": "Directory" - }, - { - "Path": "./Domain/Utils/PathNormaliser.cs", - "Name": "PathNormaliser.cs", - "LastWriteTime": "2026-03-06T13:42:34.7003333Z", - "Type": "File" - }, - { - "Path": "./Infra/", - "Name": "Infra", - "LastWriteTime": "2026-03-09T10:09:18.9350388Z", - "Type": "Directory" - }, - { - "Path": "./Infra/ConfigManager.cs", - "Name": "ConfigManager.cs", - "LastWriteTime": "2026-03-09T10:09:18.9239652Z", - "Type": "File" - }, - { - "Path": "./Infra/Factories/", - "Name": "Factories", - "LastWriteTime": "2026-03-09T10:09:18.9263518Z", - "Type": "Directory" - }, - { - "Path": "./Infra/Factories/DependencyParserFactory.cs", - "Name": "DependencyParserFactory.cs", - "LastWriteTime": "2026-03-05T10:24:29.4078718Z", - "Type": "File" - }, - { - "Path": "./Infra/Factories/RendererFactory.cs", - "Name": "RendererFactory.cs", - "LastWriteTime": "2026-03-09T10:09:18.9258382Z", - "Type": "File" - }, - { - "Path": "./Infra/Factories/SnapshotManagerFactory.cs", - "Name": "SnapshotManagerFactory.cs", - "LastWriteTime": "2026-03-09T10:09:18.9269342Z", - "Type": "File" - }, - { - "Path": "./Infra/Parsers/", - "Name": "Parsers", - "LastWriteTime": "2026-03-09T10:09:18.9316334Z", - "Type": "Directory" - }, - { - "Path": "./Infra/Parsers/CsharpDependencyParser.cs", - "Name": "CsharpDependencyParser.cs", - "LastWriteTime": "2026-03-06T13:42:34.7163562Z", - "Type": "File" - }, - { - "Path": "./Infra/Parsers/CsharpSyntaxWalkerParser.cs", - "Name": "CsharpSyntaxWalkerParser.cs", - "LastWriteTime": "2026-03-09T10:09:18.9293204Z", - "Type": "File" - }, - { - "Path": "./Infra/Parsers/GoDependencyParser.cs", - "Name": "GoDependencyParser.cs", - "LastWriteTime": "2026-03-06T13:42:34.7163562Z", - "Type": "File" - }, - { - "Path": "./Infra/Parsers/JavaDependencyParser.cs", - "Name": "JavaDependencyParser.cs", - "LastWriteTime": "2026-03-09T10:09:18.9305116Z", - "Type": "File" - }, - { - "Path": "./Infra/Parsers/KotlinDependencyParser.cs", - "Name": "KotlinDependencyParser.cs", - "LastWriteTime": "2026-03-09T10:09:18.9321902Z", - "Type": "File" - }, - { - "Path": "./Infra/Renderers/", - "Name": "Renderers", - "LastWriteTime": "2026-03-09T10:09:18.9344769Z", - "Type": "Directory" - }, - { - "Path": "./Infra/Renderers/JsonRenderer.cs", - "Name": "JsonRenderer.cs", - "LastWriteTime": "2026-03-09T10:09:18.9333024Z", - "Type": "File" - }, - { - "Path": "./Infra/Renderers/PlantUMLRenderer.cs", - "Name": "PlantUMLRenderer.cs", - "LastWriteTime": "2026-03-09T10:09:18.9344769Z", - "Type": "File" - }, - { - "Path": "./Infra/SnapshotManagers/", - "Name": "SnapshotManagers", - "LastWriteTime": "2026-03-09T10:09:18.937276Z", - "Type": "Directory" - }, - { - "Path": "./Infra/SnapshotManagers/GitSnapshotManager.cs", - "Name": "GitSnapshotManager.cs", - "LastWriteTime": "2026-03-09T10:09:18.9361669Z", - "Type": "File" - }, - { - "Path": "./Infra/SnapshotManagers/LocalSnapshotManager.cs", - "Name": "LocalSnapshotManager.cs", - "LastWriteTime": "2026-03-09T10:09:18.9378274Z", - "Type": "File" - }, - { - "Path": "./Program.cs", - "Name": "Program.cs", - "LastWriteTime": "2026-03-09T10:09:18.9389282Z", - "Type": "File" - } - ], - "Contains": [ - { - "Parent": "./", - "Children": [ - "./Application/", - "./Domain/", - "./Infra/", - "./Program.cs" - ] - }, - { - "Parent": "./Application/", - "Children": [ - "./Application/ChangeDetector.cs", - "./Application/DependencyGraphBuilder.cs", - "./Application/UpdateDiffGraphUseCase.cs", - "./Application/UpdateGraphUseCase.cs" - ] - }, - { - "Parent": "./Domain/", - "Children": [ - "./Domain/DependencyAggregator.cs", - "./Domain/DependencyGraphSerializer.cs", - "./Domain/Interfaces/", - "./Domain/Models/", - "./Domain/RendererBase.cs", - "./Domain/Utils/" - ] - }, - { - "Parent": "./Domain/Interfaces/", - "Children": [ - "./Domain/Interfaces/IDependencyParser.cs", - "./Domain/Interfaces/ISnapshotManager.cs" - ] - }, - { - "Parent": "./Domain/Models/", - "Children": [ - "./Domain/Models/Enums/", - "./Domain/Models/ProjectDependencyGraph.cs", - "./Domain/Models/Records/" - ] - }, - { - "Parent": "./Domain/Models/Enums/", - "Children": [ - "./Domain/Models/Enums/Language.cs", - "./Domain/Models/Enums/RenderFormat.cs", - "./Domain/Models/Enums/SnapshotManager.cs" - ] - }, - { - "Parent": "./Domain/Models/Records/", - "Children": [ - "./Domain/Models/Records/GitInfo.cs", - "./Domain/Models/Records/Options.cs", - "./Domain/Models/Records/Package.cs", - "./Domain/Models/Records/ProjectChanges.cs", - "./Domain/Models/Records/RelativePath.cs", - "./Domain/Models/Records/View.cs" - ] - }, - { - "Parent": "./Domain/Utils/", - "Children": [ - "./Domain/Utils/PathNormaliser.cs" - ] - }, - { - "Parent": "./Infra/", - "Children": [ - "./Infra/ConfigManager.cs", - "./Infra/Factories/", - "./Infra/Parsers/", - "./Infra/Renderers/", - "./Infra/SnapshotManagers/" - ] - }, - { - "Parent": "./Infra/Factories/", - "Children": [ - "./Infra/Factories/DependencyParserFactory.cs", - "./Infra/Factories/RendererFactory.cs", - "./Infra/Factories/SnapshotManagerFactory.cs" - ] - }, - { - "Parent": "./Infra/Parsers/", - "Children": [ - "./Infra/Parsers/CsharpDependencyParser.cs", - "./Infra/Parsers/CsharpSyntaxWalkerParser.cs", - "./Infra/Parsers/GoDependencyParser.cs", - "./Infra/Parsers/JavaDependencyParser.cs", - "./Infra/Parsers/KotlinDependencyParser.cs" - ] - }, - { - "Parent": "./Infra/Renderers/", - "Children": [ - "./Infra/Renderers/JsonRenderer.cs", - "./Infra/Renderers/PlantUMLRenderer.cs" - ] - }, - { - "Parent": "./Infra/SnapshotManagers/", - "Children": [ - "./Infra/SnapshotManagers/GitSnapshotManager.cs", - "./Infra/SnapshotManagers/LocalSnapshotManager.cs" - ] - } - ], - "DependsOn": [ - { - "From": "./Application/ChangeDetector.cs", - "Dependencies": [ - { - "To": "./Domain/Models/", - "Count": 1, - "Type": "Uses" - }, - { - "To": "./Domain/Models/ProjectDependencyGraph/", - "Count": 1, - "Type": "Uses" - }, - { - "To": "./Domain/Models/Records/", - "Count": 1, - "Type": "Uses" - }, - { - "To": "./Domain/Models/Records/ProjectChanges/", - "Count": 1, - "Type": "Uses" - }, - { - "To": "./Domain/Utils/", - "Count": 1, - "Type": "Uses" - } - ] - }, - { - "From": "./Application/DependencyGraphBuilder.cs", - "Dependencies": [ - { - "To": "./Domain/Interfaces/", - "Count": 1, - "Type": "Uses" - }, - { - "To": "./Domain/Models/", - "Count": 1, - "Type": "Uses" - }, - { - "To": "./Domain/Models/Records/", - "Count": 1, - "Type": "Uses" - }, - { - "To": "./Domain/Utils/", - "Count": 1, - "Type": "Uses" - } - ] - }, - { - "From": "./Application/UpdateDiffGraphUseCase.cs", - "Dependencies": [ - { - "To": "./Domain/", - "Count": 1, - "Type": "Uses" - }, - { - "To": "./Domain/Interfaces/", - "Count": 1, - "Type": "Uses" - }, - { - "To": "./Domain/Models/Records/", - "Count": 1, - "Type": "Uses" - } - ] - }, - { - "From": "./Application/UpdateGraphUseCase.cs", - "Dependencies": [ - { - "To": "./Domain/", - "Count": 1, - "Type": "Uses" - }, - { - "To": "./Domain/Interfaces/", - "Count": 1, - "Type": "Uses" - }, - { - "To": "./Domain/Models/Records/", - "Count": 1, - "Type": "Uses" - } - ] - }, - { - "From": "./Domain/DependencyAggregator.cs", - "Dependencies": [ - { - "To": "./Domain/Models/", - "Count": 1, - "Type": "Uses" - }, - { - "To": "./Domain/Models/Records/", - "Count": 1, - "Type": "Uses" - } - ] - }, - { - "From": "./Domain/DependencyGraphSerializer.cs", - "Dependencies": [ - { - "To": "./Domain/Models/", - "Count": 1, - "Type": "Uses" - }, - { - "To": "./Domain/Models/Records/", - "Count": 1, - "Type": "Uses" - } - ] - }, - { - "From": "./Domain/Interfaces/IDependencyParser.cs", - "Dependencies": [ - { - "To": "./Domain/Models/Records/", - "Count": 1, - "Type": "Uses" - } - ] - }, - { - "From": "./Domain/Interfaces/ISnapshotManager.cs", - "Dependencies": [ - { - "To": "./Domain/Models/", - "Count": 1, - "Type": "Uses" - }, - { - "To": "./Domain/Models/Records/", - "Count": 1, - "Type": "Uses" - } - ] - }, - { - "From": "./Domain/Models/ProjectDependencyGraph.cs", - "Dependencies": [ - { - "To": "./Domain/Models/Records/", - "Count": 1, - "Type": "Uses" - }, - { - "To": "./Domain/Utils/", - "Count": 1, - "Type": "Uses" - } - ] - }, - { - "From": "./Domain/Models/Records/Options.cs", - "Dependencies": [ - { - "To": "./Domain/Models/Enums/", - "Count": 1, - "Type": "Uses" - } - ] - }, - { - "From": "./Domain/Models/Records/ProjectChanges.cs", - "Dependencies": [ - { - "To": "./Domain/Utils/", - "Count": 1, - "Type": "Uses" - } - ] - }, - { - "From": "./Domain/Models/Records/RelativePath.cs", - "Dependencies": [ - { - "To": "./Domain/Utils/", - "Count": 1, - "Type": "Uses" - } - ] - }, - { - "From": "./Domain/RendererBase.cs", - "Dependencies": [ - { - "To": "./Domain/Models/", - "Count": 1, - "Type": "Uses" - }, - { - "To": "./Domain/Models/Records/", - "Count": 1, - "Type": "Uses" - } - ] - }, - { - "From": "./Infra/ConfigManager.cs", - "Dependencies": [ - { - "To": "./Domain/Models/Enums/", - "Count": 1, - "Type": "Uses" - }, - { - "To": "./Domain/Models/Records/", - "Count": 1, - "Type": "Uses" - } - ] - }, - { - "From": "./Infra/Factories/DependencyParserFactory.cs", - "Dependencies": [ - { - "To": "./Domain/Interfaces/", - "Count": 1, - "Type": "Uses" - }, - { - "To": "./Domain/Models/Enums/", - "Count": 1, - "Type": "Uses" - }, - { - "To": "./Domain/Models/Records/", - "Count": 1, - "Type": "Uses" - }, - { - "To": "./Infra/Parsers/", - "Count": 1, - "Type": "Uses" - } - ] - }, - { - "From": "./Infra/Factories/RendererFactory.cs", - "Dependencies": [ - { - "To": "./Domain/", - "Count": 1, - "Type": "Uses" - }, - { - "To": "./Domain/Models/Enums/", - "Count": 1, - "Type": "Uses" - }, - { - "To": "./Domain/Models/Records/", - "Count": 1, - "Type": "Uses" - }, - { - "To": "./Infra/Renderers/", - "Count": 1, - "Type": "Uses" - } - ] - }, - { - "From": "./Infra/Factories/SnapshotManagerFactory.cs", - "Dependencies": [ - { - "To": "./Domain/Interfaces/", - "Count": 1, - "Type": "Uses" - }, - { - "To": "./Domain/Models/Enums/", - "Count": 1, - "Type": "Uses" - }, - { - "To": "./Domain/Models/Records/", - "Count": 1, - "Type": "Uses" - }, - { - "To": "./Infra/SnapshotManagers/", - "Count": 1, - "Type": "Uses" - } - ] - }, - { - "From": "./Infra/Parsers/CsharpDependencyParser.cs", - "Dependencies": [ - { - "To": "./Domain/Interfaces/", - "Count": 1, - "Type": "Uses" - }, - { - "To": "./Domain/Models/Records/", - "Count": 1, - "Type": "Uses" - }, - { - "To": "./Domain/Utils/", - "Count": 1, - "Type": "Uses" - } - ] - }, - { - "From": "./Infra/Parsers/CsharpSyntaxWalkerParser.cs", - "Dependencies": [ - { - "To": "./Domain/Interfaces/", - "Count": 1, - "Type": "Uses" - }, - { - "To": "./Domain/Models/Records/", - "Count": 1, - "Type": "Uses" - }, - { - "To": "./Domain/Utils/", - "Count": 1, - "Type": "Uses" - } - ] - }, - { - "From": "./Infra/Parsers/GoDependencyParser.cs", - "Dependencies": [ - { - "To": "./Domain/Interfaces/", - "Count": 1, - "Type": "Uses" - }, - { - "To": "./Domain/Models/Records/", - "Count": 1, - "Type": "Uses" - }, - { - "To": "./Domain/Utils/", - "Count": 1, - "Type": "Uses" - } - ] - }, - { - "From": "./Infra/Parsers/JavaDependencyParser.cs", - "Dependencies": [ - { - "To": "./Domain/Interfaces/", - "Count": 1, - "Type": "Uses" - }, - { - "To": "./Domain/Models/Records/", - "Count": 1, - "Type": "Uses" - }, - { - "To": "./Domain/Utils/", - "Count": 1, - "Type": "Uses" - } - ] - }, - { - "From": "./Infra/Parsers/KotlinDependencyParser.cs", - "Dependencies": [ - { - "To": "./Domain/Interfaces/", - "Count": 1, - "Type": "Uses" - }, - { - "To": "./Domain/Models/Records/", - "Count": 1, - "Type": "Uses" - }, - { - "To": "./Domain/Utils/", - "Count": 1, - "Type": "Uses" - } - ] - }, - { - "From": "./Infra/Renderers/JsonRenderer.cs", - "Dependencies": [ - { - "To": "./Domain/", - "Count": 1, - "Type": "Uses" - }, - { - "To": "./Domain/Models/", - "Count": 1, - "Type": "Uses" - }, - { - "To": "./Domain/Models/Records/", - "Count": 1, - "Type": "Uses" - } - ] - }, - { - "From": "./Infra/Renderers/PlantUMLRenderer.cs", - "Dependencies": [ - { - "To": "./Domain/", - "Count": 1, - "Type": "Uses" - }, - { - "To": "./Domain/Models/Records/", - "Count": 1, - "Type": "Uses" - } - ] - }, - { - "From": "./Infra/SnapshotManagers/GitSnapshotManager.cs", - "Dependencies": [ - { - "To": "./Domain/", - "Count": 1, - "Type": "Uses" - }, - { - "To": "./Domain/Interfaces/", - "Count": 1, - "Type": "Uses" - }, - { - "To": "./Domain/Models/", - "Count": 1, - "Type": "Uses" - }, - { - "To": "./Domain/Models/Records/", - "Count": 1, - "Type": "Uses" - } - ] - }, - { - "From": "./Infra/SnapshotManagers/LocalSnapshotManager.cs", - "Dependencies": [ - { - "To": "./Domain/", - "Count": 1, - "Type": "Uses" - }, - { - "To": "./Domain/Interfaces/", - "Count": 1, - "Type": "Uses" - }, - { - "To": "./Domain/Models/", - "Count": 1, - "Type": "Uses" - }, - { - "To": "./Domain/Models/Records/", - "Count": 1, - "Type": "Uses" - } - ] - }, - { - "From": "./Program.cs", - "Dependencies": [ - { - "To": "./Application/", - "Count": 1, - "Type": "Uses" - }, - { - "To": "./Domain/Models/Records/", - "Count": 1, - "Type": "Uses" - }, - { - "To": "./Infra/", - "Count": 1, - "Type": "Uses" - }, - { - "To": "./Infra/Factories/", - "Count": 1, - "Type": "Uses" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/c-sharp/.archlens/snapshot b/src/c-sharp/.archlens/snapshot new file mode 100644 index 00000000..2af2543e Binary files /dev/null and b/src/c-sharp/.archlens/snapshot differ diff --git a/src/c-sharp/Application/UpdateGraphUseCase.cs b/src/c-sharp/Application/UpdateGraphUseCase.cs index 912d4604..dc6de74f 100644 --- a/src/c-sharp/Application/UpdateGraphUseCase.cs +++ b/src/c-sharp/Application/UpdateGraphUseCase.cs @@ -27,10 +27,8 @@ public async Task RunAsync(CancellationToken ct = default) if (diff) { - if (snapshotGraph is null) - throw new InvalidOperationException("Diff mode requires a saved snapshot, but none was found."); - - await renderer.RenderDiffViewsAndSaveToFiles(graph, snapshotGraph, renderOptions, ct); + var compareGraph = await snapshotManager.GetLastSavedDependencyGraphAsync(snapshotOptions, ct) ?? throw new InvalidOperationException("Diff mode requires a saved snapshot, but none was found."); + await renderer.RenderDiffViewsAndSaveToFiles(graph, compareGraph, renderOptions, ct); } else await renderer.RenderViewsAndSaveToFiles(graph, renderOptions, ct);