Files
open-wc/coordination/claims/M03-RND-M2-BUILD-RESOURCE-SNAPSHOT-001.md
T

3.3 KiB

M03-RND-M2-BUILD-RESOURCE-SNAPSHOT-001

Owner

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

Outcome

Replace loose per-step M2 animated/static resource variables with a typed observation snapshot consumed by the dispatch planner and materializer adapter.

Non-goals

  • Move ResourceLoader I/O, cache lookup/request execution or retry ownership.
  • Own or free prototype Nodes or Mesh Resources.
  • Change dispatch priority, batch sizing, queue ordering, permits or visuals.
  • Change M2 cache paths, formats, allowlists or native animation selection.

Paths

  • Exclusive: src/render/m2/m2_build_resource_snapshot.gd, src/tools/verify_m2_build_resource_snapshot.gd, docs/modules/m2-build-resource-snapshot.md, this claim
  • Shared/hotspots: src/render/m2/m2_build_dispatch_planner.gd, its verifier/spec, src/scenes/streaming/streaming_world_loader.gd, M2 queue/materializer/cache specs and tests, docs/modules/world-renderer.md, docs/modules/README.md, RENDER.md, targets/03-renderer-facade.md
  • Generated/ignored: .godot, native DLL, generated resources/caches and proprietary corpus

Contracts and data

  • Snapshot retains normalized path, optional animated prototype, animation request state, optional static Mesh and terminal missing-model state.
  • Static observation is adopted only after animation is not pending, the batch is positive and no animated prototype exists.
  • Accessors borrow exact engine references without transferring/freeing ownership.
  • Diagnostics expose only path and scalar availability flags.

Dependencies

  • Requires: accepted M2 dispatch planner on master b113db0
  • Blocks: extracting M2 resource observation/request service ownership
  • External state: prototype/cache/pipeline/resource lifetime remains loader-owned

Verification

  • Commands: dedicated identity/adoption/diagnostic/lifetime/source/timing verifier; dispatch/queue/batch/materializer/cache/pipeline/shutdown/facade/internal-access/ manifest regressions; documentation, coordination and checkpoint dry-run gates
  • Fixtures: synthetic Node3D prototype and ArrayMesh resources
  • Fidelity evidence: exact resource presence/pending/missing values and branch order
  • Performance budget: 20,000 snapshot construct/adopt/read cycles under one second

Documentation deliverables

  • Inline API docs
  • Module spec with inputs/outputs, ownership and source map
  • Data-flow, lifecycle/state, sequence and dependency diagrams
  • Adjacent dispatch/queue/world-renderer/module-registry/RENDER updates

Simplicity and naming

  • Important name: M2BuildResourceSnapshot
  • Simplest solution: one small RefCounted value holder with explicit accessors
  • Rejected complexity: generic resource union, signals, callbacks and cache ownership
  • Unavoidable complexity: two-phase animation then optional static observation
  • Measured optimization evidence: bounded synthetic lifecycle loop

Status

  • State: active
  • Done: contract and ownership boundary
  • Next: implementation, verification and documentation
  • Blocked by:

Handoff

  • Commit:
  • Results:
  • Remaining risks:
  • Documentation updated: