Files
open-wc/coordination/claims/M03-RND-M2-MESH-LOAD-PIPELINE-001.md
T
sindoring ef782d1f2b docs(M03): accept M2 mesh load pipeline state
Work-Package: M03-RND-M2-MESH-LOAD-PIPELINE-001
Agent: sindo-main-codex
Tests: post-merge pipeline, classifier, materials, shutdown, facade, internal-access, manifest, documentation and coordination gates pass
Fidelity: preserves request polling/completion order, statuses, metrics and shutdown drain; asset-backed visual parity remains unclaimed
2026-07-17 11:09:20 +04:00

4.4 KiB

M03-RND-M2-MESH-LOAD-PIPELINE-001 — M2 mesh load pipeline state

Ownership

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

Outcome

Extract static M2 threaded ResourceLoader request records and their terminal finalize FIFO from StreamingWorldLoader, preserving request order, status transition, metrics and reset/shutdown behavior.

Non-goals

  • Call ResourceLoader or choose .tscn/.glb cache paths.
  • Own M2 Mesh, scene, missing or material-refresh caches.
  • Extract Mesh from Resources or rebuild/adopt runtime Meshes.
  • Consume M2_MESH_FINALIZE permits.
  • Change cache formats, animation loading or visible M2 behavior.

Paths

  • Exclusive: src/render/m2/m2_mesh_load_pipeline_state.gd, src/tools/verify_m2_mesh_load_pipeline_state.gd, docs/modules/m2-mesh-load-pipeline-state.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 M2 resources, caches and proprietary renderer corpus

Contracts and data

  • One normalized path owns at most one pending request.
  • Pending records preserve Dictionary insertion order for polling snapshots.
  • Terminal completion removes the request and appends its record/status to FIFO.
  • Finalize pop remains oldest-first; duplicate/unknown transitions are rejected.
  • Total work count remains pending plus finalize records.
  • Clear drops bookkeeping only; loader drains ResourceLoader requests first.

Dependencies

  • Requires: accepted classifier package on current master 8ec13d6
  • Blocks: further M2 Mesh cache/finalization service extraction
  • External state: none; verification uses synthetic paths and opaque statuses

Verification

  • Commands: dedicated validation/order/transition/FIFO/clear/source/timing verifier; M2 classifier/builder/grouper/transform/registry, materials, shutdown, facade, internal-access, manifest, documentation and coordination gates
  • Fixtures: synthetic normalized paths, resource paths and integer terminal statuses
  • Fidelity evidence: exact request/finalize transitions and metric/reset sites preserved
  • Performance budget: 100 cycles over 256 request/completion/pop records under 1 second

Documentation deliverables

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

Simplicity and naming

  • Important names introduced: M2MeshLoadPipelineState
  • Simplest considered solution: one RefCounted with request map and finalize FIFO
  • Rejected complexity/abstractions: generic ResourceLoader queue, signals, callbacks, Mesh cache ownership or animation/static pipeline merger
  • Unavoidable complexity and justification: polling and budgeted finalization are distinct lifecycle stages across frames
  • Measured optimization evidence: bounded synthetic transition loop

Status

  • State: accepted
  • Done: state holder, loader adapters, contract verifier and required documentation
  • Next: further M2 Mesh cache/finalizer extraction
  • Blocked by:

Handoff

  • Commit: 82df7a5
  • Results: 34 headless contract regressions pass; dedicated pipeline state verifier passes 100-by-256 transitions in 100.273 ms; documentation and coordination gates pass; checkpoint dry-run passes 7/7.
  • Remaining risks: no private asset traversal, leak/descriptor-pressure or original-client visual comparison; ResourceLoader I/O and Mesh cache/finalizer ownership remain in StreamingWorldLoader by design.
  • Documentation updated: inline API; m2-mesh-load-pipeline-state.md with data-flow, state, sequence and dependency diagrams; module registry, world-renderer.md and RENDER.md.

Integration

  • Merge commit: 83b3618
  • Post-merge results: pipeline state cases=11 iterations=100 elapsed_ms=69.196; classifier, materials, shutdown, facade, internal-access 34, manifest 7/7, documentation and coordination gates passed.