Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
0d674a8
cleanup: remove dead code, fix duplicate DataGrid columns, add horizo…
Copilot Mar 26, 2026
4d676e6
fix: add horizontal scroll to profile view CRUD toolbars
Copilot Mar 26, 2026
0ba7a6c
refactor: improve profile view layouts with better scrollability and …
efargas Mar 26, 2026
619b03b
Update src/S7Tools/Views/Pages/StreamedMemoryDumpView.axaml
efargas Mar 26, 2026
2adfd5b
fix: restore selected-segments in profile details; resolve default du…
Copilot Mar 26, 2026
68a4a60
refactor: Adjust UI layouts, button styles, and text for improved con…
efargas Mar 28, 2026
6078f84
audit: remove dead code, fix IDisposable leaks, fix LoggerFactory mis…
Copilot Mar 28, 2026
ebc191a
feat: save partial dump on failure/cancel/abort; filter dump logs by …
Copilot Mar 28, 2026
a5fa172
fix(tests+ui): add PartialDumpException tests, fix segments StringFormat
Copilot Mar 28, 2026
f25b93f
Update src/S7Tools/Views/Tasks/ScheduledTasksView.axaml
efargas Mar 28, 2026
d524a46
fix: update DeleteTaskCommand to accept TaskExecution? parameter for …
Copilot Mar 28, 2026
166a34f
fix: PartialDumpException cancellation handling and scheduled task UI
Copilot Mar 28, 2026
9410b48
Update src/S7Tools/Services/Bootloader/BootloaderService.cs
efargas Mar 29, 2026
67f3437
fix: JsonElement deserialization for ScheduledTime, correct partial-d…
Copilot Mar 29, 2026
714a5da
fix: FlushAsync cancellation token + run-now support for scheduled tasks
Copilot Mar 29, 2026
a9084e0
fix: correct ScheduledTime XML doc and wire DeleteTaskCommand to Hist…
Copilot Mar 29, 2026
7fbbe6b
Update src/S7Tools.Core/Models/Jobs/TaskExecution.cs
efargas Mar 29, 2026
e444a7e
fix: SettingsViewModel IDisposable + test assertion alignment (review…
Copilot Mar 29, 2026
be9ba19
fix: failure-path message, ScheduleTaskAsync ProgressData cleanup, fi…
Copilot Mar 30, 2026
e7cf833
fix: logging for file-size errors, TCS test, TaskCommandManager Sched…
Copilot Mar 30, 2026
572e351
feat: add LogLevelToIcon converter and standardize UI button styles a…
efargas Mar 30, 2026
0fe9172
refactor: perform comprehensive codebase-wide cleanup, interface stan…
efargas Mar 31, 2026
52a8a91
refactor: modernize UI components, standardize styling, and improve c…
efargas Mar 31, 2026
20089fa
fix: format violations, test compilation errors, and LogDataStore Flu…
Copilot Apr 1, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
3 changes: 3 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -167,6 +167,9 @@ dotnet_naming_style.type_parameter_style.required_prefix = T

# .NET diagnostic rules

# IDE0005: Remove unnecessary usings
dotnet_diagnostic.IDE0005.severity = warning

# CA1001: Types that own disposable fields should be disposable
dotnet_diagnostic.CA1001.severity = warning

Expand Down
2 changes: 1 addition & 1 deletion .gemini/GEMINI.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ If `indexing_status: "started"`: Search will work shortly. **DO NOT fall back to
## ContextStream v0.4.x (Consolidated Domain Tools)

v0.4.x uses ~11 consolidated domain tools for ~75% token reduction vs previous versions.
Rules Version: 0.1.61
Rules Version: 0.1.86

### Required Every Message

Expand Down
2 changes: 1 addition & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ If `indexing_status: "started"`: Search will work shortly. **DO NOT fall back to
## ContextStream v0.4.x (Consolidated Domain Tools)

v0.4.x uses ~11 consolidated domain tools for ~75% token reduction vs previous versions.
Rules Version: 0.1.61
Rules Version: 0.1.86

### Required Every Message

Expand Down
3 changes: 0 additions & 3 deletions src/S7Tools.Core/Commands/BaseCommandHandler.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
using System;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.Extensions.Logging;

namespace S7Tools.Core.Commands;
Expand Down
2 changes: 0 additions & 2 deletions src/S7Tools.Core/Commands/ClearLogsCommand.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
using S7Tools.Core.Commands;

namespace S7Tools.Core.Commands;

/// <summary>
Expand Down
2 changes: 0 additions & 2 deletions src/S7Tools.Core/Commands/DeleteLogEntryCommand.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
using S7Tools.Core.Commands;

namespace S7Tools.Core.Commands;

/// <summary>
Expand Down
3 changes: 0 additions & 3 deletions src/S7Tools.Core/Commands/ExportLogsCommand.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
using System;
using S7Tools.Core.Commands;

namespace S7Tools.Core.Commands;

/// <summary>
Expand Down
3 changes: 0 additions & 3 deletions src/S7Tools.Core/Commands/FilterLogsCommand.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
using System;
using S7Tools.Core.Commands;

namespace S7Tools.Core.Commands;

/// <summary>
Expand Down
3 changes: 0 additions & 3 deletions src/S7Tools.Core/Commands/ICommand.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
using System.Threading;
using System.Threading.Tasks;

namespace S7Tools.Core.Commands;

/// <summary>
Expand Down
3 changes: 0 additions & 3 deletions src/S7Tools.Core/Commands/ICommandDispatcher.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
using System.Threading;
using System.Threading.Tasks;

namespace S7Tools.Core.Commands;

/// <summary>
Expand Down
3 changes: 0 additions & 3 deletions src/S7Tools.Core/Commands/ICommandHandler.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
using System.Threading;
using System.Threading.Tasks;

namespace S7Tools.Core.Commands;

/// <summary>
Expand Down
2 changes: 0 additions & 2 deletions src/S7Tools.Core/Commands/ImportLogsCommand.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
using S7Tools.Core.Commands;

namespace S7Tools.Core.Commands;

/// <summary>
Expand Down
2 changes: 0 additions & 2 deletions src/S7Tools.Core/Exceptions/ConfigurationException.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
using System;

namespace S7Tools.Core.Exceptions;

/// <summary>
Expand Down
2 changes: 0 additions & 2 deletions src/S7Tools.Core/Exceptions/ConnectionException.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
using System;

namespace S7Tools.Core.Exceptions;

/// <summary>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
using System;

namespace S7Tools.Core.Exceptions;

/// <summary>
Expand Down
2 changes: 0 additions & 2 deletions src/S7Tools.Core/Exceptions/DialogParentNotFoundException.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
using System;

namespace S7Tools.Core.Exceptions;

/// <summary>
Expand Down
2 changes: 0 additions & 2 deletions src/S7Tools.Core/Exceptions/DuplicateProfileNameException.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
using System;

namespace S7Tools.Core.Exceptions;

/// <summary>
Expand Down
2 changes: 0 additions & 2 deletions src/S7Tools.Core/Exceptions/MemoryRegionException.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
using System;

namespace S7Tools.Core.Exceptions;

/// <summary>
Expand Down
28 changes: 28 additions & 0 deletions src/S7Tools.Core/Exceptions/PartialDumpException.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
using S7Tools.Core.Models;

namespace S7Tools.Core.Exceptions;

/// <summary>
/// Exception thrown when a dump operation was interrupted (cancelled or failed)
/// but partial data was already written to disk and is available for recovery.
/// </summary>
public class PartialDumpException : MemoryDumpException
{
/// <summary>
/// Gets the partial <see cref="BootloaderResult"/> containing the paths of
/// any files that were fully or partially written before the interruption.
/// </summary>
public BootloaderResult PartialResult { get; }

/// <summary>
/// Initializes a new instance of the <see cref="PartialDumpException"/> class.
/// </summary>
/// <param name="message">The error message.</param>
/// <param name="innerException">The exception that caused the interruption.</param>
/// <param name="partialResult">The partial result with saved file paths.</param>
public PartialDumpException(string message, Exception innerException, BootloaderResult partialResult)
: base(message, innerException)
{
PartialResult = partialResult ?? throw new ArgumentNullException(nameof(partialResult));
}
}
2 changes: 0 additions & 2 deletions src/S7Tools.Core/Exceptions/ProfileException.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
using System;

namespace S7Tools.Core.Exceptions;

/// <summary>
Expand Down
2 changes: 0 additions & 2 deletions src/S7Tools.Core/Exceptions/ProfileNotFoundException.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
using System;

namespace S7Tools.Core.Exceptions;

/// <summary>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
using System;

namespace S7Tools.Core.Exceptions;

/// <summary>
Expand Down
2 changes: 0 additions & 2 deletions src/S7Tools.Core/Exceptions/S7ToolsException.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
using System;

namespace S7Tools.Core.Exceptions;

/// <summary>
Expand Down
4 changes: 0 additions & 4 deletions src/S7Tools.Core/Exceptions/ValidationException.cs
Original file line number Diff line number Diff line change
@@ -1,7 +1,3 @@
using System;
using System.Collections.Generic;
using System.Linq;

namespace S7Tools.Core.Exceptions;

/// <summary>
Expand Down
5 changes: 0 additions & 5 deletions src/S7Tools.Core/Factories/BaseFactory.cs
Original file line number Diff line number Diff line change
@@ -1,8 +1,3 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.Extensions.Logging;

namespace S7Tools.Core.Factories;
Expand Down
5 changes: 0 additions & 5 deletions src/S7Tools.Core/Factories/IFactory.cs
Original file line number Diff line number Diff line change
@@ -1,8 +1,3 @@
using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;

namespace S7Tools.Core.Factories;

/// <summary>
Expand Down
2 changes: 0 additions & 2 deletions src/S7Tools.Core/Interfaces/Logging/IStructuredLogger.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
using System;
using System.Collections.Generic;
using Microsoft.Extensions.Logging;

namespace S7Tools.Core.Interfaces.Logging;
Expand Down
2 changes: 1 addition & 1 deletion src/S7Tools.Core/Interfaces/Services/IBootloaderService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ namespace S7Tools.Core.Interfaces.Services;
/// </summary>
public interface IBootloaderService
{
/// <summary>
/// <summary>
/// Performs a complete memory dump operation on the PLC.
/// Orchestrates socat bridge setup, power cycling, handshake, stager installation, and memory dumping.
/// </summary>
Expand Down
3 changes: 0 additions & 3 deletions src/S7Tools.Core/Interfaces/Services/IPowerSupplyService.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
using System;
using System.Threading;
using System.Threading.Tasks;
using S7Tools.Core.Models;

namespace S7Tools.Core.Interfaces.Services;
Expand Down
3 changes: 0 additions & 3 deletions src/S7Tools.Core/Interfaces/Services/IProfileBase.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
using System;
using System.Collections.Generic;

namespace S7Tools.Core.Interfaces.Services;

/// <summary>
Expand Down
5 changes: 0 additions & 5 deletions src/S7Tools.Core/Interfaces/Services/IProfileManager.cs
Original file line number Diff line number Diff line change
@@ -1,8 +1,3 @@
using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;

namespace S7Tools.Core.Interfaces.Services;

/// <summary>
Expand Down
5 changes: 0 additions & 5 deletions src/S7Tools.Core/Interfaces/Services/IProfileValidator.cs
Original file line number Diff line number Diff line change
@@ -1,8 +1,3 @@
using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;

namespace S7Tools.Core.Interfaces.Services;

/// <summary>
Expand Down
4 changes: 0 additions & 4 deletions src/S7Tools.Core/Interfaces/Services/ISerialPortService.cs
Original file line number Diff line number Diff line change
@@ -1,7 +1,3 @@
using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using S7Tools.Core.Models;

namespace S7Tools.Core.Interfaces.Services;
Expand Down
4 changes: 0 additions & 4 deletions src/S7Tools.Core/Interfaces/Services/ISocatService.cs
Original file line number Diff line number Diff line change
@@ -1,7 +1,3 @@
using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using S7Tools.Core.Models;

namespace S7Tools.Core.Interfaces.Services;
Expand Down
2 changes: 0 additions & 2 deletions src/S7Tools.Core/Interfaces/Services/ITaskLogDataStore.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
using System;
using System.Collections.Generic; // Added for IEnumerable<LogModel>
using System.Collections.Specialized;
using S7Tools.Core.Models;

Expand Down
1 change: 0 additions & 1 deletion src/S7Tools.Core/Interfaces/Services/ITaskScheduler.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
using S7Tools.Core.Models.Jobs;
using S7Tools.Core.Validation;

namespace S7Tools.Core.Interfaces.Services;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
using System.Threading.Tasks;

namespace S7Tools.Core.Interfaces.Services;

/// <summary>
Expand Down
4 changes: 0 additions & 4 deletions src/S7Tools.Core/Interfaces/Shell/IShellCommandExecutor.cs
Original file line number Diff line number Diff line change
@@ -1,7 +1,3 @@
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;

namespace S7Tools.Core.Interfaces.Shell;

/// <summary>
Expand Down
3 changes: 0 additions & 3 deletions src/S7Tools.Core/Models/BootloaderResult.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@

using System.Collections.Generic;

namespace S7Tools.Core.Models;

/// <summary>
Expand Down
6 changes: 3 additions & 3 deletions src/S7Tools.Core/Models/Configuration/PathConfiguration.cs
Original file line number Diff line number Diff line change
Expand Up @@ -131,8 +131,8 @@ public bool Validate()
}

// Check that all computed paths are valid
string[] paths = new[]
{
string[] paths =
[
ResourcesDirectory,
AppSettingsPath,
ProfilesDirectory,
Expand All @@ -141,7 +141,7 @@ public bool Validate()
TasksPath,
PayloadsDirectory,
DumpsDirectory
};
];

foreach (string? path in paths)
{
Expand Down
2 changes: 0 additions & 2 deletions src/S7Tools.Core/Models/Jobs/JobManagerOptions.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
using System;

namespace S7Tools.Core.Models.Jobs
{
/// <summary>
Expand Down
2 changes: 0 additions & 2 deletions src/S7Tools.Core/Models/Jobs/JobProfile.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Text.Json.Serialization;
using S7Tools.Core.Constants;
Expand Down
1 change: 0 additions & 1 deletion src/S7Tools.Core/Models/Jobs/MemoryRegionProfile.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
using System;
using System.ComponentModel.DataAnnotations;

namespace S7Tools.Core.Models.Jobs;
Expand Down
2 changes: 0 additions & 2 deletions src/S7Tools.Core/Models/Jobs/PayloadSetProfile.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using S7Tools.Core.Interfaces.Services;

Expand Down
2 changes: 0 additions & 2 deletions src/S7Tools.Core/Models/Jobs/ResourceKey.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
using System;

namespace S7Tools.Core.Models.Jobs;

/// <summary>
Expand Down
Loading