From 67e2fe71d937b45384a53c4e0addd9a167aed885 Mon Sep 17 00:00:00 2001 From: Theo Browne Date: Wed, 19 Aug 2026 00:47:02 -0400 Subject: [PATCH] fix(marketing): never serve the Intel build to Apple Silicon Macs (#7477) Co-authored-by: Claude Fable 5 --- apps/marketing/src/lib/macArch.test.ts | 23 ----------------- apps/marketing/src/lib/macArch.ts | 14 ----------- apps/marketing/src/pages/download.astro | 29 +++++++++++++++++----- apps/marketing/src/pages/index.astro | 33 ++++++------------------- 4 files changed, 30 insertions(+), 69 deletions(-) delete mode 100644 apps/marketing/src/lib/macArch.test.ts delete mode 100644 apps/marketing/src/lib/macArch.ts diff --git a/apps/marketing/src/lib/macArch.test.ts b/apps/marketing/src/lib/macArch.test.ts deleted file mode 100644 index f15c3c58835080c8edd9ec479552c7cbc8bc13d5..0000000000000000000000000000000000000000 --- a/apps/marketing/src/lib/macArch.test.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { describe, expect, it } from "vite-plus/test"; - -import { macArchFromGpuRenderer } from "./macArch"; - -describe("macArchFromGpuRenderer", () => { - it("detects explicit Apple Silicon renderers", () => { - expect(macArchFromGpuRenderer("Apple M4 Pro")).toBe("arm64"); - }); - - it("prefers an Intel GPU marker even when the renderer also mentions Apple", () => { - expect(macArchFromGpuRenderer("ANGLE Metal Renderer: Apple, Intel Iris Plus Graphics")).toBe( - "x64", - ); - }); - - it("detects Safari's generic Apple Silicon renderer", () => { - expect(macArchFromGpuRenderer("Apple GPU")).toBe("arm64"); - }); - - it("uses x64 when the renderer is unavailable", () => { - expect(macArchFromGpuRenderer("")).toBe("x64"); - }); -}); diff --git a/apps/marketing/src/lib/macArch.ts b/apps/marketing/src/lib/macArch.ts deleted file mode 100644 index 8b41ad141ceb4f8580d19299463fbbbd04e3678a..0000000000000000000000000000000000000000 --- a/apps/marketing/src/lib/macArch.ts +++ /dev/null @@ -1,14 +0,0 @@ -const INTEL_GPU_PATTERN = /intel|amd|radeon|nvidia|geforce/i; -const APPLE_SILICON_GPU_PATTERN = /\bapple\s+(?:m\d|gpu)\b/i; - -export function macArchFromGpuRenderer(renderer: string): "arm64" | "x64" { - if (INTEL_GPU_PATTERN.test(renderer)) { - return "x64"; - } - if (APPLE_SILICON_GPU_PATTERN.test(renderer)) { - return "arm64"; - } - - // Keep the fallback compatible with Intel Macs when WebGL is unavailable. - return "x64"; -} diff --git a/apps/marketing/src/pages/download.astro b/apps/marketing/src/pages/download.astro index 5557f5fb6b19bbea459f1f42730b6b003bd009ae..6b58e4c29137107ac662c9d9c98be97b4f7cfafc 100644 --- a/apps/marketing/src/pages/download.astro +++ b/apps/marketing/src/pages/download.astro @@ -24,11 +24,10 @@ import { ANDROID_PLAY_STORE_URL, IOS_APP_STORE_URL } from "../lib/site"; Apple Silicon (arm64) .dmg - - Intel (x64) - .dmg - +

+ On an Intel Mac? Download the x64 build. +

@@ -92,8 +91,8 @@ import { ANDROID_PLAY_STORE_URL, IOS_APP_STORE_URL } from "../lib/site"; async function init() { const versionLabel = document.getElementById("version-label"); - // Only release-asset cards; mobile store cards have no data-asset and keep their href. - const cards = document.querySelectorAll(".download-card[data-asset]"); + // Only release-asset links; mobile store cards have no data-asset and keep their href. + const cards = document.querySelectorAll("a[data-asset]"); try { const release = await fetchLatestRelease(); @@ -257,6 +256,24 @@ import { ANDROID_PLAY_STORE_URL, IOS_APP_STORE_URL } from "../lib/site"; color: var(--fg-dim); } + .intel-note { + font-size: 0.8rem; + color: var(--fg-dim); + } + + .intel-note a { + color: var(--fg-muted); + text-decoration: underline; + text-decoration-color: rgba(161, 161, 170, 0.4); + text-underline-offset: 3px; + transition: color 0.3s ease, text-decoration-color 0.3s ease; + } + + .intel-note a:hover { + color: var(--fg); + text-decoration-color: var(--fg); + } + /* ── Releases link ── */ .releases-link { diff --git a/apps/marketing/src/pages/index.astro b/apps/marketing/src/pages/index.astro index 37ff6b69346c31ca436e6044761af1d0792afcb2..e45cb760287308be9befc120a6344225255ce69d 100644 --- a/apps/marketing/src/pages/index.astro +++ b/apps/marketing/src/pages/index.astro @@ -391,46 +391,27 @@ const mobileEndorsementRows = [