From b1df4c034df372099d3d15bd811add4e32aec442 Mon Sep 17 00:00:00 2001 From: Codev contributors Date: Fri, 9 Oct 2026 10:16:15 -0400 Subject: [PATCH 1/2] Add drag reorder for sidebar conversations --- Codev.Avalonia.Tests/MainWindowTests.cs | 11 ++++++ Codev.Avalonia/ViewModels/MainViewModel.cs | 37 +++++++++++++++++-- Codev.Avalonia/Views/MainWindow.axaml | 4 +- Codev.Avalonia/Views/MainWindow.axaml.cs | 27 ++++++++++++++ Codev.Core/ConversationBackupService.cs | 1 + Codev.Core/ConversationPersistence.cs | 1 + Codev.Core/ConversationSidebarOrdering.cs | 30 +++++++++++++++ Codev.Core/CoreModels.cs | 1 + Codev.Tests/ConversationBackupServiceTests.cs | 2 + Codev.Tests/ConversationPersistenceTests.cs | 2 + .../ConversationSidebarOrderingTests.cs | 34 +++++++++++++++++ DESIGN.md | 2 +- 12 files changed, 145 insertions(+), 7 deletions(-) create mode 100644 Codev.Core/ConversationSidebarOrdering.cs create mode 100644 Codev.Tests/ConversationSidebarOrderingTests.cs diff --git a/Codev.Avalonia.Tests/MainWindowTests.cs b/Codev.Avalonia.Tests/MainWindowTests.cs index 3745f2b3..1ea1bf32 100644 --- a/Codev.Avalonia.Tests/MainWindowTests.cs +++ b/Codev.Avalonia.Tests/MainWindowTests.cs @@ -455,6 +455,11 @@ public async Task Sidebar_conversation_sections_toggle_and_persist_expanded_stat viewModel.NewConversationCommand.Execute(null); var recent = Assert.IsType(viewModel.ActiveConversation); recent.Title = "Recent sidebar fixture"; + viewModel.NewConversationCommand.Execute(null); + var later = Assert.IsType(viewModel.ActiveConversation); + later.Title = "Second recent sidebar fixture"; + Assert.True(viewModel.ReorderConversation(later.Id, recent, insertAfter: false)); + Assert.Equal(new[] { recent.Id, later.Id }, viewModel.RecentConversations.Select(item => item.Id)); var pinnedToggle = Assert.IsType