From 25b910e567243c5246ee09957bff447d97ac517b Mon Sep 17 00:00:00 2001 From: Lakshmi Tanmay Date: Fri, 2 Oct 2026 09:21:05 +0530 Subject: [PATCH 1/7] fix: retry original images when optimization fails --- src/lib/images.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/lib/images.ts b/src/lib/images.ts index 2e00400..8e6e581 100644 --- a/src/lib/images.ts +++ b/src/lib/images.ts @@ -11,3 +11,13 @@ export function imageSrcset(url: string, widths: readonly ImageWidth[]): string if (!__VERCEL_IMAGES__) return undefined; return widths.map((w) => `${optimizedImage(url, w)} ${w}w`).join(", "); } + +export function retryOriginalImage( + image: Pick, + url: string, +): boolean { + if (image.src === url) return false; + image.srcset = ""; + image.src = url; + return true; +} From f0476865027aec5febd3b9098ebd67f3e2a81758 Mon Sep 17 00:00:00 2001 From: Lakshmi Tanmay Date: Fri, 2 Oct 2026 09:21:05 +0530 Subject: [PATCH 2/7] test: cover image fallback and retry limits --- src/lib/images.test.ts | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 src/lib/images.test.ts diff --git a/src/lib/images.test.ts b/src/lib/images.test.ts new file mode 100644 index 0000000..bf25ed5 --- /dev/null +++ b/src/lib/images.test.ts @@ -0,0 +1,26 @@ +import { describe, expect, it } from "vite-plus/test"; +import { retryOriginalImage } from "./images.js"; + +const url = "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/25.png"; + +describe("retryOriginalImage", () => { + it("retries the original when the optimizer fails and clears responsive candidates", () => { + const image = { + src: "https://dexa.voltcrash.com/_vercel/image?url=artwork", + srcset: "optimized 384w", + }; + expect(retryOriginalImage(image, url)).toBe(true); + expect(image).toEqual({ src: url, srcset: "" }); + }); + + it("stops retrying when the original also fails", () => { + const image = { src: "/_vercel/image?url=artwork", srcset: "" }; + retryOriginalImage(image, url); + expect(retryOriginalImage(image, url)).toBe(false); + }); + + it("does not retry an image already served directly", () => { + const image = { src: url, srcset: "" }; + expect(retryOriginalImage(image, url)).toBe(false); + }); +}); From a3dc9e5fbaf64ba7bdb4707b31b74904e49576a2 Mon Sep 17 00:00:00 2001 From: Lakshmi Tanmay Date: Fri, 2 Oct 2026 09:21:05 +0530 Subject: [PATCH 3/7] fix: recover Pokemon artwork when optimization fails --- src/lib/components/pokemon/pokemon-art.svelte | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/lib/components/pokemon/pokemon-art.svelte b/src/lib/components/pokemon/pokemon-art.svelte index 9139b3e..d85fc64 100644 --- a/src/lib/components/pokemon/pokemon-art.svelte +++ b/src/lib/components/pokemon/pokemon-art.svelte @@ -1,5 +1,5 @@