From e0ead6698b8bbe85f7cab46b53ead77d4fc36d85 Mon Sep 17 00:00:00 2001 From: m3ultra Date: Tue, 28 Jul 2026 23:19:54 +1000 Subject: [PATCH] Handover: wave 2 Co-Authored-By: Claude Opus 5 --- LANEHANDOVER.md | 51 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/LANEHANDOVER.md b/LANEHANDOVER.md index cc1f2d7..008e2ef 100644 --- a/LANEHANDOVER.md +++ b/LANEHANDOVER.md @@ -2243,3 +2243,54 @@ needs real wall-clock time, not more `loop.step` calls. still the only patron-art path that does not blind the dress-code game. - Cloudflare's neurons reset daily; a batch started after 00:00 UTC gets ~150 free images before it ever touches the farm. + +## SESSION — FABLE-SOLO-26b · 2026-07-28 (wave 2, same session) + +**Branch:** main · **Gate:** lint ✓ build ✓ test ✓ (821 tests) · **Deployed** + verified. +John: "if cloudflare is used up we have local FLUX anyway go for it." + +### The bug worth the whole wave +`bakeTiles` baked to a single global `'floor:tiles'` and early-returned if that +key existed. **Textures outlive a scene**, so the first venue you played baked the +floor for every venue after it: survive a week at The Royal, get promoted, walk +into Voltage and still be standing on the pub's carpet. It cannot show in a dev +route (those reload the page) and only appears **on promotion** — precisely the +moment the venue ladder is supposed to pay off. Baked texture is now keyed +`floor:tiles:`. Verified by switching venues inside ONE session and +watching the concrete arrive. + +### Materials (`FloorLayout.materials`) +Ten generated plates — carpet, concrete, deck, parquet, looTile, paving, plaster, +brick, timber, steel — stamped one per tile via a RenderTexture and **tinted to +the palette colour**. The tint is the load-bearing part: an untinted photo-real +plate blows straight past the brightness band the room was tuned in, and darkness +is the mechanic. Plates are 16×16 (the game's tile) because at that size "carpet" +is structured noise, which is what pub carpet looks like from head height anyway. +Unlisted kinds, or art that has not landed, fall back to flat colour as before. + +### Filled the two rooms the review called empty +The Royal's central carpet (was four props across ~500 tiles) and ROOM's east +hall (~23% of its interior, **zero lights**, three props — now two low sodium +spills and the gear a warehouse party actually stores there). Plus the kit every +real venue has and no game venue does — extinguishers, exit signs, CCTV, bins, +notice board, ceiling fans — across all four rooms. Voltage got the same pass; +being the reference room is how it quietly missed the first one. + +### Totals +**112 sprites.** 91 prop kinds + 10 materials placed across four venues, **none +missing art**. 26/26 this wave, no failures. + +### Two smaller things +- The duplicate-prop-id invariant caught an id I introduced while placing filler. + Working as intended. +- Relaxed one ROOM assertion that keyed on ARRAY ORDER — it checked the *first* + sodium light stands over the loading dock, which broke the moment the east hall + legitimately burned the same colour. Now checks that *one of them* does. Worth + noting as a test-writing smell: assert the property, not the ordering. + +### Still open (unchanged from FABLE-SOLO-26) +- ROOM's barkeep stands in a one-tile service lane; the player walks through him. +- Patron art still wants the body-frames-under-outfits path (ASSETS.md §2). +- Cloudflare's 10k neurons reset 00:00 UTC — a batch started after that gets + ~150 free images before it ever touches the farm. Both waves today ran entirely + on MODELBEAST because the allocation was already spent.