From 040b635ec60d0ee37508d8342c4187dc97c389d2 Mon Sep 17 00:00:00 2001 From: sindoring Date: Fri, 17 Jul 2026 00:51:33 +0400 Subject: [PATCH] coord(M03): claim WMO render build queue --- .../M03-RND-WMO-RENDER-BUILD-QUEUE-001.md | 95 +++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 coordination/claims/M03-RND-WMO-RENDER-BUILD-QUEUE-001.md diff --git a/coordination/claims/M03-RND-WMO-RENDER-BUILD-QUEUE-001.md b/coordination/claims/M03-RND-WMO-RENDER-BUILD-QUEUE-001.md new file mode 100644 index 0000000..ebb2fda --- /dev/null +++ b/coordination/claims/M03-RND-WMO-RENDER-BUILD-QUEUE-001.md @@ -0,0 +1,95 @@ +# M03-RND-WMO-RENDER-BUILD-QUEUE-001 — WMO render build queue + + + +## Ownership + +- Target: M03 +- Program: RND +- Owner/Agent ID: sindo-main-codex +- Branch: `work/sindo-main-codex/m03-wmo-render-build-queue` +- Lease expires UTC: 2026-07-20 +- Integrator: M03 milestone integrator + +## Outcome + +Extract typed lightweight-WMO render build jobs and their FIFO key queue from +the loader while leaving all engine-object destruction and materialization in +the loader. + +## Non-goals + +- Queue-free Nodes or free Resources/RIDs. +- Move material refresh, Node creation, editor ownership or budget permits. +- Change duplicate enqueue, stale-key cleanup, cancel or clear ordering. +- Change placement, cache loading/versioning, transforms, shadows or visibility. +- Claim asset-backed WMO fidelity, leak acceptance or traversal p95/p99. + +## Paths + +- Exclusive: `src/render/wmo/wmo_render_build_job.gd`, + `src/render/wmo/wmo_render_build_queue.gd`, + `src/tools/verify_wmo_render_build_queue.gd`, + `docs/modules/wmo-render-build-queue.md`, this claim +- Shared/hotspots: `src/scenes/streaming/streaming_world_loader.gd`, + `docs/modules/wmo-render-build-step-planner.md`, + `docs/modules/world-renderer.md`, `docs/modules/README.md`, `RENDER.md`, + `targets/03-renderer-facade.md` +- Generated/ignored: `.godot`, native DLL, generated ADT/WMO resources, caches + and proprietary renderer corpus + +## Contracts and data + +- Typed job: placement key, strong Node3D/Resource references and two cursors +- FIFO queue preserves duplicate key append and first-occurrence erase behavior +- Stale front keys remain observable for loader-compatible pop-and-continue +- Cancel releases the keyed job reference and first queued key only +- Clear releases every job/key reference idempotently; never frees engine objects +- Loader retains validity checks, planner invocation, cursor adoption, + materialization, permits, cancellation reactions and Node destruction +- Cache/schema/coordinate/profile versions: unchanged + +## Dependencies + +- Requires: current master `1e740aa`, accepted WMO build step planner +- Blocks: further WMO cache/load and materialization decomposition +- External state: none; verification uses synthetic Node3D/Resource instances + +## Verification + +- Commands: dedicated invalid/FIFO/duplicate/stale/cursor/cancel/clear/ + diagnostics/source/timing verifier; WMO planner/registry/resolver/material/ + shutdown plus M2/terrain/facade/internal-access/manifest/scheduler/streaming/ + coordinate/docs/coord gates +- Fidelity evidence: exact current queue/dictionary behavior preserved +- Performance budget: 100 cycles over 256 jobs under 1 second + +## Documentation deliverables + +- Inline job/queue API documentation +- New module spec with inputs/outputs, data flow, state/sequence, ownership, + threading, failure/recovery, performance/fidelity limits and source map +- Build-step planner, renderer module registry, world renderer and RENDER updates + +## Simplicity and naming + +- Important names: `WmoRenderBuildJob`, `WmoRenderBuildQueue` +- Simplest solution: one typed record plus Dictionary/Array queue composition +- Rejected complexity: generic job scheduler, signals, callbacks, mutexes, + Resources as job records or engine lifetime callbacks +- Unavoidable complexity: duplicate keys can intentionally leave stale entries +- Measured optimization evidence: bounded synthetic enqueue/cancel/clear loop + +## Status + +- State: claimed +- Done: ownership, duplicate/stale and engine-lifetime boundary published +- Next: implement queue/job, migrate loader state, tests and docs +- Blocked by: + +## Handoff + +- Commit: +- Results: +- Remaining risks: +- Documentation updated: