Files
open-wc/coordination/claims/M03-RND-M2-NATIVE-ANIMATION-RESOURCE-OBSERVER-001.md
T

3.4 KiB

M03-RND-M2-NATIVE-ANIMATION-RESOURCE-OBSERVER-001

Owner

  • Agent ID: sindo-main-codex
  • Target: M03 Renderer Facade and Safe Extraction
  • Branch: work/sindo-main-codex/m03-m2-native-animation-resource-observer
  • Worktree: C:\Users\sindo\open-wc-worktrees\m03-m2-native-animation-resource-observer

Outcome

Move native GryphonRoost M2 animation candidate selection, synchronous raw read, native animated build, prototype/static-only adoption and debug diagnostics from the loader into a dedicated observer.

Non-goals

  • Change the exact native candidate predicate or add more animated models.
  • Move cached-GLB observation, ResourceLoader polling/finalize or playback.
  • Own attached instances, consume permits or change queue/batch behavior.
  • Change native parsing/building, cache formats, profiles or visible output.

Paths

  • Exclusive: src/render/m2/m2_native_animation_resource_observer.gd, src/tools/verify_m2_native_animation_resource_observer.gd, docs/modules/m2-native-animation-resource-observer.md, this claim
  • Shared: loader, M2 cached observer/snapshot/raw repository/prototype specs and verifiers, world renderer, module registry, RENDER.md and M03 Evidence

Contracts and data

  • Only case-insensitive paths containing gryphonroost are native candidates.
  • Cached animated prototype wins; static-only state suppresses repeated reads.
  • Empty raw data or animated surfaces marks animation static.
  • Builder result must be non-null with at least one child; rejection marks static.
  • Successful result is adopted through first-wins prototype cache semantics.
  • Existing M2_NATIVE_ANIM_CACHE fields and debug gating remain exact.
  • Observer attaches/frees no Node and starts no async work.

Dependencies

  • Requires: accepted cached observer 6f385ed, raw repository and prototype state
  • Blocks: remaining ResourceLoader polling/finalize extraction

Verification

  • Synthetic candidate/cache/static/raw/build/adoption/lifetime/logging/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: remaining cached ResourceLoader terminal polling/finalize extraction
  • Blocked by:

Handoff

  • Commit: 1cb0101
  • Results: observer 33 cases / 20,000 timing iterations; all 57/57 autonomous headless regressions; facade/internal-access/shutdown/manifest; documentation 44; coordination; checkpoint dry-run 7/7.
  • Remaining risks: private asset animation/visual/leak/p95/p99 evidence is absent; native parse/build stays synchronous; historical childless rejected Node remains unfreed; cached ResourceLoader terminal polling/finalize stays loader-owned.
  • Documentation updated: new native observer API/I/O/data-flow/state/sequence/ dependency/ownership spec; cached observer, snapshot, dispatch, repository, prototype cache, world renderer, module registry, RENDER.md and M03 Evidence.

Integration

  • Merge: d37c799
  • Post-merge: native/cached observers, repository, cache, snapshot, dispatch, shutdown, facade, internal-access 30, manifest 7/7, documentation 44, coordination and checkpoint dry-run 7/7 passed on master.