diff --git a/src/ClaudeDo.Ui/Design/IslandStyles.axaml b/src/ClaudeDo.Ui/Design/IslandStyles.axaml
index f5a375ee..4ce6d031 100644
--- a/src/ClaudeDo.Ui/Design/IslandStyles.axaml
+++ b/src/ClaudeDo.Ui/Design/IslandStyles.axaml
@@ -54,6 +54,9 @@
The old stroke version filled into a solid slab. -->
F0 M3 5 H21 V19 H3 Z M5 7 H19 V12 H5 Z M5 14 H19 V17 H5 Z M11 7.6 H13 V9.4 H15 L12 12 L9 9.4 H11 Z
+
+ M12 7a5 5 0 1 0 0 10a5 5 0 1 0 0-10z
+
M3 7a2 2 0 0 1 2-2h4l2 2h8a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z
diff --git a/src/ClaudeDo.Ui/ViewModels/Islands/ListNavItemViewModel.cs b/src/ClaudeDo.Ui/ViewModels/Islands/ListNavItemViewModel.cs
index 87245e08..e0d20517 100644
--- a/src/ClaudeDo.Ui/ViewModels/Islands/ListNavItemViewModel.cs
+++ b/src/ClaudeDo.Ui/ViewModels/Islands/ListNavItemViewModel.cs
@@ -1,4 +1,5 @@
using ClaudeDo.Data.Models;
+using ClaudeDo.Ui.ViewModels.MissionControl;
using CommunityToolkit.Mvvm.ComponentModel;
namespace ClaudeDo.Ui.ViewModels.Islands;
@@ -30,7 +31,15 @@ public sealed partial class ListNavItemViewModel : ViewModelBase
// DropHintAbove/Below, which mark an insertion point for list reordering.
[ObservableProperty] private bool _isTaskDropTarget;
// Settable (not init) so a list-settings icon change refreshes the row in place.
- [ObservableProperty] private string? _iconKey;
+ [ObservableProperty]
+ [NotifyPropertyChangedFor(nameof(IsDot))]
+ private string? _iconKey;
+
+ /// No icon picked — the row shows a coloured dot instead of a glyph.
+ public bool IsDot => IconKey is null or ListsIslandViewModel.ListIcon;
+
+ /// Identity colour of the dot, stable per list id across restarts.
+ public string DotColorKey => $"Identity{ConPtyPaneViewModel.StableIndex(Id, 6) + 1}";
// The sidebar folder this row sits in (ListEntity.FolderId); null = top level.
[ObservableProperty] private string? _folderId;
}
diff --git a/src/ClaudeDo.Ui/ViewModels/MissionControl/ConPtyPaneViewModel.cs b/src/ClaudeDo.Ui/ViewModels/MissionControl/ConPtyPaneViewModel.cs
index 768936a7..e66d8b11 100644
--- a/src/ClaudeDo.Ui/ViewModels/MissionControl/ConPtyPaneViewModel.cs
+++ b/src/ClaudeDo.Ui/ViewModels/MissionControl/ConPtyPaneViewModel.cs
@@ -30,7 +30,8 @@ public sealed partial class ConPtyPaneViewModel : ViewModelBase, IDisposable
// FNV-1a, not string.GetHashCode: the latter is randomized per process, so the same task would
// change colour on every app start.
- private static int StableIndex(string value, int buckets)
+ /// Process-stable bucket for ; also colours the sidebar list dots.
+ internal static int StableIndex(string value, int buckets)
{
uint hash = 2166136261;
foreach (var c in value)
diff --git a/src/ClaudeDo.Ui/ViewModels/Modals/ListSettingsModalViewModel.cs b/src/ClaudeDo.Ui/ViewModels/Modals/ListSettingsModalViewModel.cs
index cea6a3fe..aa409720 100644
--- a/src/ClaudeDo.Ui/ViewModels/Modals/ListSettingsModalViewModel.cs
+++ b/src/ClaudeDo.Ui/ViewModels/Modals/ListSettingsModalViewModel.cs
@@ -111,7 +111,7 @@ public sealed partial class ListSettingsModalViewModel : ViewModelBase
public ObservableCollection CommitTypeOptions { get; } = new(CommitTypeRegistry.Types);
- public const string DefaultIcon = "Text";
+ public const string DefaultIcon = "Dot";
/// Default icon for folders, kept apart from so lists never look like folders.
public const string DefaultFolderIcon = "Folder";
@@ -123,7 +123,7 @@ public sealed partial class ListSettingsModalViewModel : ViewModelBase
public static readonly string[] IconOptions =
[
// general
- "Folder", "Star", "Sun", "Calendar", "Clock", "Inbox", "Mail", "Text", "Search", "Grid",
+ "Dot", "Folder", "Star", "Sun", "Calendar", "Clock", "Inbox", "Mail", "Text", "Search", "Grid",
// dev
"Code", "Terminal", "Database", "Server", "Chip", "Bolt", "Wand", "Flask", "Shield",
// status / flow
diff --git a/src/ClaudeDo.Ui/Views/Islands/ListsIslandView.axaml b/src/ClaudeDo.Ui/Views/Islands/ListsIslandView.axaml
index 181ce0a1..5185315e 100644
--- a/src/ClaudeDo.Ui/Views/Islands/ListsIslandView.axaml
+++ b/src/ClaudeDo.Ui/Views/Islands/ListsIslandView.axaml
@@ -73,9 +73,12 @@
+
-
+
-