From e70ae7f6ce3f7385af5a7a0fd3d314ae52263e49 Mon Sep 17 00:00:00 2001 From: mika kuns Date: Thu, 23 Apr 2026 12:21:02 +0200 Subject: [PATCH] feat(ui): add Restore default agents button to Settings modal --- .../Modals/SettingsModalViewModel.cs | 26 +++++++++++++++++++ .../Views/Modals/SettingsModalView.axaml | 17 ++++++++++++ 2 files changed, 43 insertions(+) diff --git a/src/ClaudeDo.Ui/ViewModels/Modals/SettingsModalViewModel.cs b/src/ClaudeDo.Ui/ViewModels/Modals/SettingsModalViewModel.cs index 7ba8b3a..e923d8a 100644 --- a/src/ClaudeDo.Ui/ViewModels/Modals/SettingsModalViewModel.cs +++ b/src/ClaudeDo.Ui/ViewModels/Modals/SettingsModalViewModel.cs @@ -161,6 +161,32 @@ public sealed partial class SettingsModalViewModel : ViewModelBase finally { IsBusy = false; } } + [RelayCommand] + private async Task RestoreDefaultAgents() + { + IsBusy = true; + StatusMessage = ""; + try + { + var result = await _worker.RestoreDefaultAgentsAsync(); + if (result is null) + StatusMessage = "Worker offline."; + else if (result.Copied == 0 && result.Skipped == 0) + StatusMessage = "No default agents bundled."; + else if (result.Copied == 0) + StatusMessage = "All default agents already present."; + else + StatusMessage = $"Restored {result.Copied} default agent(s)."; + + await _worker.RefreshAgentsAsync(); + } + catch (Exception ex) + { + StatusMessage = $"Restore failed: {ex.Message}"; + } + finally { IsBusy = false; } + } + [RelayCommand] private void OpenPath(string? path) { diff --git a/src/ClaudeDo.Ui/Views/Modals/SettingsModalView.axaml b/src/ClaudeDo.Ui/Views/Modals/SettingsModalView.axaml index 09fa7b9..7aa874b 100644 --- a/src/ClaudeDo.Ui/Views/Modals/SettingsModalView.axaml +++ b/src/ClaudeDo.Ui/Views/Modals/SettingsModalView.axaml @@ -184,6 +184,23 @@ + + + + + + +