From 33344d676628118fcf1e91b3e2bb365068b0147a Mon Sep 17 00:00:00 2001 From: Augie Luebbers <9794679+AugusDogus@users.noreply.github.com> Date: Wed, 11 Nov 2026 15:46:08 -0800 Subject: [PATCH] Forward /favicon.png to v2 v2's OAuth client metadata document on executor.sh names https://executor.sh/favicon.png as its logo. v1 has no file at that path, so its SPA fallback answered with HTML. Fixes #2541 --- apps/cloud/src/edge/marketing.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/apps/cloud/src/edge/marketing.ts b/apps/cloud/src/edge/marketing.ts index 7ef91d2c14..36e044e433 100644 --- a/apps/cloud/src/edge/marketing.ts +++ b/apps/cloud/src/edge/marketing.ts @@ -105,7 +105,9 @@ export const isV2Path = (pathname: string): boolean => * `/apps/*` and `/experiments/*` are v2's; v2 publishes nothing at a bare * `/experiments`, which stays with v1. `/demo` is a valid, unreserved v1 * organization slug, so it and everything below it stay with v1. The - * favicons stay with v1 too: v1's dashboard serves identical files. */ + * favicons stay with v1 too: v1's dashboard serves identical files. v1 has + * no `/favicon.png`, which v2's OAuth client metadata document names as its + * logo, so that one is v2's. */ const V2_MARKETING_PATHS: ReadonlyArray = [ "/home", "/pricing", @@ -126,6 +128,7 @@ const V2_MARKETING_PATHS: ReadonlyArray = [ "/authors/*", "/og-image.png", "/pattern-graph-paper.svg", + "/favicon.png", ]; /** Whether a pathname belongs to v2's marketing site on `executor.sh`. `/`