refactor(config): consolidate commit types into CommitTypeRegistry
Replaces six scattered "chore" literals across TaskEntity, ListEntity, WorkerHub, ListsIslandViewModel, ListNavItemViewModel and the inline commit type list in ListSettingsModalViewModel.
This commit is contained in:
11
src/ClaudeDo.Data/Models/CommitTypeRegistry.cs
Normal file
11
src/ClaudeDo.Data/Models/CommitTypeRegistry.cs
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
namespace ClaudeDo.Data.Models;
|
||||||
|
|
||||||
|
public static class CommitTypeRegistry
|
||||||
|
{
|
||||||
|
public static readonly IReadOnlyList<string> Types = new[]
|
||||||
|
{
|
||||||
|
"chore", "feat", "fix", "refactor", "docs", "test", "ci", "perf", "style", "build",
|
||||||
|
};
|
||||||
|
|
||||||
|
public const string DefaultType = "chore";
|
||||||
|
}
|
||||||
@@ -6,7 +6,7 @@ public sealed class ListEntity
|
|||||||
public required string Name { get; set; }
|
public required string Name { get; set; }
|
||||||
public required DateTime CreatedAt { get; init; }
|
public required DateTime CreatedAt { get; init; }
|
||||||
public string? WorkingDir { get; set; }
|
public string? WorkingDir { get; set; }
|
||||||
public string DefaultCommitType { get; set; } = "chore";
|
public string DefaultCommitType { get; set; } = CommitTypeRegistry.DefaultType;
|
||||||
|
|
||||||
// Navigation properties
|
// Navigation properties
|
||||||
public ListConfigEntity? Config { get; set; }
|
public ListConfigEntity? Config { get; set; }
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ public sealed class TaskEntity
|
|||||||
public required DateTime CreatedAt { get; init; }
|
public required DateTime CreatedAt { get; init; }
|
||||||
public DateTime? StartedAt { get; set; }
|
public DateTime? StartedAt { get; set; }
|
||||||
public DateTime? FinishedAt { get; set; }
|
public DateTime? FinishedAt { get; set; }
|
||||||
public string CommitType { get; set; } = "chore";
|
public string CommitType { get; set; } = CommitTypeRegistry.DefaultType;
|
||||||
public string? Model { get; set; }
|
public string? Model { get; set; }
|
||||||
public string? SystemPrompt { get; set; }
|
public string? SystemPrompt { get; set; }
|
||||||
public string? AgentPath { get; set; }
|
public string? AgentPath { get; set; }
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
using ClaudeDo.Data.Models;
|
||||||
using CommunityToolkit.Mvvm.ComponentModel;
|
using CommunityToolkit.Mvvm.ComponentModel;
|
||||||
|
|
||||||
namespace ClaudeDo.Ui.ViewModels.Islands;
|
namespace ClaudeDo.Ui.ViewModels.Islands;
|
||||||
@@ -10,7 +11,7 @@ public sealed partial class ListNavItemViewModel : ViewModelBase
|
|||||||
[ObservableProperty] private int _count;
|
[ObservableProperty] private int _count;
|
||||||
[ObservableProperty] private bool _isActive;
|
[ObservableProperty] private bool _isActive;
|
||||||
[ObservableProperty] private string? _workingDir;
|
[ObservableProperty] private string? _workingDir;
|
||||||
[ObservableProperty] private string _defaultCommitType = "chore";
|
[ObservableProperty] private string _defaultCommitType = CommitTypeRegistry.DefaultType;
|
||||||
public string? IconKey { get; init; }
|
public string? IconKey { get; init; }
|
||||||
public string? DotColorKey { get; init; }
|
public string? DotColorKey { get; init; }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -163,7 +163,7 @@ public sealed partial class ListsIslandViewModel : ViewModelBase
|
|||||||
{
|
{
|
||||||
Id = Guid.NewGuid().ToString("N"),
|
Id = Guid.NewGuid().ToString("N"),
|
||||||
Name = "New list",
|
Name = "New list",
|
||||||
DefaultCommitType = "chore",
|
DefaultCommitType = CommitTypeRegistry.DefaultType,
|
||||||
CreatedAt = DateTime.UtcNow,
|
CreatedAt = DateTime.UtcNow,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ public sealed partial class ListSettingsModalViewModel : ViewModelBase
|
|||||||
|
|
||||||
[ObservableProperty] private string _name = "";
|
[ObservableProperty] private string _name = "";
|
||||||
[ObservableProperty] private string _workingDir = "";
|
[ObservableProperty] private string _workingDir = "";
|
||||||
[ObservableProperty] private string _defaultCommitType = "chore";
|
[ObservableProperty] private string _defaultCommitType = CommitTypeRegistry.DefaultType;
|
||||||
|
|
||||||
[ObservableProperty] private string _selectedModel = ModelRegistry.ListDefaultSentinel;
|
[ObservableProperty] private string _selectedModel = ModelRegistry.ListDefaultSentinel;
|
||||||
[ObservableProperty] private string _systemPrompt = "";
|
[ObservableProperty] private string _systemPrompt = "";
|
||||||
@@ -23,10 +23,7 @@ public sealed partial class ListSettingsModalViewModel : ViewModelBase
|
|||||||
public ObservableCollection<string> ModelOptions { get; } = new(
|
public ObservableCollection<string> ModelOptions { get; } = new(
|
||||||
new[] { ModelRegistry.ListDefaultSentinel }.Concat(ModelRegistry.Aliases));
|
new[] { ModelRegistry.ListDefaultSentinel }.Concat(ModelRegistry.Aliases));
|
||||||
|
|
||||||
public ObservableCollection<string> CommitTypeOptions { get; } = new()
|
public ObservableCollection<string> CommitTypeOptions { get; } = new(CommitTypeRegistry.Types);
|
||||||
{
|
|
||||||
"chore", "feat", "fix", "refactor", "docs", "test", "ci", "perf", "style", "build",
|
|
||||||
};
|
|
||||||
|
|
||||||
public ObservableCollection<AgentInfo> Agents { get; } = new();
|
public ObservableCollection<AgentInfo> Agents { get; } = new();
|
||||||
|
|
||||||
@@ -47,7 +44,7 @@ public sealed partial class ListSettingsModalViewModel : ViewModelBase
|
|||||||
ListId = listId;
|
ListId = listId;
|
||||||
Name = name;
|
Name = name;
|
||||||
WorkingDir = workingDir ?? "";
|
WorkingDir = workingDir ?? "";
|
||||||
DefaultCommitType = string.IsNullOrWhiteSpace(defaultCommitType) ? "chore" : defaultCommitType;
|
DefaultCommitType = string.IsNullOrWhiteSpace(defaultCommitType) ? CommitTypeRegistry.DefaultType : defaultCommitType;
|
||||||
|
|
||||||
Agents.Clear();
|
Agents.Clear();
|
||||||
Agents.Add(new AgentInfo("(none)", "", ""));
|
Agents.Add(new AgentInfo("(none)", "", ""));
|
||||||
|
|||||||
@@ -281,7 +281,7 @@ public sealed class WorkerHub : Microsoft.AspNetCore.SignalR.Hub
|
|||||||
|
|
||||||
entity.Name = dto.Name;
|
entity.Name = dto.Name;
|
||||||
entity.WorkingDir = string.IsNullOrWhiteSpace(dto.WorkingDir) ? null : dto.WorkingDir;
|
entity.WorkingDir = string.IsNullOrWhiteSpace(dto.WorkingDir) ? null : dto.WorkingDir;
|
||||||
entity.DefaultCommitType = string.IsNullOrWhiteSpace(dto.DefaultCommitType) ? "chore" : dto.DefaultCommitType;
|
entity.DefaultCommitType = string.IsNullOrWhiteSpace(dto.DefaultCommitType) ? CommitTypeRegistry.DefaultType : dto.DefaultCommitType;
|
||||||
await repo.UpdateAsync(entity);
|
await repo.UpdateAsync(entity);
|
||||||
|
|
||||||
await _broadcaster.ListUpdated(dto.Id);
|
await _broadcaster.ListUpdated(dto.Id);
|
||||||
|
|||||||
Reference in New Issue
Block a user