f978a16806
Work-Package: M03-RND-WMO-SCENE-INSTANCE-FACTORY-001 Agent: sindo-main-codex Tests: post-merge WMO/placement/facade/internal-access/manifest/docs/coordination smoke passed Fidelity: valid cached/live behavior preserved; invalid-root lifetime leak fixed
3.7 KiB
3.7 KiB
M03-RND-WMO-SCENE-INSTANCE-FACTORY-001
Owner
- Agent ID:
sindo-main-codex - Target: M03 Renderer Facade and Safe Extraction
- Branch:
work/sindo-main-codex/m03-wmo-scene-instance-factory - Worktree:
C:\Users\sindo\open-wc-worktrees\m03-wmo-scene-instance-factory
Outcome
Move WMO cached-scene instantiation/currentness validation and live-prototype duplication with shared name/placement application into one main-thread factory.
Non-goals
- Change cache lookup/admission, ResourceLoader or prototype construction.
- Change runtime Mesh/material/occluder/shadow preparation.
- Change attachment, placement registry, queues, permits or lifetime.
- Change scene cache version rules or placement formulas.
Paths
- Exclusive:
src/render/wmo/wmo_scene_instance_factory.gd,src/tools/verify_wmo_scene_instance_factory.gd,docs/modules/wmo-scene-instance-factory.md, this claim - Shared: loader, adjacent WMO verifier/spec, renderer registry/specification,
RENDER.md, M03 Evidence
Contracts and data
- Null scenes/prototypes and non-Node3D instantiation/duplication return null.
- Cached instances failing the injected currentness validator are synchronously freed.
- Accepted instances retain exact descendant Resource identities.
- Both paths apply
relative_path.get_file().get_basename()and the exact placement-resolver Transform3D. - The factory returns detached roots and retains no Node or Resource.
Dependencies
- Requires: accepted WMO placement resolver and runtime scene preparer
- Blocks: remaining loader-owned WMO cache/prototype orchestration cleanup
Verification
- Synthetic cached/live type, validation, freeing, exact identity, name, transform, dependency/order, ownership, source and bounded-timing contracts; adjacent WMO/renderer gates and 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:
7e97b19(render: extract WMO scene instance factory) - Results: factory PASS
cases=41 iterations=1000 elapsed_ms=5.297; placement resolver dependency PASScases=10 iterations=20000 elapsed_ms=28.740; suite65/66with no unexpected failures and only the proprietary ADT placement probe unavailable; editor parse had zero script diagnostics; checkpoint dry-run retained7/7; documentation passed with52module specifications; coordination passed with77historical warnings. - Fidelity: valid cached/live cache-validation distinction, basename, exact Transform3D and descendant Resource identity are unchanged. Invalid non-Node3D cached roots are now freed synchronously, fixing an error-path leak without changing valid visible output.
- Remaining risks: instantiation/duplication remains synchronous; no private WMO portal/room, visual, long-traversal, leak/GPU or p95/p99 evidence.
- Documentation: new full factory module specification; placement resolver
consumers/sequence, renderer registry/source map and
RENDER.mdupdated.
- Merge:
541279e(merge: WMO scene instance factory) - Post-merge: factory PASS
cases=41 iterations=1000 elapsed_ms=5.308; placement resolvercases=10/31.207ms; runtime preparation/finalization, adjacent WMO services, shutdown, materials, facade, internal-access30, manifest7/7, documentation52and coordination passed.