0.1.3 packaging and setup fixes from what 0.1.x actually exposed.
- New Tools/ue_common.py: make_writable() clears the read-only bit an LFS .umap
checks out with (save_map() otherwise returns False silently and the staged actor
is lost) and require_saved() makes that failure visible. ue_hero_facade_import and
ue_import_north_buildings now call it; the map builders already did. Verified from
a forced 0o444 map: chmod logged, save_map True, exit 0.
- Docs/build.md: pipeline table now lists the seven site FBXs plus frontage, north,
hero and map steps and the shared FBX preset; packaging archive corrected to
Builds/GigLineQA; packaged-log location and -qaselftest usage documented; new
'Traps that cost real time in 0.1.x' table (read-only save, hero --out is the FBX,
MPFB add-on path, shot actor quitting under QA, null-RHI trace trap).
- Docs/setup.md: fresh-checkout build marked verified 2026-11-08 and the blocker
closed; new optional-keys section for OPENROUTER_API_KEY and MAPBOX_ACCESS_TOKEN
(gitignored .env, not needed by build/tests/release).
- Docs/Architecture 07 + architecture.md: build-output path corrected, marked
outside the repository.
- 5 new tests for ue_common (54 total).
- TCL Chinese Theatre (6925) and Madame Tussaud's (6933) exported from the
verified OSM blockout with ue_metric_v1 (export_north_buildings.py), with a
Y-mirror so they land north of the road, across from the hero facade.
- ue_import_north_buildings.py imports + stages them in the DemoMap as
North_TCL_Chinese / North_Madame_Tussauds (TCL Y 1802..9431, Tussaud's
1888..7586; hero at Y -1450, road centreline ~0).
- render_screenshots.sh now also runs the DemoMap capture pass; added a
demo-north-buildings camera, so the new buildings get a review shot.
- README/roadmap updated; flat facade materials pending the 0.1.4 patch.