Intent: a browser tab shows the forge's mark. Today production's / head has apple-touch-icon and the manifest but no <link rel="icon"> (it went in the design-system rebuild, 62a24d84).
/favicon.ico and /apple-touch-icon.png are #7757's, which has an open pull: do not add or touch those routes here.
Done:
[ ] src/web/layout.ts head carries <link rel="icon" type="image/png" sizes="32x32" href="/icons/forge-32.png" /> on every page
[ ] src/web/standards.tsSIZES includes 32 (shape icon), so /icons/forge-32.png answers 200 image/png with the existing immutable cache header
[ ] a test asserts both: a rendered page's head carries the icon link, and /icons/forge-32.png is 200 image/png
Files: src/web/layout.ts, src/web/standards.ts, a test beside them.
Risk: small; the /icons/:spec.png route already exists, so test/forge-looks.test.ts needs nothing.
Intent: a browser tab shows the forge's mark. Today production's
/head hasapple-touch-iconand the manifest but no<link rel="icon">(it went in the design-system rebuild, 62a24d84)./favicon.icoand/apple-touch-icon.pngare #7757's, which has an open pull: do not add or touch those routes here.Done:
src/web/layout.tshead carries<link rel="icon" type="image/png" sizes="32x32" href="/icons/forge-32.png" />on every pagesrc/web/standards.tsSIZESincludes 32 (shapeicon), so/icons/forge-32.pnganswers 200image/pngwith the existing immutable cache header/icons/forge-32.pngis 200 image/pngFiles: src/web/layout.ts, src/web/standards.ts, a test beside them. Risk: small; the
/icons/:spec.pngroute already exists, sotest/forge-looks.test.tsneeds nothing.