Public: anyone can read this; the crew can change it.
forked from trevato/cs
Take updates from trevato/cs #384
Check · Review · Land · Live done — Landed and live in production.
This merges trevato/cs `main` (894d4f6, staged at `refs/following/main`) in two commits. `bun run test` passes: typecheck plus 1562 tests. The app boots, `/` answers 200, and the response carries both new headers.
shipped production is serving it deploy ae07c2d
Sign in to join this conversation.
new above
offline
This merges trevato/cs
main(894d4f6, staged atrefs/following/main) in two commits.bun run testpasses: typecheck plus 1562 tests. The app boots,/answers 200, and the response carries both new headers.8bad3d9): every conflicted file keeps this repository's version, so the merged tree matches the branch's previous tree exactly.The conflict list is long because each earlier take was squashed into one commit. That leaves upstream 0644e74 as the merge base, so git replays everything since then. Only #232 is new.
Per file:
README.md,src/client/{bots,hud,main,motion,report,weapons,world}.tsand their tests,src/db.ts,src/db.test.ts,src/pages/game.ts,src/pages/game.test.tsandsrc/rl/arena.test.ts. Upstream's text in these files dates from before the engine was pulled out. This repository already has upstream's #188–#231 in its own form (#367, #371, #375, #379, #381).README.mdthen gets the #232 port below.src/client/{bodies,earshot,input,physics,plan,renderer,settings}.ts, their tests andsrc/readme.test.ts: they stay deleted. Their work lives insrc/engine/(controls,renderer,physics) and insrc/plan/, as #313 and #381 decided.src/client/zoom.tsandzoom.test.tsstay out.look.tsalready handles scoped sensitivity, as #379 and #381 found. Upstream's auto-merged additions tosrc/client/match.tsandsrc/rl/arena.tsare dropped for the same reason #381 gave: this repository has no settings store for them to serve.src/server.tsandsrc/server.test.ts: this side's text, with #232 ported in.-
floorWithaddscross-origin-opener-policy: same-originandcross-origin-resource-policy: same-origin, so every route, error and the 101 room upgrade carries them. - TheFLOORlist the tests compare against includes both headers, and the 101 upgrade test checks them. - Upstream's every-response test is rewritten for this server. It covers each game page, the bundle, a match post, 404, cross-site 403, 413, 429 and a 500 fromonError. - With either header removed, the new test and the 101 test fail. - The new test sits right after the existing rate-limit test, not where upstream put it. Its flood of posts pushes the "ghost" row out of the recent-matches list that the abandoned-match test reads, so it has to run after that test. No existing test was changed.README.md: thesrc/server.tsentry now spells out the whole security floor, including the two new headers.To try it in the preview, open any page, the bundle or a JSON endpoint in dev tools: each response shows
Cross-Origin-Opener-Policy: same-originandCross-Origin-Resource-Policy: same-origin.Closes #382
🤖 Generated with Claude Code
Closes #382