diff --git a/src/ClaudeDo.Localization/locales/de.json b/src/ClaudeDo.Localization/locales/de.json index b43c8771..27f1ee33 100644 --- a/src/ClaudeDo.Localization/locales/de.json +++ b/src/ClaudeDo.Localization/locales/de.json @@ -108,7 +108,8 @@ "installButton": "Installieren", "installedSection": "INSTALLIERT", "updateButton": "Aktualisieren", - "removeButton": "Entfernen" + "removeButton": "Entfernen", + "emptyState": "Keine Skills installiert — oben eine GitHub-URL einfügen, um einen hinzuzufügen." } }, "tasks": { @@ -188,7 +189,7 @@ "mergeTargetLabel": "Merge-Ziel", "reviewCombinedDiff": "Kombiniertes Diff prüfen", "mergeAllSubtasks": "Alle Teilaufgaben mergen", - "childOutcomesLabel": "VERBESSERUNGEN", + "childOutcomesLabel": "TEILAUFGABEN", "stepsLabel": "SCHRITTE", "addStepPlaceholder": "Schritt hinzufügen...", "detailsLabel": "DETAILS", @@ -500,8 +501,8 @@ "vm": { "connection": { "online": "Online", "connecting": "Verbinden…", "offline": "Offline" }, "shell": { "restartingWorker": "Worker wird neu gestartet…" }, - "agentStatus": { "idle": "Leerlauf", "queued": "In Warteschlange", "running": "Läuft", "review": "Prüfung", "children": "Wartet auf Verbesserungen", "done": "Fertig", "failed": "Fehlgeschlagen", "cancelled": "Abgebrochen" }, - "taskStatus": { "idle": "Leerlauf", "queued": "In Warteschlange", "running": "Läuft", "waitingForReview": "Wartet auf Prüfung", "waitingForChildren": "Wartet auf Verbesserungen", "done": "Fertig", "failed": "Fehlgeschlagen", "cancelled": "Abgebrochen", "parked": "Geparkt" }, + "agentStatus": { "idle": "Leerlauf", "queued": "In Warteschlange", "running": "Läuft", "review": "Prüfung", "children": "Wartet auf Teilaufgaben", "done": "Fertig", "failed": "Fehlgeschlagen", "cancelled": "Abgebrochen" }, + "taskStatus": { "idle": "Leerlauf", "queued": "In Warteschlange", "running": "Läuft", "waitingForReview": "Wartet auf Prüfung", "waitingForChildren": "Wartet auf Teilaufgaben", "done": "Fertig", "failed": "Fehlgeschlagen", "cancelled": "Abgebrochen", "parked": "Geparkt" }, "planningBadge": { "active": "PLANUNG", "finalized": "GEPLANT" }, "taskRow": { "createdPrefix": "Erstellt {0}", "stepsText": "{0}/{1} Schritte" }, "tasksIsland": { "completedHeader": "ABGESCHLOSSEN", "completedHeaderCount": "ABGESCHLOSSEN · {0}", "planningOpenFailed": "Planungssitzung konnte nicht geöffnet werden: {0}", "pickUpInTerminalFailed": "Im Terminal fortsetzen fehlgeschlagen: {0}", "approveFailed": "Genehmigen & Mergen fehlgeschlagen: {0}" }, diff --git a/src/ClaudeDo.Localization/locales/en.json b/src/ClaudeDo.Localization/locales/en.json index 033c96a0..27971dfa 100644 --- a/src/ClaudeDo.Localization/locales/en.json +++ b/src/ClaudeDo.Localization/locales/en.json @@ -108,7 +108,8 @@ "installButton": "Install", "installedSection": "INSTALLED", "updateButton": "Update", - "removeButton": "Remove" + "removeButton": "Remove", + "emptyState": "No skills installed — paste a GitHub URL above to add one." } }, "tasks": { @@ -188,7 +189,7 @@ "mergeTargetLabel": "Merge target", "reviewCombinedDiff": "Review combined diff", "mergeAllSubtasks": "Merge all subtasks", - "childOutcomesLabel": "IMPROVEMENTS", + "childOutcomesLabel": "SUBTASKS", "stepsLabel": "STEPS", "addStepPlaceholder": "Add a step...", "detailsLabel": "DETAILS", @@ -500,8 +501,8 @@ "vm": { "connection": { "online": "Online", "connecting": "Connecting…", "offline": "Offline" }, "shell": { "restartingWorker": "Restarting worker…" }, - "agentStatus": { "idle": "Idle", "queued": "Queued", "running": "Running", "review": "Review", "children": "Waiting for Improvements", "done": "Done", "failed": "Failed", "cancelled": "Cancelled" }, - "taskStatus": { "idle": "Idle", "queued": "Queued", "running": "Running", "waitingForReview": "Waiting for Review", "waitingForChildren": "Waiting for Improvements", "done": "Done", "failed": "Failed", "cancelled": "Cancelled", "parked": "Parked" }, + "agentStatus": { "idle": "Idle", "queued": "Queued", "running": "Running", "review": "Review", "children": "Waiting for Subtasks", "done": "Done", "failed": "Failed", "cancelled": "Cancelled" }, + "taskStatus": { "idle": "Idle", "queued": "Queued", "running": "Running", "waitingForReview": "Waiting for Review", "waitingForChildren": "Waiting for Subtasks", "done": "Done", "failed": "Failed", "cancelled": "Cancelled", "parked": "Parked" }, "planningBadge": { "active": "PLANNING", "finalized": "PLANNED" }, "taskRow": { "createdPrefix": "Created {0}", "stepsText": "{0}/{1} steps" }, "tasksIsland": { "completedHeader": "COMPLETED", "completedHeaderCount": "COMPLETED · {0}", "planningOpenFailed": "Couldn't open planning session: {0}", "pickUpInTerminalFailed": "Pick up in terminal failed: {0}", "approveFailed": "Approve & merge failed: {0}" }, diff --git a/src/ClaudeDo.Ui/ViewModels/Modals/Settings/SessionSkillsSettingsTabViewModel.cs b/src/ClaudeDo.Ui/ViewModels/Modals/Settings/SessionSkillsSettingsTabViewModel.cs index 0c9af50a..2382240d 100644 --- a/src/ClaudeDo.Ui/ViewModels/Modals/Settings/SessionSkillsSettingsTabViewModel.cs +++ b/src/ClaudeDo.Ui/ViewModels/Modals/Settings/SessionSkillsSettingsTabViewModel.cs @@ -13,6 +13,7 @@ public sealed partial class SessionSkillsSettingsTabViewModel : ViewModelBase [ObservableProperty] private string _installUrl = ""; [ObservableProperty] private string _statusMessage = ""; [ObservableProperty] private bool _isBusy; + [ObservableProperty] private bool _isEmpty = true; public ObservableCollection Skills { get; } = new(); @@ -26,6 +27,7 @@ public sealed partial class SessionSkillsSettingsTabViewModel : ViewModelBase var skills = await _worker.GetSessionSkillsAsync(); Skills.Clear(); foreach (var s in skills) Skills.Add(s); + IsEmpty = Skills.Count == 0; } finally { IsBusy = false; } } diff --git a/src/ClaudeDo.Ui/Views/Modals/SettingsModalView.axaml b/src/ClaudeDo.Ui/Views/Modals/SettingsModalView.axaml index 8cba8eda..cd99eef9 100644 --- a/src/ClaudeDo.Ui/Views/Modals/SettingsModalView.axaml +++ b/src/ClaudeDo.Ui/Views/Modals/SettingsModalView.axaml @@ -413,6 +413,9 @@ +