Sort folders alphabetically; let users pick the merge model directly

Folders now list alphabetically (case-insensitive) everywhere they're
shown — sidebar, advanced conversation list, and the "Move to Folder"
menu — rather than creation order. listFolders() does the sort at the
DB layer; in-memory folder arrays are re-sorted after local
create/rename so newly added or renamed folders don't fall out of
order until the next reload.

Combine Conversations' AI-Assisted Merge no longer silently assumes
settings.defaultModel — added a model picker (reusing ModelSelectorView,
defaulting to the current default model/provider) so users can pick
which model performs the merge per-combine. ConversationMergeService.merge
takes optional mergeModelId/mergeProvider overrides.
This commit is contained in:
2026-07-28 14:39:18 +02:00
parent 8dee77541f
commit e898d4b6db
6 changed files with 75 additions and 17 deletions
+3 -2
View File
@@ -240,14 +240,15 @@ struct DatabaseServiceFolderTests {
#expect(second.sortOrder == 1)
}
@Test("listFolders returns folders ordered by sortOrder")
@Test("listFolders returns folders sorted alphabetically, case-insensitive, regardless of creation order")
func listFoldersOrdered() throws {
let db = DatabaseService.makeInMemory()
_ = try db.createFolder(name: "Work")
_ = try db.createFolder(name: "apple")
_ = try db.createFolder(name: "Personal")
let folders = try db.listFolders()
#expect(folders.map(\.name) == ["Work", "Personal"])
#expect(folders.map(\.name) == ["apple", "Personal", "Work"])
}
@Test("renameFolder updates the stored name")