Level lakes at the end of world generation, keeping their water (t96)

Volume-preserving levelling pass for water bodies of 50+ cells; the dock foundation is placed
first so it cannot erase levelled water. Seed hashes re-baselined (water and air only).
Started by Codex, finished and reviewed by Claude after Codex hit its usage limit.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-29 19:28:23 -04:00
co-authored by Claude Opus 5.5
parent 75d4e8ee4e
commit ae78756fa2
10 changed files with 227 additions and 50 deletions
+20
View File
@@ -4,6 +4,26 @@ What agents have done, newest first. Add an entry for every piece of work: the d
note or request it was for, what changed, the files touched, the tests run, and anything left
open or not verified. Keep each entry short; the git history has the details.
## 2026-10-29: t96 round 2 — level lakes during generation (Codex)
- Level 50+ grain water bodies with typed-array flood fills, exact volume and centered partial
rows; keep settling switches, startup wakes and tree rules. Establish the existing dock
foundation first (otherwise seed 42 loses 39 grains). Recorded the owner's changed-seed decision.
- Files: src/sim/worldgen{,-helpers}.js, test/t_lakes.{js,py}, test/t_corner_seal.js,
docs/{DESIGN,TESTING,PROJECT_MAP}.md, tasks/t96* and this log.
- Eight regressions failed first; all 40 headless suites pass (59 lake checks). Six world hashes
re-baselined only for WATER/EMPTY redistribution; bypassing the pass restores all six originals.
Pixel browser fresh/reload seed 7 at 600 ticks passes with two helpers and no page errors.
Inspected shots/t96-level.png: flat lake, centered one-grain top row, dry bank trees, dock at right.
- Paired generation medians before→after (ms), seeds 7/42/424242: 871.09→903.88,
921.47→981.33, 1067.50→1119.16. Pass medians 13.67/22.17/15.27 ms; max 24.05
measured / 41.22 cold. Evidence: /tmp/t96-round2-{red,headless-final,browser,paired-times}.log.
Review pending; no full browser suite, no commit.
- Claude finished the run after Codex hit its usage limit: registered test/t_lakes.py in run_all.py's
browser list; full `run_all.py --browser` passed except the known flaky t_smooth.py (t99), which
passed 3/3 reruns. Found that 4 of 12 seeds' levelled lakes now reach the trade dock's wall
(none enter it); cause is the lake lip using the highest rim point (see t96).
## 2026-10-29: t69 hot-load warning, visible damage and build-over repair (Codex)
- Added persistent scorched/fractured screw overlays in both looks, 900°C load warnings,