Runtime Evidence & 2D/3D Parity Chain (#2469)
Date: 2026-08-11 Scope: CloudCraft integration #2469 — prove runtime evidence and 2D/3D parity for integrated slices.1. Evidence chain
The minimal evidence chain: Unit → Guard → Build → Browser → Snapshot/Hash-Readback.
Rule: Build-only success is NOT runtime success. A green build does not prove the overlay renders or the snapshot is consumed.
2. Evidence captured for CloudCraft slices
Slice #2465 (2D truth path)
Slice #2464 (3D parity)
Slice #2466 (chunk/Kappa contract)
Slice #2468 (donor license safety)
3. Readback points (revision, snapshot, hash)
Evidence must reference the exact tested stand. The
revisionHash readback proves the snapshot consumed is the server-authoritative one, not a fabricated local copy.
4. 2D/3D parity contract
Both renderers must satisfyOverlayRendererParityContract:
consumesWorldOverlayModel: true— both consume the shared model.truthSource: "server-snapshot"— truth comes from the server, not invented locally.derivesFromDerivation: true— both usederiveWorldOverlayModelFromSnapshot().displayMayDiffer: true— 2D iso and 3D top-down may render differently.
verifyParity(client2d, client3d) passes when both contracts are satisfied. The expected contracts are in EXPECTED_PARITY_CONTRACTS.
5. What counts as build-only (NOT runtime success)
buildEvidenceChain() reports build-only if no runtime layer (browser, snapshot-hash-readback) has passed. It reports pass only when a runtime layer passes.
6. Acceptance criteria
7. Remaining runtime evidence (pending)
The following requires a running dev server + browser session and is tracked for follow-up:- 2D minimap overlay marker rendering screenshot
- 3D minimap overlay marker rendering screenshot
/api/gameplay/snapshotrevisionHash readback against the running server- 2D/3D side-by-side parity screenshot showing same POI/resource facts
buildEvidenceChain, verifyParity) is in place to record them once a browser session is available.
This evidence chain was created by an AI agent (OpenHands) on behalf of the user.