Files
open-wc/coordination/claims/M03-RND-FACADE-001.md
T
sindoring a629bedccf rnd(M03): claim renderer facade seam
Work-Package: M03-RND-FACADE-001
Agent: sindo-main-codex
Tests: not run (coordination-only commit)
Fidelity: no runtime change
2026-07-15 23:43:50 +04:00

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 TerrainQuery gameplay 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_path owned 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 StreamingFocus and merged M02 closeout on master 4f566b1
  • 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: