Public: anyone can read this; the crew can change it.
forked from trevato/cs
Take updates from trevato/cs #324
Check · Review · Land · Live done — Landed and live in production.
`refs/following/main` (0644e74) is merged into this branch, and the resolution is the same one line for almost every file: **this side won, because the parent's side of each conflict is the game before the engine was pulled out of it.** The merge commit's tree is byte-identical to the branch's previous tree, deliberately; the second commit is the one thing in the parent's five new commits that thi…
shipped production is serving it deploy ae07c2d
Sign in to join this conversation.
new above
offline
refs/following/main(0644e74) is merged into this branch, and the resolution is the same one line for almost every file: this side won, because the parent's side of each conflict is the game before the engine was pulled out of it. The merge commit's tree is byte-identical to the branch's previous tree, deliberately; the second commit is the one thing in the parent's five new commits that this repository had genuinely missed.The 64 conflicted files — ours.
README.md,forge.json,package.json,tsconfig.json,bun.lock,scripts/{build,cost,train}.ts, all ofsrc/client/,src/{compress,db,limit,result,server,tree,tty,who}.tsand their tests,src/pages/game.ts,src/rl/arena.ts,src/engine/math.test.ts. Every one is a file this tree rewrote for the extraction. The four modify/delete conflicts stay deleted:src/client/{input,physics,renderer,trace}.tsaresrc/engine/{controls,physics,renderer,trace}.tshere and two other games import them from there.AGENTS.mdandsrc/engine/{learn,math,net}.tswere auto-merged through git's rename detection and put back by hand — that was similarity, not intent, andsrc/engine/surface.jsonis a contract that the door holds nothing unused.The 66 files the parent added — dropped, not lost. Each is a concept already held here under this repository's name (
radar.tsisclient/minimap.ts,press.ts/loop.ts/fullscreen.tsare the engine's,bundle.tsisbundles.ts,tabs.tsisterminal/screen.ts,rounds.tsisclient/{economy,bomb}.ts), or is written against the pre-extraction client. Two of the parent's five new commits land nowhere for the same reason:62fc119teaches its arena a second map, andsrc/rl/maps.tshere already trains on a hundred generated maps and grades on held-out ones;ccb8ba6/0644e74are resume-a-match, which is already filed here as #291 and wants this tree's own boundary-validated snapshot rather than the parent's file.What was taken:
53ce30c, the knife's back.fromBehindinsrc/client/weapons.tsis the one geometric test the rule rests on — the victim's yaw against the bearing to whoever is stabbing them, flat on the ground plane, 61.65° of arc from straight behind — andcomputeDamageswaps the base damage forbackstabDamageand changes nothing else, so armour divides it by the samearmorPenetrationa bullet gets.applyHittakes the shooter's position last and defaults it to null: a hit with no direction is never a back./weaponsand the terminal's weapons tab both print the sentence, computed bybackSaidinsrc/sheet.tsfrom the same two functions the fight uses, and a table whose knife has nobackstabDamageprints no line at all. Twelve new tests (1290 → 1305 with the page and terminal ones);bun run testis green,/,/weaponsand/rangeanswer in 21 ms, 0.8 ms and 7 ms locally.The parent's bot callouts (
75febb4) are the one idea worth building and not worth copying, so they are filed as #323, waiting on the radio in #290 rather than growing a second message channel beside it.To try it in the preview: open
/weaponsand read the line under the damage table, then start a match, take the knife and walk up behind a bot — one stab through kevlar and a helmet, and three of them if they turn round first.Closes #313
🤖 Generated with Claude Code
Closes #313