From 3870f15875ac5bd2de9bb5b59db545c756ac0901 Mon Sep 17 00:00:00 2001 From: Aleksander Grygier Date: Wed, 16 Sep 2026 13:51:09 +0200 Subject: [PATCH] ui : remember hub avatars that failed to load Assisted-by: pi:llama.cpp/DeepSeek-V4.1-Flash --- .../discover/ModelsDiscoverAvatar.svelte | 22 +++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/tools/ui/src/lib/components/app/models/discover/ModelsDiscoverAvatar.svelte b/tools/ui/src/lib/components/app/models/discover/ModelsDiscoverAvatar.svelte index 394229a37a..fd2dd70426 100644 --- a/tools/ui/src/lib/components/app/models/discover/ModelsDiscoverAvatar.svelte +++ b/tools/ui/src/lib/components/app/models/discover/ModelsDiscoverAvatar.svelte @@ -2,6 +2,11 @@ import * as Tooltip from '$lib/components/ui/tooltip'; import { DARK_INVERT_AVATAR_ORGS } from '$lib/constants'; import { HuggingFaceService } from '$lib/services'; + import { SvelteSet } from 'svelte/reactivity'; + + // Orgs whose avatar failed before. A row remounting (scrolling, reopening + // the selector) must not re-request them; the monogram renders instead. + const failedAvatarOrgs = new SvelteSet(); interface Props { class?: string; @@ -28,6 +33,9 @@ let avatarError = $state(false); let quantError = $state(false); + let orgAvatarFailed = $derived(avatarError || failedAvatarOrgs.has(org)); + let quantAvatarFailed = $derived(quantError || failedAvatarOrgs.has(quantOrg ?? '')); + let invertAvatar = $derived(DARK_INVERT_AVATAR_ORGS.includes(org)); let invertQuant = $derived(DARK_INVERT_AVATAR_ORGS.includes(quantOrg ?? '')); @@ -53,7 +61,7 @@ - {#if avatarError} + {#if orgAvatarFailed}