3.6 KiB
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.
.tscnprecedes.glb; pivot-prefix GLB is skipped for static build.- Successful/
ERR_BUSYrequest 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 (
11cases,20,000iterations,64.654ms); full autonomous suite PASS (55/55); renderer checkpoint dry-run PASS (7/7); internal-access PASS (30private symbols); documentation PASS (42module specs); coordination PASS with30historical 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.mdand M03 Evidence updated.
Integration
- Merge:
a043c79(merge: static M2 build resource observer) - Post-merge: observer
11cases /20,000iterations /64.202ms; snapshot12/42.895ms; dispatch10/18.096ms; Mesh pipeline11/73.615ms; Mesh cache9/40.229ms; prototype cache16/35.947ms; shutdown, facade, internal-access30, manifest7/7, documentation42and coordination passed. Checkpoint dry-run completed7/7; expected private Azeroth/character assets remained unavailable.