diff --git a/src/OpenClaw.Tray.WinUI/Windows/CommandPaletteDialog.xaml.cs b/src/OpenClaw.Tray.WinUI/Windows/CommandPaletteDialog.xaml.cs index d75e88064..623b01c75 100644 --- a/src/OpenClaw.Tray.WinUI/Windows/CommandPaletteDialog.xaml.cs +++ b/src/OpenClaw.Tray.WinUI/Windows/CommandPaletteDialog.xaml.cs @@ -99,4 +99,7 @@ public class CommandItem public string Tag { get; set; } = ""; /// Optional custom action (overrides tag-based navigation). public Action? Execute { get; set; } + + // AutoSuggestBox derives each suggestion's default accessible name from the item string. + public override string ToString() => Title; } diff --git a/src/OpenClaw.Tray.WinUI/Windows/HubWindow.xaml b/src/OpenClaw.Tray.WinUI/Windows/HubWindow.xaml index d48c1dd6f..aefd79884 100644 --- a/src/OpenClaw.Tray.WinUI/Windows/HubWindow.xaml +++ b/src/OpenClaw.Tray.WinUI/Windows/HubWindow.xaml @@ -92,7 +92,8 @@ typeof(DebugPage)", cs); } + [Fact] + public void HubWindow_TitleSearchBox_ProjectsCommandTitles() + { + var xaml = Read("src", "OpenClaw.Tray.WinUI", "Windows", "HubWindow.xaml"); + var searchStart = xaml.IndexOf("= 0, "The title search box must exist."); + + var searchEnd = xaml.IndexOf('>', searchStart); + Assert.True(searchEnd > searchStart, "The title search box opening tag must be complete."); + + var searchTag = xaml.Substring(searchStart, searchEnd - searchStart); + Assert.Contains("TextMemberPath=\"Title\"", searchTag); + + var commandItem = Read("src", "OpenClaw.Tray.WinUI", "Windows", "CommandPaletteDialog.xaml.cs"); + Assert.Contains("public override string ToString() => Title;", commandItem); + } + [Fact] public void HubWindow_NavPaneToggle_LivesInTitleBarAndHidesBuiltInToggle() {