Files
open-wc/coordination/claims/M03-RND-WMO-RUNTIME-SCENE-PREPARER-001.md
sindoring f8348cf0cb targets: accept WMO runtime scene preparer
Work-Package: M03-RND-WMO-RUNTIME-SCENE-PREPARER-001
Agent: sindo-main-codex
Tests: post-merge WMO/facade/internal-access/manifest/docs/coordination smoke passed
Fidelity: cached/live, occluder and shadow behavior preserved; asset-backed evidence pending
2026-08-01 10:38:59 +04:00

3.9 KiB

M03-RND-WMO-RUNTIME-SCENE-PREPARER-001

Owner

  • Agent ID: sindo-main-codex
  • Target: M03 Renderer Facade and Safe Extraction
  • Branch: work/sindo-main-codex/m03-wmo-runtime-scene-preparer
  • Worktree: C:\Users\sindo\open-wc-worktrees\m03-wmo-runtime-scene-preparer

Outcome

Move cached/live WMO subtree preparation—recursive Mesh finalization, direct Occluders-child policy and recursive shadow enabling—from the loader into one stateless main-thread service.

Non-goals

  • Change scene/prototype loading, validation, placement or attachment.
  • Change WMO material refresh rules, cache versions or builder behavior.
  • Change occlusion/shadow defaults or add visibility/portal behavior.
  • Change queue, scheduler, ownership or shutdown lifecycle.

Paths

  • Exclusive: src/render/wmo/wmo_runtime_scene_preparer.gd, src/tools/verify_wmo_runtime_scene_preparer.gd, docs/modules/wmo-runtime-scene-preparer.md, this claim
  • Shared: loader, renderer module registry/specification, RENDER.md, M03 Evidence

Contracts and data

  • Cached preparation finalizes every MeshInstance3D Mesh and non-null MultiMeshInstance3D Mesh in depth-first traversal order.
  • Live preparation does not cross the runtime Mesh finalizer boundary.
  • Disabled occlusion removes only the direct child named Occluders and queues it for deletion; enabled occlusion retains it.
  • Enabled shadows recursively set every GeometryInstance3D to ON; disabled shadows preserve existing per-node values.
  • The service borrows the subtree and retains no Node or Resource.

Dependencies

  • Requires: accepted WMO runtime Mesh finalizer
  • Blocks: remaining loader-owned WMO scene/prototype orchestration cleanup

Verification

  • Synthetic cached/live traversal, exact resource/order, occluder, shadow, invalid-input, ownership, source and bounded-timing contracts; adjacent WMO, renderer, documentation and coordination gates; checkpoint dry-run.

Documentation deliverables

  • Inline API docs; module API/I/O/ownership; data-flow/sequence/dependency diagrams; adjacent renderer docs and M03 Evidence.

Status

  • State: ready
  • Done: implementation, verification and documentation
  • Next: integrator review and merge
  • Blocked by:

Handoff

  • Commit: ffed91c (render: extract WMO runtime scene preparer)
  • Results: preparer PASS cases=31 iterations=1000 elapsed_ms=3.669; updated Mesh-finalizer boundary PASS cases=28 iterations=1000 elapsed_ms=0.204; headless suite 64/65 with no unexpected failures and only the proprietary ADT placement probe unavailable without data/extracted; editor parse had zero script diagnostics; checkpoint dry-run retained 7/7; documentation passed with 51 module specifications; coordination passed with 77 historical expired-claim warnings.
  • Fidelity: cached/live preparation distinction, exact Mesh traversal order, direct Occluders lookup/removal and enabled/preserved shadow semantics are unchanged. No private-asset or original-client parity claim is added.
  • Remaining risks: recursive Resource/SceneTree mutation remains synchronous; no asset-backed WMO portal/room, visual, leak/GPU or p95/p99 evidence.
  • Documentation: new full module specification with API/I/O and data-flow, sequence/dependency diagrams; Mesh-finalizer ownership spec, renderer registry, world-renderer source map and RENDER.md updated.
  • Merge: 57d0a9f (merge: WMO runtime scene preparer)
  • Post-merge: preparer PASS cases=31 iterations=1000 elapsed_ms=3.486; Mesh finalizer cases=28/0.199ms; all nine adjacent WMO services, shutdown, materials, facade, internal-access 30, manifest 7/7, documentation 51 and coordination passed.