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

3.6 KiB

M03-RND-M2-STATIC-BUILD-RESOURCE-OBSERVER-001

Owner

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

Outcome

Move static M2 build cache lookup, threaded request selection and terminal missing transition from the loader into a service that fills M2BuildResourceSnapshot.

Non-goals

  • Move animation/native prototype observation or finalize drains.
  • Own/free Meshes, Nodes or cache entries.
  • Change path candidate order, GLB filtering, retry behavior, permits or visuals.
  • Change cache formats, profiles or batching.

Paths

  • Exclusive: src/render/m2/m2_static_build_resource_observer.gd, src/tools/verify_m2_static_build_resource_observer.gd, docs/modules/m2-static-build-resource-observer.md, this claim
  • Shared: loader, M2 snapshot/dispatch/pipeline/cache specs and verifiers, world renderer, module registry, RENDER and M03 Evidence

Contracts and data

  • Cached Mesh wins; terminal missing returns missing; existing pending request waits.
  • Candidate order remains normalized/lowercase nested then basename per extension.
  • .tscn precedes .glb; pivot-prefix GLB is skipped for static build.
  • Successful/ERR_BUSY request is remembered; no usable candidate marks missing.
  • Snapshot adopts exact Mesh/missing result; service never frees engine objects.

Dependencies

  • Requires: accepted resource snapshot 032a256
  • Blocks: remaining animated resource observer extraction

Verification

  • Synthetic cache/pipeline/snapshot lifecycle, path order, source boundaries and timing; adjacent M2 and 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, integration and post-merge acceptance
  • Next: remaining animated resource observer extraction
  • Blocked by:

Handoff

  • Commit: 7cb3e34 (render: extract static M2 build resource observer)
  • Results: observer PASS (11 cases, 20,000 iterations, 64.654ms); full autonomous suite PASS (55/55); renderer checkpoint dry-run PASS (7/7); internal-access PASS (30 private symbols); documentation PASS (42 module specs); coordination PASS with 30 historical warnings.
  • Remaining risks: successful asynchronous admission is covered by source and existing pipeline regressions because an undrained unit request leaks; private asset traversal, p95/p99, leak and visual evidence remain unavailable; animated observation and static finalize polling remain loader-owned.
  • Documentation updated: new observer module API/I/O/data-flow/state/sequence/ dependency/ownership specification; M2 snapshot, pipeline/cache, world-renderer, module registry, RENDER.md and M03 Evidence updated.

Integration

  • Merge: a043c79 (merge: static M2 build resource observer)
  • Post-merge: observer 11 cases / 20,000 iterations / 64.202ms; snapshot 12 / 42.895ms; dispatch 10 / 18.096ms; Mesh pipeline 11 / 73.615ms; Mesh cache 9 / 40.229ms; prototype cache 16 / 35.947ms; shutdown, facade, internal-access 30, manifest 7/7, documentation 42 and coordination passed. Checkpoint dry-run completed 7/7; expected private Azeroth/character assets remained unavailable.