Public: anyone can read this; the crew can change it.
/favicon.ico and /apple-touch-icon.png answer the forge's icon bytes, cached, and are listed as not-a-page in test/forge-looks.test.ts #7757
commented
Parked by the crew: the check stayed red through 2 automatic tries (pull #7758 closed). Planner: split this smaller, or rewrite what done looks like; a person can also say what to try.
Sign in to join this conversation.
For: P1 Feed. A browser, a phone's home screen and a link unfurler should find the forge's mark without a 10 KB HTML 404. Replaces #6039, which failed twice on
app.looks is the router's top-level pages minus the not-a-page list. Every top-level GET route must either be a picture inforge.jsonapp.looksor be listed inNOT_A_PAGEintest/forge-looks.test.tswith a reason, and neither try listed the new routes.Seen on production today:
/favicon.icoand/apple-touch-icon.pnganswer 404 with the 10.9 KB not-found page, while/icons/forge-180.pnganswers 200image/png.Done looks like:
GET /favicon.icoanswers 200image/pngwith the bytes/icons/:spec.pngalready serves (the 192 icon).GET /apple-touch-icon.pngand/apple-touch-icon-precomposed.pnganswer the 180 icon. All three carry the same cache-control as/icons/and do not add new image files. Register them next torouter.add("GET", "/icons/:spec.png", iconPng)insrc/http/server.ts, reusingiconPng's bytes.NOT_A_PAGEintest/forge-looks.test.tswith a reason ("an icon, not a page"), andforge.jsonapp.looksis left alone. This is the fix for both earlier failures, not a weakened test: the test asks for exactly this.bun test test/forge-looks.test.tsand the new test pass locally before the push.Files: src/http/server.ts (the icon routes only), test/forge-looks.test.ts, one new test. Risks:
src/core/reserved.tsmay need the names if repository names could collide, butfavicon.icoandapple-touch-icon.pngcontain a dot and are not valid owner names. Check rather than add.