3.1 KiB
Eve Parity Testing Harness
The parity harness is the shared evidence path for Eve runtimes. It does not try to prove byte-identical pixels. It proves that every runtime is aiming at the same provider-owned CultUI surface: same fixture, same retained tree, same style-token expectations, same control anatomy, and explicit capture gaps.
Authority
tools/parity/parity-manifest.jsonowns the fixture matrix, runtime list, and expectations.tools/parity/run-parity.mjsowns semantic fixture checks and report generation.- Runtime capture adapters own screenshots or frame capture for their platform.
artifacts/parity/latest.mdandartifacts/parity/latest.jsonare reports, not source truth.
The manifest is the cut line. If a fixture or runtime is not in the manifest, it is not part of the parity claim.
Run
Semantic checks:
powershell -ExecutionPolicy Bypass -File .\scripts\run-parity-harness.ps1
Hard screenshot smoke:
powershell -ExecutionPolicy Bypass -File .\scripts\run-parity-smoke.ps1
The semantic runner writes:
artifacts/parity/latest.mdartifacts/parity/latest.jsonartifacts/parity/<timestamp>/parity-report.mdartifacts/parity/<timestamp>/parity-report.json
The smoke runner writes:
artifacts/parity-smoke/<timestamp>/parity-smoke.mdartifacts/parity-smoke/<timestamp>/parity-smoke.json- one PNG per target that has a real capture body.
Current Checks
The first pass is semantic and fixture-driven:
- compile local CultUI
.evefixtures; - load local JSON surface fixtures;
- check provider id;
- check required component kinds;
- check minimum component counts where useful;
- check required style tokens;
- check required bindings;
- check retained slider skins and control parts.
This already catches the most embarrassing class of parity lie: a runtime or fixture claiming to render CultUI while the retained tree no longer contains the partitions, bindings, tokens, or slider anatomy the renderer is supposed to lower.
Runtime Status
The harness tracks every target runtime:
- Web reference: active semantic and screenshot target through Chrome headless.
- iOS / UIKit: screenshot target through SSH and EveCanvas'
/var/mobile/Library/EveCanvas/capture-requestservice. - Android / Kotlin: screenshot target through
adb install, activity launch, andadb exec-out screencap. - Windows / Flutter: screenshot target through the Flutter parity golden smoke.
- Linux / Flutter: requires a Linux runner. A Windows host must fail this target instead of pretending to be Linux.
- Fensalir Direct2D: specialized native target, adapter/capture still missing.
Pending runtimes are allowed. Silent fake parity is not.
Next Cuts
- Move the Flutter parity renderer from hardcoded inspector anatomy to the
compiled
gamecult.eve.surface.v1fixture. - Wire iOS and Android capture to select a manifest fixture before capture, instead of only launching the current app body.
- Add a Linux runner or WSL/Linux desktop capture body for Flutter.
- Add Direct2D frame capture once the Eve-to-
AquariumUiDocumentadapter exists.