Files
open-wc/targets/01-coordinates-and-seams.md
sindoring dd412e6d0d test(M01): close coordinates and seams milestone
Work-Package: M01-QAR-INTEGRATOR-CLOSEOUT-001

Agent: sindo-main-codex

Tests: all M01 domain gates, unified renderer dry-run, coordination and documentation gates

Fidelity: five build-12340 points, raw ADT and mapped AzerothCore spawn evidence; no 1:1 claim
2026-07-14 12:13:43 +04:00

3.6 KiB

M01 — Coordinates and Architecture Seams

Outcome

Ввести независимые от scene tree типы координат, identity и streaming focus.

Steps

  • Создать domain/value-object слой без Node/Resource dependencies.
  • Определить canonical WoW, Godot, ADT tile/chunk и local coordinate types.
  • Реализовать единственный CoordinateMapper для position и orientation.
  • Собрать golden points из ADT, server spawn и оригинального клиента.
  • Ввести StreamingFocus вместо неявной зависимости от active Camera3D.
  • Ввести stable ContentId, EntityId и отличить их от WoW GUID/server entry.
  • Запретить ручные axis conversion через code review rule/test search.

Verification

  • Unit round-trip и boundary tests для всех coordinate spaces.
  • Golden server spawn отображается в ожидаемой точке renderer.
  • Existing render checkpoints не ухудшились.

Exit criteria

Renderer/test scene получают focus через контракт; координаты конвертируются централизованно; domain tests работают headless без сцены.

Evidence

  • Date: 2026-07-14
  • Revision/worktree: merged master c8e99f2; closeout work/sindo-main-codex/m01-integrator-closeout
  • Commands: tools/run_render_baseline.ps1 -DryRun -WaitSeconds 0.1 -MeasureSeconds 0.1; verify_coordinate_mapper.gd; verify_coordinate_golden_fixtures.gd; verify_streaming_focus.gd; verify_domain_identities.gd; coordination/documentation/diff gates.
  • Results: CoordinateMapper PASS (5 golden points, 8 tile boundaries, 2 raw MCNK, 5 yaw); golden fixtures PASS (1 server spawn, 1 raw ADT, 5 original-client points); StreamingFocus PASS (1 contract, 2 runtime scenes, 3 capture tools); identities PASS (5/5/6/5); conversion boundary PASS (84 files, one native boundary, one oracle, four consumers, six classifiers); server-spawn renderer PASS at ADT (32,48), MCNK (3,12); renderer manifest PASS (7/7/7) and calibration maximum error 0.000015.
  • Fidelity comparison: five build-12340 camera observations, pinned AzerothCore Human Warrior spawn and private raw ADT metadata agree through coordinate contract version 2. Cache-complete cold/warm GUI capture places the mapped spawn marker on rendered Northshire terrain with focus (32,48), quality 100/100, missing cache 0; PNG SHA-256 values are recorded in the server spawn handoff. The final ADT-boundary regression passed 2/2; the full M01 regression captured 14/14, with 11 strict passes and three low-mean timing/animation-phase differences rather than coordinate drift.
  • Changed files: src/domain/coordinates/, src/domain/identity/, src/domain/streaming/, migrated sky/player/streaming/terrain consumers, coordinate/renderer fixtures and tools, runtime scenes, ADR 0001/0002, coordinate/domain/renderer module specs, coding/render documentation and M01 coordination claims.
  • Remaining risks: TrinityCore populated spawn equivalence is not verified; native parser conversion remains one separately calibrated boundary; MDDF/ MODF placement Euler parity is outside world-yaw scope; renderer visual parity gaps and the known anonymous ObjectDB teardown warning continue. No 1:1 compatibility claim is made by M01.