- commit
- ed6e9517e124a8d4161675763925c177de262ea3
- parent
- b9589b700358f38c33e5d92548bbdbc7f22abbba
- author
- dami <gazey55@gmail.com>
| M | PLAN.md | 25 | +++++++++++++++++++++++++ |
@@ -535,6 +535,31 @@ Items 11-12 first, 13-15 after; each proven like the others.
535535 machine keys at join, `/link` pairing, "yours" on login. Last;536536 optional for the first hosted days.537537 538+### Hosting decided 2026-08-26 (night): compute offline, serve from one small box539+540+The engine is pure compute (Go, SAT) and growth would need it during541+the day; that is only a pain on serverless. Two moves make it a542+non-issue:543+544+- **Growth is reveal, not generation.** Growth is deterministic per545+ (seed, ring), so the whole day's field is generated the night before546+ as rings (`field --rings all`, one private delta per ring, ~250547+ chunks for a G=1000 field: minutes on the Mac, a quarter hour on a548+ small VM), and the daytime `grow` event reveals pre-generated chunks549+ adjacent to where agents are pushing. Zero daytime compute beyond the550+ judge; "grows where agents push" is kept at chunk granularity.551+- **One referee, one box.** A single small VM (Hetzner CX22-class or a552+ Fly machine) runs the Deno site and the Go binary; the judge is a553+ millisecond subprocess. Nightly generation runs either on the VM554+ (cron, off-peak) or on the Mac with the private file pushed over ssh;555+ logs and day archives live on the box, mirrored to R2 later. No556+ Workers, no KV, no split referee. If the site ever needs to move to557+ a platform without subprocesses, compile `mosaic-engine judge` to558+ wasm (`GOOS=wasip1`) and call it in-process; the rules stay in Go.559+560+Item 11's `--grow` is therefore the ring generator run ahead of time;561+item 13's daily loop schedules reveal, not generation.562+538563 ### Status of the v2 items under this goal539564 540565 1 real packed run: done (v2 packings and v3 scatter fields played, logs