docs: make PLAN.md true — header, the garden claim, and a baker that no longer exists#4
Conversation
…hat no longer exists
The ✅ markers written into PLAN's body are accurate and unusually candid. The
prose around them is not. Nothing here changes behaviour.
Header said "plan not yet started". Most of it has shipped. It now states what is
actually left: F2, F3, G, H, I, K1, K2.
"This directory is not a git repository" — false. It is, with history, and as of
today it is pushed. For a while the REVERSE hazard applied and nobody could see
it: prefab authoring, play-in-editor and terrain painting sat committed on one
machine's local main. If a PLAN item says "done", check it is PUSHED.
§1.4 called garden "the only game using the runtime loadWorld/instantiateWorld
path". Garden references NEITHER, nor bloom/world, nor any .world.json — it
predates the world module. `instantiateWorld` has ZERO game consumers: only the
editor and the engine's own modules. That is not a nitpick — §C1's acceptance
("garden instantiating a world with water/rivers shows them") was never
executable, so the "a river cannot look different in-game than in the editor"
guarantee is UNTESTED.
§1.4 runtime path, §K2 and §F1's acceptance all targeted `tools/build-world.ts`.
That baker and `src/generated/` are DELETED — the shooter loads world JSON at
runtime, exactly as §1.6 predicted once the Perry bugs were fixed. So editing a
world needs NO rebake and K2 had nothing to hook. K2 is rescoped to the one thing
still derived: the terrain VISUAL MESH (bun tools/build-terrain.ts), and only when
the heightmap changed. Terrain paint needs no rebake either.
§K1: the test that exists is worse than no test, and now says so in both places.
testWorldRoundTrip round-trips a SYNTHETIC world with JSON.stringify — it never
calls saveWorld, and JSON.stringify is the very idiom quirk #6 says corrupts a
parsed graph: the bug that made saveWorld write 0 bytes and report OK. It passes
by construction, over the exact hole.
Claude-Session: https://claude.ai/code/session_01J1UWgMcrTNvwWeXcJ1T3Fp
|
Warning Review limit reached
Next review available in: 51 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
The ✅ markers written into PLAN's body are accurate and unusually candid. The
prose around them is not. Docs + one test comment; no behaviour change.
loadWorld/instantiateWorld"bloom/world, nor any.world.jsontools/build-world.tssrc/generated/are deleted — the world loads at runtimeThe garden correction isn't a nitpick
instantiateWorldhas zero game consumers — only the editor and the engine'sown modules. So §C1's acceptance ("garden instantiating a world with water/rivers
shows them") was never executable, and the "a river cannot look different
in-game than in the editor" guarantee is untested.
K2's premise was void
It targeted a baker that no longer exists, so editing a world needs no rebake
and there was nothing to hook. Rescoped to the one thing still derived — the
terrain visual mesh, and only when the heightmap changed. Terrain paint
needs no rebake either.
§K1 — the test that exists is worse than no test
testWorldRoundTripround-trips a synthetic world withJSON.stringify. Itnever calls
saveWorld, andJSON.stringifyis the very idiom quirk #6 sayscorrupts a parsed graph — the bug that made
saveWorldwrite 0 bytes andreport OK. It passes by construction, sitting as a green tick over the exact
hole. Now flagged in the PLAN and at the test itself, where someone will
actually read it.
Also worth knowing
The "not a git repository" line had a reverse hazard nobody could see: prefab
authoring, play-in-editor and terrain painting sat committed on one machine's
local
mainuntil today (#3). If a PLAN item says "done", check it's pushed.Editor compiles clean.
https://claude.ai/code/session_01J1UWgMcrTNvwWeXcJ1T3Fp