From 8feed02d4013167617e16d7e83190cd47f176677 Mon Sep 17 00:00:00 2001 From: G30 <50341825+silentoplayz@users.noreply.github.com> Date: Thu, 30 Oct 2025 13:44:05 -0400 Subject: [PATCH] fix: de-duplicate model tags case-insensitively (#18716) * fix: de-duplicate model tags case-insensitively This change updates the `setTags` function in the `Models.svelte` component and the `onMount` function in the `Selector.svelte` component to convert all model tags to lowercase before removing duplicates. This ensures that tags with different capitalization (e.g., "Best" and "best") are treated as a single tag, preventing duplicate entries in the tag filter dropdown on both the workspace models page and the new chat page. * Update Selector.svelte * refac --- .../chat/ModelSelector/Selector.svelte | 17 ++++++++++------- src/lib/components/workspace/Models.svelte | 2 +- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/lib/components/chat/ModelSelector/Selector.svelte b/src/lib/components/chat/ModelSelector/Selector.svelte index 4330690955..7cab9dce3f 100644 --- a/src/lib/components/chat/ModelSelector/Selector.svelte +++ b/src/lib/components/chat/ModelSelector/Selector.svelte @@ -312,13 +312,16 @@ onMount(async () => { if (items) { - tags = items - .filter((item) => !(item.model?.info?.meta?.hidden ?? false)) - .flatMap((item) => item.model?.tags ?? []) - .map((tag) => tag.name); - - // Remove duplicates and sort - tags = Array.from(new Set(tags)).sort((a, b) => a.localeCompare(b)); + tags = Array.from( + new Set( + items + .filter((item) => !(item.model?.info?.meta?.hidden ?? false)) + .flatMap((item) => item.model?.tags ?? []) + .map((tag) => tag.name.toLowerCase()) + ) + ) + .sort((a, b) => a.localeCompare(b)) + .map((tag) => capitalizeFirstLetter(tag)); } }); diff --git a/src/lib/components/workspace/Models.svelte b/src/lib/components/workspace/Models.svelte index a2d7258b65..d3ea81c82b 100644 --- a/src/lib/components/workspace/Models.svelte +++ b/src/lib/components/workspace/Models.svelte @@ -189,7 +189,7 @@ tags = models .filter((model) => !(model?.meta?.hidden ?? false)) .flatMap((model) => model?.meta?.tags ?? []) - .map((tag) => tag.name); + .map((tag) => tag.name.toLowerCase()); // Remove duplicates and sort tags = Array.from(new Set(tags)).sort((a, b) => a.localeCompare(b));