a629bedccf
Work-Package: M03-RND-FACADE-001 Agent: sindo-main-codex Tests: not run (coordination-only commit) Fidelity: no runtime change
3.4 KiB
3.4 KiB
M03-RND-FACADE-001 — Renderer facade first seam
Ownership
- Target: M03
- Program: RND
- Owner/Agent ID: sindo-main-codex
- Branch:
work/sindo-main-codex/m03-renderer-facade - Lease expires UTC: 2026-07-17
- Integrator: M03 milestone integrator
Outcome
Introduce WorldRenderFacade as the only runtime/tool caller surface for typed
streaming focus updates and read-only renderer metrics, while retaining
StreamingWorldLoader as the unchanged internal implementation.
Non-goals
- Extract the pure target planner or budget scheduler in this package.
- Add environment or entity-presentation commands before their contracts exist.
- Replace the M02
TerrainQuerygameplay boundary in this package. - Change streaming radii, queues, cache formats, visuals or quality presets.
- Mark M03 complete or edit its checklist/Evidence.
Paths
- Exclusive:
src/render/world_render_facade.gd,src/tools/verify_world_render_facade.gd, this claim - Shared/hotspots: both runtime streaming scenes, three renderer capture/probe
tools,
src/tools/verify_streaming_focus.gd,docs/modules/world-renderer.md,docs/modules/README.md,RENDER.md - Generated/ignored: local
.godot, native build outputs, caches and proprietary renderer corpus
Contracts and data
- Public API:
set_streaming_focus,refresh_streaming_focus,renderer_metrics_snapshot - Scene adapter: explicit
streaming_focus_source_pathowned by the facade - Internal implementation seam:
streaming_world_loader_path; callers must not read streamer queues or call its methods directly - Schema/cache/coordinate contracts: unchanged
- Consumers: runtime scenes, capture tool and renderer probes
Dependencies
- Requires: M01
StreamingFocusand merged M02 closeout on master4f566b1 - Blocks: environment/entity/ground facade contracts and planner extraction
- External state: none; contract verification uses a test double
Verification
- Commands: dedicated facade verifier, streaming-focus regression, renderer baseline manifest/dry-run, coordinate boundary and repository gates
- Fixtures: typed focus, source Node3D and read-only metrics test double
- Fidelity evidence: no renderer configuration, planner, queue, placement, visibility, material, animation or cache behavior changes
- Performance budget: one source position sample per process frame; target recomputation remains throttled inside the existing streamer
Documentation deliverables
- Inline public API docs for facade properties and methods
- Updated world-renderer module specification
- Updated data-flow, sequence and dependency diagrams
- Updated source map/status and renderer notes
Simplicity and naming
- Important names:
WorldRenderFacade,renderer_metrics_snapshot - Simplest approach: one small Node adapter delegating to the existing streamer
- Rejected complexity: service container, generic command bus, streamer rewrite or duplicate queue/cache state
- Unavoidable complexity: scene-relative source and implementation paths are resolved on the main thread with explicit diagnostics
- Measured optimization evidence: not applicable; behavior-preserving seam
Status
- State: active
- Done: worktree and bounded claim created
- Next: implement facade, migrate runtime/tool consumers, document and verify
- Blocked by:
Handoff
- Commit:
- Results:
- Remaining risks:
- Documentation updated: