rnd(M03): claim streaming target planner
Work-Package: M03-RND-STREAMING-PLANNER-001 Agent: sindo-main-codex Tests: not run (coordination-only commit) Fidelity: no runtime change
This commit is contained in:
@@ -0,0 +1,95 @@
|
||||
# M03-RND-STREAMING-PLANNER-001 — Pure streaming target planner
|
||||
|
||||
<!-- OPENWC_CLAIM:M03-RND-STREAMING-PLANNER-001:sindo-main-codex:2026-07-17 -->
|
||||
|
||||
## Ownership
|
||||
|
||||
- Target: M03
|
||||
- Program: RND
|
||||
- Owner/Agent ID: sindo-main-codex
|
||||
- Branch: `work/sindo-main-codex/m03-streaming-target-planner`
|
||||
- Lease expires UTC: 2026-07-17
|
||||
- Integrator: M03 milestone integrator
|
||||
|
||||
## Outcome
|
||||
|
||||
Extract runtime/editor ADT wanted/retained-set calculation and boundary prefetch
|
||||
selection from `StreamingWorldLoader` into a scene-free, deterministic
|
||||
`StreamingTargetPlanner` with typed focus input and asset-free contract tests.
|
||||
|
||||
## Non-goals
|
||||
|
||||
- Change load/retain radii, boundary thresholds, queue priority or LOD policy.
|
||||
- Move queue mutation, async jobs, cache ownership or GPU finalization.
|
||||
- Extract `RenderBudgetScheduler` or asset services in this package.
|
||||
- Change cache formats, renderer profiles or target milestone status.
|
||||
|
||||
## Paths
|
||||
|
||||
- Exclusive: `src/render/streaming/streaming_target_planner.gd`,
|
||||
`src/render/streaming/streaming_target_policy.gd`,
|
||||
`src/render/streaming/streaming_target_plan.gd`,
|
||||
`src/tools/verify_streaming_target_planner.gd`,
|
||||
`docs/modules/streaming-target-planner.md`, this claim
|
||||
- Shared/hotspots: `src/scenes/streaming/streaming_world_loader.gd`,
|
||||
`docs/modules/world-renderer.md`, `docs/modules/README.md`, `RENDER.md`
|
||||
- Generated/ignored: `.godot`, native DLL, generated cache resources and
|
||||
proprietary renderer corpus
|
||||
|
||||
## Contracts and data
|
||||
|
||||
- Input: immutable `GodotWorldPosition`, available-tile key set and immutable
|
||||
`StreamingTargetPolicy`
|
||||
- Output: immutable `StreamingTargetPlan` with focus tile plus detached
|
||||
wanted/retained tile-key sets
|
||||
- Tile-key representation remains the streamer's existing `<x>_<y>` internal key
|
||||
- Schema/cache/coordinate versions: unchanged
|
||||
- Consumers: `StreamingWorldLoader` runtime/editor refresh paths
|
||||
|
||||
## Dependencies
|
||||
|
||||
- Requires: M01 typed coordinates/focus and integrated facade package `a100ced`
|
||||
- Blocks: budget scheduler extraction and planner performance regression gate
|
||||
- External state: none; tests use synthetic tile catalogs
|
||||
|
||||
## Verification
|
||||
|
||||
- Commands: dedicated planner verifier, facade/focus/coordinate regressions,
|
||||
renderer manifest/dry-run and repository gates
|
||||
- Fixtures: center, edge, corner, unavailable-tile, clamped-radius and editor cases
|
||||
- Fidelity evidence: expected tile sets are captured from current formulas; full
|
||||
renderer dry-run retains all seven checkpoint plans
|
||||
- Performance budget: planner work remains bounded by square radii and creates no
|
||||
Node, Resource, task, cache or RID
|
||||
|
||||
## Documentation deliverables
|
||||
|
||||
- Inline API docs for planner/policy/plan
|
||||
- New module specification with input/output table and data-flow diagram
|
||||
- Updated world-renderer data-flow/sequence/ownership/source map
|
||||
- Updated module registry and renderer notes
|
||||
|
||||
## Simplicity and naming
|
||||
|
||||
- Important names: `StreamingTargetPlanner`, `StreamingTargetPolicy`,
|
||||
`StreamingTargetPlan`
|
||||
- Simplest approach: one pure calculator plus two immutable value objects
|
||||
- Rejected complexity: generic graph planner, priority framework, service
|
||||
container, job ownership or duplicate available-tile catalog
|
||||
- Unavoidable complexity: boundary-prefetch cross product must preserve corner
|
||||
behavior and existing string tile keys
|
||||
- Measured optimization evidence: no new optimization; exact extraction
|
||||
|
||||
## Status
|
||||
|
||||
- State: active
|
||||
- Done: claim and isolated worktree created
|
||||
- Next: implement pure contracts, migrate runtime/editor refresh, verify
|
||||
- Blocked by:
|
||||
|
||||
## Handoff
|
||||
|
||||
- Commit:
|
||||
- Results:
|
||||
- Remaining risks:
|
||||
- Documentation updated:
|
||||
Reference in New Issue
Block a user