The retail frame walk's world model now materializes from production
landblock-build owners through the legal IDatReaderWriter seam, with
zero frame wiring (FW3.2 roots the frame):
- WalkCellFactory: WalkCell built in the SAME pass as LoadedCell
(EnvCellLandblockBuild.BuildVisibilityCell) from the raw portal
Flags/polygons/planes/stab lists already parsed there; stored as
LoadedCell.Walk, committed atomically with the cell. The
fixture-pinned decodes (inverse-0x2 portal side, 0xFFFF->0xFFFFFFFF
exit widening) live here.
- WalkBuildingFactory + WalkBuildingRegistry: the production
WalkBuilding build (drawing BSP with PORT nodes, degrade ladder,
portal sides/stab lists, sort center, model frame) from the SAME
LandBlockInfo the streaming build already fetches, under the
factory's existing DAT lock - closing the gap where BuildingLoader
drops every walk field at load.
- WalkLandscapeAssembler: the retail 51x51 viewer-centred grid
(mid_radius 25) fed incrementally from landblock publish/retire;
per-block z-slab (heightTable[max]+200 / [min]-1) computed
worker-side in LandblockBuildFactory from the heights already in
hand. O(1) SetViewer on same-block frames.
- WalkProductionFrameContext: the walk's frame contexts over
CellVisibility + WalkBuildingRegistry with a generic
inverse-view-projection ray caster (rays feed cross products only -
scale-free) and the znear=0.1 CY plane.
- Publication: LandblockRenderPublisher owns both walk registries,
publishing in the same AdvanceCompleteOne step as BuildingRegistry
and retiring in RemoveBuildingRegistry - same commit, same
retirement, no new ticket stage.
Conformance: ALL TEN oracle fixtures replay identically through the
PRODUCTION builders (WalkProductionWorldConformanceTests) - same
signatures as the test adapter, first run. Known gap documented for
FW3.2: far-tier landblocks carry no EnvCell transaction, so their
z-slab never reaches the assembler.
Suites: full Release build 0 warnings; Walk lane 186/1 skip;
hermetic 6,738/0 (+24); RuntimeDatAccessArchitectureTests green.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Publish prepared GfxObj, Setup, CellStruct, and EnvCell collision records without retaining their parsed DAT BSP, polygon, vertex, or shape graphs. Strip temporary physics bundles at stable world commit, keep graph traversal only as an explicit test/tooling oracle, and report graph residency from actual retained fields.
Validated by 115 focused collision/streaming tests, a zero-warning Release build, and 8,413 passing Release tests with five pre-existing skips.
Co-authored-by: Codex <codex@openai.com>
Carry one immutable prepared collision closure with each accepted near-tier generation and install graph plus flat views through the same retained publication receipt. Apply the same strict package-only rule to live entities, add exact sampled graph-authoritative comparison artifacts and lifecycle counters, and prove cancellation, demotion, rehydrate, revisit, teardown, reconnect, and the nine-stop route with 14,064 zero-mismatch samples.
Co-authored-by: OpenAI Codex <codex@openai.com>