Files
open-wc/coordination/claims/M03-RND-WMO-RENDER-BUILD-PLANNER-001.md
T

4.3 KiB

M03-RND-WMO-RENDER-BUILD-PLANNER-001 — WMO render build step planner

Ownership

  • Target: M03
  • Program: RND
  • Owner/Agent ID: sindo-main-codex
  • Branch: work/sindo-main-codex/m03-wmo-render-build-planner
  • Lease expires UTC: 2026-07-20
  • Integrator: M03 milestone integrator

Outcome

Extract the pure one-operation WMO render build cursor decision from the loader while preserving mesh-before-MultiMesh ordering and one budget permit per group.

Non-goals

  • Move Nodes, Resources, materials, jobs, queues, cancellation or permits.
  • Change WMO placement, cache loading, transforms, visibility or shadows.
  • Change build ordering, group names, editor ownership or finalization thread.
  • Change cache formats, settings, presets or renderer diagnostics.
  • Claim asset-backed WMO fidelity or p95/p99 acceptance.

Paths

  • Exclusive: src/render/wmo/wmo_render_build_step_planner.gd, src/tools/verify_wmo_render_build_step_planner.gd, docs/modules/wmo-render-build-step-planner.md, this claim
  • Shared/hotspots: src/scenes/streaming/streaming_world_loader.gd, docs/modules/world-renderer.md, docs/modules/README.md, RENDER.md, targets/03-renderer-facade.md
  • Generated/ignored: .godot, native DLL, generated ADT/WMO resources, caches and proprietary renderer corpus

Contracts and data

  • Input: mesh count/index and MultiMesh count/index
  • Output: mesh, multimesh or complete operation, selected index and next cursor values
  • Mesh is selected while its cursor is below count; MultiMesh is selected only after mesh exhaustion; complete follows both exhausted ranges
  • Loader retains cursor adoption, Resource array access, Node creation, material refresh, ownership, queue cancellation and budget permit consumption
  • Cache/schema/coordinate/profile versions: unchanged

Dependencies

  • Requires: current master 1e73e59, accepted WMO placement registry/resolver
  • Blocks: further WMO render build state decomposition
  • External state: none; verification uses scalar synthetic fixtures

Verification

  • Commands: dedicated ordering/cursor/empty/raw-edge/source/timing verifier; WMO registry/resolver/material/shutdown plus M2/terrain/facade/internal-access/ manifest/scheduler/streaming/coordinate/docs/coord gates
  • Fidelity evidence: exact mesh-first, one-step cursor behavior preserved
  • Performance budget: 20,000 pure plans under 1 second; no Node, Resource, RID, task, queue, mutex, cache or file access

Documentation deliverables

  • Inline public planner API documentation
  • New module spec with inputs/outputs, data flow, sequence, ownership, failure/recovery, performance/fidelity limits and source map
  • Renderer module registry, world renderer and RENDER.md updates

Simplicity and naming

  • Important name: WmoRenderBuildStepPlanner
  • Simplest solution: one stateless function and three operation constants
  • Rejected complexity: job class, iterator, generic cursor framework, callbacks, signals or ownership of engine objects
  • Unavoidable complexity: loader still has separate mesh/MultiMesh materializers
  • Measured optimization evidence: bounded synthetic planning loop

Status

  • State: ready for integration
  • Done: planner and loader adapter implemented; Node/Resource/material/job/queue/ permit ownership retained in loader; regressions, dry-run and docs passed
  • Next: integrator merge and post-merge verification
  • Blocked by:

Handoff

  • Commit: 3a6b1d3
  • Results: dedicated planner PASS (cases=9, iterations=20000, elapsed_ms=11.914); WMO registry/resolver/material/shutdown and 18 adjacent M2/terrain/facade/scheduler/streaming/coordinate regressions PASS; documentation and coordination gates PASS; checkpoint dry-run PASS 7/7.
  • Remaining risks: no proprietary WMO corpus, original-client paired capture or traversal p95/p99; dry-run reports expected missing ADT/DBC/character assets; WMO Resource arrays and untyped build jobs/queues remain loader-owned.
  • Documentation updated: inline planner API; docs/modules/wmo-render-build-step-planner.md, module registry, docs/modules/world-renderer.md, RENDER.md with data-flow and sequence diagrams, ownership, failure/recovery and source map.