85 lines
3.6 KiB
Markdown
85 lines
3.6 KiB
Markdown
# M03-RND-M2-ANIMATION-RESOURCE-FINALIZER-001
|
|
|
|
<!-- OPENWC_CLAIM:M03-RND-M2-ANIMATION-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-animation-resource-finalizer`
|
|
- Worktree: `C:\Users\sindo\open-wc-worktrees\m03-m2-animation-resource-finalizer`
|
|
|
|
## Outcome
|
|
|
|
Move cached animated M2 ResourceLoader status polling, terminal Resource load,
|
|
candidate finalization, prototype/static-only adoption and success diagnostics
|
|
from the loader into a dedicated two-phase finalization service.
|
|
|
|
## Non-goals
|
|
|
|
- Change cached animation eligibility, request admission or native-first order.
|
|
- Move material-prototype lookup, permit ownership, playback or materialization.
|
|
- Change ResourceLoader status order, cache formats, profiles or visible output.
|
|
- Generalize static and animated ResourceLoader paths behind callbacks/frameworks.
|
|
|
|
## Paths
|
|
|
|
- Exclusive: `src/render/m2/m2_animation_resource_finalizer.gd`,
|
|
`src/tools/verify_m2_animation_resource_finalizer.gd`,
|
|
`docs/modules/m2-animation-resource-finalizer.md`, this claim
|
|
- Shared: loader, animation pipeline/scene finalizer/prototype cache/cached
|
|
observer/world-renderer specs and verifiers, module registry, `RENDER.md`, M03 Evidence
|
|
|
|
## Contracts and data
|
|
|
|
- Pending request snapshots are polled in existing Dictionary insertion order.
|
|
- Empty Resource paths are discarded and marked static-only immediately.
|
|
- Only LOADED/FAILED statuses move into completion-order finalize FIFO.
|
|
- One permit processes one popped terminal record, including skipped/stale records.
|
|
- Existing prototype/static-only state suppresses terminal Resource loading.
|
|
- LOADED Resource is instantiated before material-prototype lookup is requested.
|
|
- Candidate repair/finalize/adoption and exact `M2_ANIM_CACHE` debug fields remain.
|
|
- Rejected candidates are released by the existing animated scene finalizer.
|
|
|
|
## Dependencies
|
|
|
|
- Requires: accepted animation pipeline, scene finalizer, cached/native observers
|
|
- Blocks: remaining loader-owned M2 material-prototype lookup and action execution
|
|
|
|
## Verification
|
|
|
|
- Synthetic polling/status/FIFO/skip/load/candidate/repair/adoption/log/source and
|
|
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: static M2 Resource terminal polling/finalize extraction
|
|
- Blocked by:
|
|
|
|
## Handoff
|
|
|
|
- Commit: `e7cd967`
|
|
- Results: finalizer `28` cases / `1,000` timing iterations; all `58/58`
|
|
autonomous headless regressions; facade/internal-access/shutdown/manifest;
|
|
documentation `45`; coordination; checkpoint dry-run `7/7`.
|
|
- Remaining risks: private asset animation/visual/leak/p95/p99 evidence is absent;
|
|
terminal Resource get/instantiation/repair stays synchronous; immediate prepared-
|
|
candidate completion is a composition precondition; material lookup stays loader-owned.
|
|
- Documentation updated: new finalizer API/I/O/data-flow/state/sequence/dependency/
|
|
ownership spec; pipeline, scene finalizer, cached observer, prototype cache,
|
|
world renderer, module registry, `RENDER.md` and M03 Evidence.
|
|
|
|
## Integration
|
|
|
|
- Merge: `06f6394`
|
|
- Post-merge: finalizer, pipeline, scene finalizer, cached observer, prototype
|
|
cache, snapshot, dispatch, shutdown, facade, internal-access `30`, manifest
|
|
`7/7`, documentation `45`, coordination and checkpoint dry-run `7/7` passed.
|