Skip to content

Commit 8814685

Browse files
committed
feat: upgrade-aware snapshots — surface RemovedFiles/Keys in UI and CLI
1 parent ff8be34 commit 8814685

3 files changed

Lines changed: 16 additions & 7 deletions

File tree

src/DeepPurge.App/ViewModels/MainViewModel.Extensions.cs

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -328,9 +328,16 @@ private async Task RunWinapp2Async()
328328
var delta = await new InstallSnapshotEngine().TraceInstallAsync(programName, installerPath, args);
329329
_dispatcher.Invoke(() =>
330330
{
331-
SnapshotStatus = $"{programName}: +{delta.AddedFiles.Count} files, " +
332-
$"+{delta.AddedRegistryKeys.Count} keys, " +
333-
$"+{FormatSize(delta.TotalAddedBytes)}";
331+
var parts = new List<string>
332+
{
333+
$"+{delta.AddedFiles.Count} files (+{FormatSize(delta.TotalAddedBytes)})",
334+
$"+{delta.AddedRegistryKeys.Count} keys"
335+
};
336+
if (delta.RemovedFiles.Count > 0)
337+
parts.Add($"-{delta.RemovedFiles.Count} removed files");
338+
if (delta.RemovedRegistryKeys.Count > 0)
339+
parts.Add($"-{delta.RemovedRegistryKeys.Count} removed keys");
340+
SnapshotStatus = $"{programName}: {string.Join(", ", parts)}";
334341
});
335342
return delta;
336343
}

src/DeepPurge.Cli/Program.cs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -314,10 +314,11 @@ private static async Task<int> CmdSnapshotAsync(ParsedArgs a, CancellationToken
314314

315315
var engine = new InstallSnapshotEngine();
316316
var delta = await engine.TraceInstallAsync(name, installer, extraArgs, ct);
317-
Console.WriteLine($"Added files: {delta.AddedFiles.Count} ({FormatBytes(delta.TotalAddedBytes)})");
318-
Console.WriteLine($"Added regkeys: {delta.AddedRegistryKeys.Count}");
319-
Console.WriteLine($"Removed files: {delta.RemovedFiles.Count}");
320-
Console.WriteLine($"Removed regkeys: {delta.RemovedRegistryKeys.Count}");
317+
if (delta.IsUpgrade) Console.WriteLine("[upgrade detected — showing diff against prior version]");
318+
Console.WriteLine($"Added files: {delta.AddedFiles.Count,5} ({FormatBytes(delta.TotalAddedBytes)})");
319+
Console.WriteLine($"Added regkeys: {delta.AddedRegistryKeys.Count,5}");
320+
Console.WriteLine($"Removed files: {delta.RemovedFiles.Count,5}");
321+
Console.WriteLine($"Removed regkeys: {delta.RemovedRegistryKeys.Count,5}");
321322
return 0;
322323
}
323324

src/DeepPurge.Core/InstallMonitor/InstallSnapshotEngine.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ public class InstallDelta
2525
public List<string> RemovedFiles { get; set; } = new();
2626
public List<string> RemovedRegistryKeys{ get; set; } = new();
2727
public long TotalAddedBytes => AddedFiles.Sum(f => f.SizeBytes);
28+
public bool IsUpgrade => RemovedFiles.Count > 0 || RemovedRegistryKeys.Count > 0;
2829
}
2930

3031
/// <summary>

0 commit comments

Comments
 (0)