# M03-RND-WMO-RENDER-RESOURCE-FINALIZER-001

<!-- OPENWC_CLAIM:M03-RND-WMO-RENDER-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-wmo-render-resource-finalizer`
- Worktree: `C:\Users\sindo\open-wc-worktrees\m03-wmo-render-resource-finalizer`

## Outcome

Move lightweight WMO render-cache terminal ResourceLoader polling, script/format
validation and Resource/missing publication from the loader into one service.

## Non-goals

- Change `.res` cache path selection or threaded request admission.
- Own WMO build permits, queues, placement state, Nodes or materialization.
- Change `WMOStreamingResource.FORMAT_VERSION`, fallback order or visible output.
- Combine render Resource and PackedScene finalization behind a generic callback.

## Paths

- Exclusive: `src/render/wmo/wmo_render_resource_finalizer.gd`,
  `src/tools/verify_wmo_render_resource_finalizer.gd`,
  `docs/modules/wmo-render-resource-finalizer.md`, this claim
- Shared: loader, WMO render cache state spec/verifier, world renderer registry/spec,
  `RENDER.md`, M03 Evidence

## Contracts and data

- Pending requests are polled in detached Dictionary insertion order.
- Only LOADED/FAILED statuses complete requests.
- Failed, null, wrong-script and stale-format Resources publish missing outcome.
- Current exact-script Resources are adopted without duplication.
- Request admission, reset/shutdown drain order and cache lifetime are unchanged.

## Dependencies

- Requires: accepted WMO render Resource cache state
- Blocks: remaining loader-owned WMO orchestration/materialization cleanup

## Verification

- Synthetic status/order/load/validation/adoption/source/timing contracts;
  adjacent WMO/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: `a86f8f2` (`render: extract WMO render resource finalizer`)
- Results: finalizer PASS `cases=24 iterations=1000 elapsed_ms=3.938`;
  adjacent WMO cache/queue/planner/registry/resolver/scene-cache/shutdown checks
  passed; autonomous headless suite `60/60`; documentation `47`; coordination
  passed with `34` historical warnings; checkpoint dry-run `7/7`.
- Remaining risks: terminal ResourceLoader polling remains a synchronous
  main-thread boundary; no serialized private WMO, corrupt-cache, 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 WMO cache/world-renderer
  specs, module registry, `RENDER.md` and M03 Evidence.
- Merge: `1acddab` (`merge: WMO render resource finalizer`)
- Post-merge: finalizer PASS `cases=24 iterations=1000 elapsed_ms=3.777`;
  WMO cache/queue/planner/registry/resolver/scene-cache/shutdown, facade,
  internal-access `30`, manifest and checkpoint dry-run `7/7`, documentation
  `47` and coordination gates passed.
