Ship the browser smash toy publicly and document it. Deploy: web/ is live at https://digalot.fyi/destroy/ — served on the dealgod VPS like thriftgod (an nginx:alpine static container on dealgod_default + a /destroy/ location in the shared reverse proxy). README.md now carries the exact deploy/update steps + a full rollback runbook. No app code changed. 3GOD hardening (LANE5 deliverable B) was found ALREADY DONE on the live instance and verified — not re-changed: - GOD3_OPEN is off: unauthenticated write via Cloudflare → 403; GET /api/list → authed:false. - SSRF plugged: POST /api/fetch with file:///etc/hostname and http://169.254.169.254/ → rejected ("only public http(s) URLs allowed"), nothing written. - Reads stay public (CF GET 200 + CORS *); trusted tailnet peers still push passwordless via the TS_ALLOW IP allowlist (this session's meshgod pushes used that path). Verified public: /destroy/ 200 over CF, JS as application/javascript, props (intact + fractured) load from /3god/a/* with CORS *, printer boss shatters into 16 GLB chunks, no console errors. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|---|---|---|
| game | ||
| LANES | ||
| web | ||
| .gitignore | ||
| destroyulater.txt | ||
| README.md | ||
DESTROYULATOR
Clock out. Smash everything.
A comedic, non-violent, first-person workplace-destruction game from Monster Robot Party. Level 01 is our actual record store. Nobody gets hurt but the furniture.
Monorepo layout — one lane per directory
| Dir | Lane | What |
|---|---|---|
game/ |
Lane 1 — the game | Godot 4.7 (Jolt physics, Mac-native). The shippable build. |
web/ |
Lane 3 — web toy | Three.js dig-and-destroy demo (planned; thriftgod-adjacent). |
LANES/ |
coordination | Execution specs for parallel Claude/Opus work sessions. |
3D-STORE/ |
not in git | 700MB Blender/Unreal source-asset vault (see .gitignore). |
destroyulater.txt |
lore | The founding chat where the idea happened. |
Asset generation lives in its own repo: ~/Documents/meshgod (text→GLB factory).
Rules for parallel work sessions
- A lane session writes ONLY inside its own directory. Cross-lane contracts
(asset formats, file drops) are specified in
LANES/*.md. - Every change to
game/must pass the headless smoke test before commit:Godot --headless --path game --quit-after 180with zero script errors. - GLB convention everywhere: glTF Y-up, 1 unit = 1 m, origin at floor-center.