diff --git a/apps/web/index.html b/apps/web/index.html
index ae09cf8269..a14de72d40 100644
--- a/apps/web/index.html
+++ b/apps/web/index.html
@@ -4,7 +4,6 @@
-
DeepSeek Harness
diff --git a/apps/web/public/favicon-32x32.png b/apps/web/public/favicon-32x32.png
deleted file mode 100644
index 0a413e19e3..0000000000
Binary files a/apps/web/public/favicon-32x32.png and /dev/null differ
diff --git a/apps/web/public/manifest.webmanifest b/apps/web/public/manifest.webmanifest
index b2c9271fca..20a428fee6 100644
--- a/apps/web/public/manifest.webmanifest
+++ b/apps/web/public/manifest.webmanifest
@@ -6,12 +6,6 @@
"scope": "/",
"display": "fullscreen",
"icons": [
- {
- "src": "/favicon-32x32.png",
- "sizes": "32x32",
- "type": "image/png",
- "purpose": "any"
- },
{
"src": "/favicon.svg",
"sizes": "any",
diff --git a/apps/web/tests/pwa-manifest.e2e.ts b/apps/web/tests/pwa-manifest.e2e.ts
index fb729e6f5d..fe97e42da9 100644
--- a/apps/web/tests/pwa-manifest.e2e.ts
+++ b/apps/web/tests/pwa-manifest.e2e.ts
@@ -5,17 +5,9 @@ import { expect, it } from 'vitest'
const DIST_ROOT = fileURLToPath(new URL('../dist', import.meta.url))
-/** PNG signature per the PNG specification. */
-const PNG_SIGNATURE = [0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]
-
it('ships install metadata with the built web application', async () => {
const index = await readFile(join(DIST_ROOT, 'index.html'), 'utf8')
expect(index).toContain('')
- expect(index).toContain('')
- // The SVG must stay declared after the PNG: the HTML spec selects the last
- // equally appropriate icon, so SVG-capable browsers get the adaptive SVG
- // while Safari versions before 26 fall back to the PNG.
- expect(index.indexOf('/favicon-32x32.png')).toBeLessThan(index.indexOf('/favicon.svg'))
const manifest: unknown = JSON.parse(await readFile(join(DIST_ROOT, 'manifest.webmanifest'), 'utf8'))
expect(manifest).toEqual({
@@ -25,31 +17,15 @@ it('ships install metadata with the built web application', async () => {
start_url: '/',
scope: '/',
display: 'fullscreen',
- icons: [
- {
- src: '/favicon-32x32.png',
- sizes: '32x32',
- type: 'image/png',
- purpose: 'any',
- },
- {
- src: '/favicon.svg',
- sizes: 'any',
- type: 'image/svg+xml',
- purpose: 'any',
- },
- ],
+ icons: [{
+ src: '/favicon.svg',
+ sizes: 'any',
+ type: 'image/svg+xml',
+ purpose: 'any',
+ }],
})
})
-it('ships the PNG fallback as a valid non-empty 32x32 image', async () => {
- const png = await readFile(join(DIST_ROOT, 'favicon-32x32.png'))
- expect([...png.subarray(0, 8)]).toEqual(PNG_SIGNATURE)
- expect(png.readUInt32BE(16)).toBe(32)
- expect(png.readUInt32BE(20)).toBe(32)
- expect(png.length).toBeGreaterThan(0)
-})
-
it('ships a favicon that switches to a light mark under dark color scheme', async () => {
const favicon = await readFile(join(DIST_ROOT, 'favicon.svg'), 'utf8')
// The light fill must live inside the dark-scheme media query, so the icon