Files
open-wc/coordination/claims/M03-RND-M2-MESH-RESOURCE-CACHE-001.md
T
sindoring e990a6503d refactor(M03): extract M2 mesh resource cache state
Work-Package: M03-RND-M2-MESH-RESOURCE-CACHE-001
Agent: sindo-main-codex
Tests: 35 headless renderer/coordinate contracts pass; checkpoint dry-run 7/7; documentation and coordination gates pass
Fidelity: preserves exact Mesh references, replacement semantics and final-shutdown lifetime; no visual parity claim
2026-07-17 12:10:37 +04:00

3.3 KiB

M03-RND-M2-MESH-RESOURCE-CACHE-001 — M2 mesh resource cache state

Ownership

  • Target: M03
  • Program: RND
  • Owner/Agent ID: sindo-main-codex
  • Branch: work/sindo-main-codex/m03-m2-mesh-resource-cache
  • Lease expires UTC: 2026-07-20
  • Integrator: M03 milestone integrator

Outcome

Extract the normalized-path to static M2 Mesh resource cache from StreamingWorldLoader, preserving lookup, replacement, shutdown lifetime and all existing cache consumers.

Non-goals

  • Own the shared M2 missing-path cache or animated/prototype node caches.
  • Call ResourceLoader, extract Meshes from Resources or select cache paths.
  • Prepare, rebuild or materialize M2 Meshes.
  • Change cache formats, material refresh, animation or visible behavior.

Paths

  • Exclusive: src/render/m2/m2_mesh_resource_cache_state.gd, src/tools/verify_m2_mesh_resource_cache_state.gd, docs/modules/m2-mesh-resource-cache-state.md, this claim
  • Shared/hotspots: src/scenes/streaming/streaming_world_loader.gd, src/tools/verify_m2_mesh_load_pipeline_state.gd, src/tools/verify_render_runtime_cache_shutdown.gd, docs/modules/world-renderer.md, docs/modules/README.md, RENDER.md, targets/03-renderer-facade.md
  • Generated/ignored: .godot, native DLL, generated M2 resources, caches and proprietary renderer corpus

Contracts and data

  • Non-empty normalized M2 paths map to at most one Mesh resource reference.
  • Store replaces the previous reference for the same path.
  • Lookup returns the exact retained Mesh reference; unknown/empty paths return null.
  • Clear releases all cache references only at the existing final-shutdown site.
  • Shared missing/prototype/animated caches remain loader-owned and unchanged.

Dependencies

  • Requires: accepted mesh load pipeline package on master ef782d1
  • Blocks: isolated M2 Mesh resource finalizer extraction
  • External state: none; verification uses synthetic Mesh resources

Verification

  • Commands: dedicated validation/store/replace/lookup/clear/source/timing verifier; mesh pipeline/classifier/material/shutdown/M2 build/facade/internal- access/manifest, documentation and coordination gates
  • Fixtures: synthetic ArrayMesh resources and normalized paths
  • Fidelity evidence: exact cache call-site and shutdown lifetime preservation
  • Performance budget: 100 cycles over 256 store/lookup entries under 1 second

Documentation deliverables

  • Inline public API docs
  • Module specification with inputs/outputs, ownership and source map
  • Data-flow, lifecycle/state and dependency diagrams
  • World-renderer, module registry and RENDER status updates

Simplicity and naming

  • Important name introduced: M2MeshResourceCacheState
  • Simplest solution: one RefCounted with one typed-purpose Dictionary
  • Rejected complexity: generic resource cache, missing-state merger, eviction, signals, callbacks or materialization ownership
  • Unavoidable complexity: none beyond retaining engine Resource references
  • Measured optimization evidence: bounded synthetic store/lookup loop

Status

  • State: claimed
  • Done: all Mesh cache read/write/clear sites identified
  • Next: implement cache state, migrate adapters, verify and document
  • Blocked by:

Handoff

  • Commit:
  • Results:
  • Remaining risks:
  • Documentation updated: