From 48709ea7c47ab18f382fcb58232c4e96e6011998 Mon Sep 17 00:00:00 2001 From: yanweidong Date: Tue, 21 Jul 2026 12:43:17 +0800 Subject: [PATCH] fix(web): enforce single brand icon asset --- apps/web_v1/public/favicon.svg | 10 ------- apps/web_v1/public/senlinai-icon.svg | 3 +-- apps/web_v1/scripts/structure-check.mjs | 12 +++++++++ apps/web_v1/src/App.css | 35 +++++++++++++++++-------- 4 files changed, 37 insertions(+), 23 deletions(-) delete mode 100644 apps/web_v1/public/favicon.svg diff --git a/apps/web_v1/public/favicon.svg b/apps/web_v1/public/favicon.svg deleted file mode 100644 index e88854d..0000000 --- a/apps/web_v1/public/favicon.svg +++ /dev/null @@ -1,10 +0,0 @@ - - 森林AI - - - - - - - - diff --git a/apps/web_v1/public/senlinai-icon.svg b/apps/web_v1/public/senlinai-icon.svg index e88854d..1d0f141 100644 --- a/apps/web_v1/public/senlinai-icon.svg +++ b/apps/web_v1/public/senlinai-icon.svg @@ -1,5 +1,4 @@ - - 森林AI + diff --git a/apps/web_v1/scripts/structure-check.mjs b/apps/web_v1/scripts/structure-check.mjs index 1a01c8a..b2a844e 100644 --- a/apps/web_v1/scripts/structure-check.mjs +++ b/apps/web_v1/scripts/structure-check.mjs @@ -48,6 +48,18 @@ const html = readFileSync('index.html', 'utf8') if (!html.includes('')) failures.push('index language must be zh-CN') if (!html.includes('森林AI')) failures.push('document title must be 森林AI') if (!existsSync('public/senlinai-icon.svg')) failures.push('missing public/senlinai-icon.svg') +if (!html.includes('href="/senlinai-icon.svg"')) failures.push('index must use senlinai-icon.svg as the canonical favicon') +if (existsSync('public/favicon.svg')) failures.push('legacy public/favicon.svg must be removed; senlinai-icon.svg is the only brand asset') +if (existsSync('public/senlinai-icon.svg')) { + const icon = readFileSync('public/senlinai-icon.svg', 'utf8') + if (icon.includes('