From e41b8f23a4aaded23e3ade3694ce20c2f99cd492 Mon Sep 17 00:00:00 2001 From: Drew Stone Date: Wed, 24 Jun 2026 16:18:04 -0600 Subject: [PATCH] [RELEASE] fix(tangle-cloud): hide blueprints with broken metadata from gallery Blueprints whose metadataUri endpoint is dead/invalid fall through to the 'Onchain Blueprint' + 'Metadata endpoint unavailable' fallback, which reads as a broken card on the gallery. Filter them out (fail-closed) so visitors only see blueprints with properly resolved metadata. Self-heals as endpoints recover. --- .../src/pages/blueprints/BlueprintListing.tsx | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/apps/tangle-cloud/src/pages/blueprints/BlueprintListing.tsx b/apps/tangle-cloud/src/pages/blueprints/BlueprintListing.tsx index cd38bc2bb..107423911 100644 --- a/apps/tangle-cloud/src/pages/blueprints/BlueprintListing.tsx +++ b/apps/tangle-cloud/src/pages/blueprints/BlueprintListing.tsx @@ -152,12 +152,14 @@ const BlueprintListing: FC = ({ const navigate = useNavigate(); const rows = useMemo(() => { - const sorted = Array.from(blueprints.values()).sort((a, b) => { - if (a.isBoosted && !b.isBoosted) return -1; - if (!a.isBoosted && b.isBoosted) return 1; - if (a.id === b.id) return 0; - return a.id < b.id ? 1 : -1; - }); + const sorted = Array.from(blueprints.values()) + .filter((bp) => bp.name !== 'Onchain Blueprint') + .sort((a, b) => { + if (a.isBoosted && !b.isBoosted) return -1; + if (!a.isBoosted && b.isBoosted) return 1; + if (a.id === b.id) return 0; + return a.id < b.id ? 1 : -1; + }); return dedupeBlueprintsByIdentity(sorted); }, [blueprints]);