coord(M03): claim terrain chunk queue planner
This commit is contained in:
@@ -0,0 +1,90 @@
|
|||||||
|
# M03-RND-TERRAIN-CHUNK-QUEUE-001 — Pure terrain chunk geometry queue planner
|
||||||
|
|
||||||
|
<!-- OPENWC_CLAIM:M03-RND-TERRAIN-CHUNK-QUEUE-001:sindo-main-codex:2026-07-19 -->
|
||||||
|
|
||||||
|
## Ownership
|
||||||
|
|
||||||
|
- Target: M03
|
||||||
|
- Program: RND
|
||||||
|
- Owner/Agent ID: sindo-main-codex
|
||||||
|
- Branch: `work/sindo-main-codex/m03-terrain-chunk-queue`
|
||||||
|
- Lease expires UTC: 2026-07-19
|
||||||
|
- Integrator: M03 milestone integrator
|
||||||
|
|
||||||
|
## Outcome
|
||||||
|
|
||||||
|
Extract chunk-geometry create/remove desired-operation calculation from the
|
||||||
|
streamer into a scene-free `TerrainChunkGeometryQueuePlanner`.
|
||||||
|
|
||||||
|
## Non-goals
|
||||||
|
|
||||||
|
- Move queue storage/drains, render budgets, tile-LOD queues or async tasks.
|
||||||
|
- Move chunk Mesh/Node/RID creation/removal or terrain state ownership.
|
||||||
|
- Change removal-first execution, nearest-first create order or LOD selection.
|
||||||
|
- Change coordinate conversions, radii, cache formats or quality profiles.
|
||||||
|
- Add dependencies or mark the broad terrain service checklist complete.
|
||||||
|
|
||||||
|
## Paths
|
||||||
|
|
||||||
|
- Exclusive: `src/render/terrain/terrain_chunk_geometry_queue_planner.gd`,
|
||||||
|
`src/tools/verify_terrain_chunk_geometry_queue_planner.gd`,
|
||||||
|
`docs/modules/terrain-chunk-geometry-queue-planner.md`, this claim
|
||||||
|
- Shared/hotspots: `src/scenes/streaming/streaming_world_loader.gd`,
|
||||||
|
`docs/modules/world-renderer.md`, `docs/modules/README.md`, `RENDER.md`,
|
||||||
|
`targets/03-renderer-facade.md`
|
||||||
|
- Generated/ignored: `.godot`, native DLL, generated ADT resources, caches and
|
||||||
|
proprietary renderer corpus
|
||||||
|
|
||||||
|
## Contracts and data
|
||||||
|
|
||||||
|
- Input: loader-owned tile-state read model plus immutable `GodotWorldPosition`
|
||||||
|
- Output: fresh create/remove request arrays; planner retains no queue state
|
||||||
|
- Removal: current chunks absent from desired state, or all current chunks while
|
||||||
|
tile LOD is desired
|
||||||
|
- Creation: missing or LOD-mismatched chunks, sorted by origin XZ distance
|
||||||
|
- Queue/cache/schema/coordinate versions: unchanged
|
||||||
|
|
||||||
|
## Dependencies
|
||||||
|
|
||||||
|
- Requires: integrated terrain LOD planner master `b568768`
|
||||||
|
- Blocks: broader terrain service extraction and dependency/performance acceptance
|
||||||
|
- External state: none; tests use synthetic tile/chunk dictionaries
|
||||||
|
|
||||||
|
## Verification
|
||||||
|
|
||||||
|
- Commands: dedicated removal/create/mismatch/tile-fallback/sparse/order and
|
||||||
|
bounded timing verifier; loader source boundary; facade/cache/LOD/internal-access/
|
||||||
|
manifest/shutdown/scheduler/streaming planner and repository gates
|
||||||
|
- Fidelity evidence: extracted branch/order/distance rules and loader drain order
|
||||||
|
- Performance budget: bounded linear planning plus existing create sort; no engine
|
||||||
|
resource, task, cache or persistent allocation framework
|
||||||
|
|
||||||
|
## Documentation deliverables
|
||||||
|
|
||||||
|
- Inline planner API documentation
|
||||||
|
- New module spec with inputs/outputs, data-flow, lifecycle, sequence, ownership,
|
||||||
|
failure, performance and source map
|
||||||
|
- World renderer/module registry/`RENDER.md` updates
|
||||||
|
|
||||||
|
## Simplicity and naming
|
||||||
|
|
||||||
|
- Important name: `TerrainChunkGeometryQueuePlanner`
|
||||||
|
- Simplest solution: one stateless planner returning two fresh arrays
|
||||||
|
- Rejected complexity: generic operation graph, queue class, callback strategy,
|
||||||
|
spatial index or ownership transfer
|
||||||
|
- Unavoidable complexity: raw dictionaries remain at the loader/ADT adapter boundary
|
||||||
|
- Measured optimization evidence: bounded synthetic multi-tile verifier
|
||||||
|
|
||||||
|
## Status
|
||||||
|
|
||||||
|
- State: claimed
|
||||||
|
- Done: scope, ordering and ownership published
|
||||||
|
- Next: implement planner, migrate chunk queue calculation, tests and docs
|
||||||
|
- Blocked by:
|
||||||
|
|
||||||
|
## Handoff
|
||||||
|
|
||||||
|
- Commit:
|
||||||
|
- Results:
|
||||||
|
- Remaining risks:
|
||||||
|
- Documentation updated:
|
||||||
Reference in New Issue
Block a user