85 lines
3.6 KiB
Markdown
85 lines
3.6 KiB
Markdown
# M03-RND-M2-MESH-RESOURCE-FINALIZER-001
|
|
|
|
<!-- OPENWC_CLAIM:M03-RND-M2-MESH-RESOURCE-FINALIZER-001:sindo-main-codex:2026-07-20 -->
|
|
|
|
## Owner
|
|
|
|
- Agent ID: `sindo-main-codex`
|
|
- Target: M03 Renderer Facade and Safe Extraction
|
|
- Branch: `work/sindo-main-codex/m03-m2-mesh-resource-finalizer`
|
|
- Worktree: `C:\Users\sindo\open-wc-worktrees\m03-m2-mesh-resource-finalizer`
|
|
|
|
## Outcome
|
|
|
|
Move static M2 ResourceLoader status polling, terminal Resource/Mesh extraction,
|
|
runtime Mesh preparation, Mesh-cache adoption and missing outcome from the
|
|
loader into one dedicated finalization service.
|
|
|
|
## Non-goals
|
|
|
|
- Change static cache path selection or threaded request admission.
|
|
- Merge static and animated terminal services behind a generic callback layer.
|
|
- Own permits, MultiMesh materialization, prototype Nodes or SceneTree roots.
|
|
- Change material refresh version, rebuild rules, cache formats or visible output.
|
|
|
|
## Paths
|
|
|
|
- Exclusive: `src/render/m2/m2_mesh_resource_finalizer.gd`,
|
|
`src/tools/verify_m2_mesh_resource_finalizer.gd`,
|
|
`docs/modules/m2-mesh-resource-finalizer.md`, this claim
|
|
- Shared: loader, Mesh pipeline/cache/extractor/runtime-finalizer/raw-repository/
|
|
prototype specs and verifiers, world renderer, registry, `RENDER.md`, M03 Evidence
|
|
|
|
## Contracts and data
|
|
|
|
- Pending requests are polled in existing Dictionary insertion order.
|
|
- Empty Resource paths are discarded and marked missing immediately.
|
|
- Only LOADED/FAILED statuses enter completion-order finalize FIFO.
|
|
- One permit pops exactly one terminal record, including skipped/cached records.
|
|
- Existing cached Mesh suppresses terminal Resource retrieval.
|
|
- Loaded Resource uses exact first-Mesh extraction and current refresh-version path.
|
|
- Raw M2 data loads only when the extracted Mesh is stale.
|
|
- Prepared Mesh is stored by existing replacement semantics; failures mark missing.
|
|
|
|
## Dependencies
|
|
|
|
- Requires: accepted Mesh pipeline/cache/extractor/runtime finalizer/raw repository
|
|
- Blocks: remaining loader-owned M2 materialization and orchestration cleanup
|
|
|
|
## Verification
|
|
|
|
- Synthetic polling/FIFO/skip/load/extract/refresh/store/missing/source/timing
|
|
contracts; adjacent M2/renderer gates; full headless suite and checkpoint dry-run.
|
|
|
|
## Documentation deliverables
|
|
|
|
- Inline API docs; module API/I/O/ownership; data-flow/state/sequence/dependency
|
|
diagrams; adjacent renderer docs and M03 Evidence.
|
|
|
|
## Status
|
|
|
|
- State: accepted
|
|
- Done: implementation, verification and documentation
|
|
- Next: next unclaimed M03 renderer extraction package
|
|
- Blocked by:
|
|
|
|
## Handoff
|
|
|
|
- Commit: `ddeb708` (`render: extract M2 Mesh resource finalizer`)
|
|
- Results: finalizer PASS `cases=31 iterations=1000 elapsed_ms=0.767`;
|
|
adjacent Mesh pipeline/cache/extractor/runtime-finalizer/raw-repository/
|
|
prototype/shutdown checks passed; autonomous headless suite `59/59`;
|
|
documentation `46`; coordination passed with `34` historical warnings;
|
|
checkpoint dry-run `7/7`.
|
|
- Remaining risks: terminal instantiation/raw parsing/rebuild remain synchronous
|
|
main-thread work behind existing permits; no private-asset visual, leak,
|
|
descriptor-pressure or p95/p99 evidence was added.
|
|
- Documentation updated: new full module specification with API/I/O and
|
|
data-flow/state/sequence/dependency diagrams; adjacent M2 module specs,
|
|
world-renderer registry/spec, `RENDER.md` and M03 Evidence.
|
|
- Merge: `34b7000` (`merge: M2 Mesh resource finalizer`)
|
|
- Post-merge: finalizer PASS `cases=31 iterations=1000 elapsed_ms=0.826`;
|
|
adjacent M2 pipeline/cache/extractor/runtime/repository/prototype/shutdown,
|
|
facade, internal-access `30`, manifest `7/7`, documentation `46` and
|
|
coordination gates passed.
|