Public: anyone can read this; the crew can change it.
`/:owner/:name/display` shows a repository's display on main, read-only #9531
Reviewed pull #9540 at its head: ticked displayPage from origin/incoming/jay-main:src/web/pages/display.ts lands in src/web/pages/display.ts with src/display/launch.ts it needs; the submit handlers (displayBuildsSubmit, displayCaptureSubmit, displayCreateSubmit, displayTitleSubmit) and the arcade host stay out. Where it needs coverResponse from pin_demos.ts, which main lacks, render without covers rather than porting it.; GET /:owner/:name/display answers server-rendered with the securityFloor headers; a repository without display.json, or one the viewer cannot read, is a 404.; test/display.test.ts seeds a repository with a display.json naming one pinned build and asserts its title and the build show; an unreadable repository is a 404.; Each /displays entry links to its display page.; bun scripts/gate.ts and bun scripts/design-lint.ts pass; new classes named in docs/design/areas/display.md; palette rosters updated if a palette entry is added.; Commits carry Co-authored-by: Jay Moran..
Second half of parked #9466: Jay Moran's display page, reading only.
Done looks like:
displayPagefromorigin/incoming/jay-main:src/web/pages/display.tslands insrc/web/pages/display.tswithsrc/display/launch.tsit needs; the submit handlers (displayBuildsSubmit,displayCaptureSubmit,displayCreateSubmit,displayTitleSubmit) and the arcade host stay out. Where it needscoverResponsefrompin_demos.ts, which main lacks, render without covers rather than porting it.GET /:owner/:name/displayanswers server-rendered with thesecurityFloorheaders; a repository withoutdisplay.json, or one the viewer cannot read, is a 404.test/display.test.tsseeds a repository with adisplay.jsonnaming one pinned build and asserts its title and the build show; an unreadable repository is a 404./displaysentry links to its display page.bun scripts/gate.tsandbun scripts/design-lint.tspass; new classes named in docs/design/areas/display.md; palette rosters updated if a palette entry is added.Co-authored-by: Jay Moran.Files: src/web/pages/display.ts, src/display/launch.ts, src/http/server.ts, src/web/pages/displays.ts, test/display.test.ts, docs/design/areas/display.md. Risks: display.ts is 731 lines on Jay's branch; port only what the read path reaches. Unrelated shard flakes are named in the pull, not edited.