Record live Unity gameplay evidence

This commit is contained in:
Meta Vens 2026-07-10 05:05:28 +01:00
commit 054d3d47b3

View file

@ -1288,12 +1288,12 @@ Recently cut:
## Live Unity Gameplay Gate
The extracted EveUnity package currently proves provider-agnostic lowering in
EditMode and inside Aetheria's Unity consumer project. It does not yet prove a
standalone generic Unity client connected to the running Aetheria daemon. The
existing `AetheriaEveUnitySceneProviderBridge` reads a local CultCache replica
and previously emitted immediate submission acknowledgements; neither is a
remote subscription or an authoritative daemon receipt.
The extracted EveUnity package now proves provider-agnostic lowering against a
separately running Aetheria daemon. `EveUnityCultMeshLiveProviderTransport`
knows only Eve core documents and CultLib: it discovers the provider
advertisement, fetches the advertised world surface, forwards command puts to
the provider primary, and reconciles provider receipts. Aetheria-specific DTOs,
record-key constants, and client bridges are absent from the runtime body.
Completion requires one EveUnity-owned PlayMode client and one separately
running Aetheria daemon to prove the whole path:
@ -1302,21 +1302,36 @@ running Aetheria daemon to prove the whole path:
2. Subscribe to the provider advertisement, `aetheria.daemon.game`, asset
manifest, and receipt records without importing Aetheria code into EveUnity.
3. Render the initial world in a minimal EveUnity-owned Unity project.
4. Submit movement and action intents through `gamecult.eve.command.v1`.
4. Submit movement and action intents through
`gamecult.eve.command_invocation.v1`.
5. Observe a separately published provider receipt and a later surface version.
6. Reconcile the Unity scene to that version without local simulation authority.
7. Capture PNG evidence for both Aetheria and the generic world-smoke provider.
The first transport foundation now lives in Aetheria's typed Unity state client:
`AetheriaRuntimeVerseClient.OpenRemoteAsync` creates a non-authoritative local
replica, synchronizes snapshots through CultMesh, and routes writes to the
daemon's primary shard. The local-file scene adapter is explicitly labeled
`aetheria-local-cultmesh-replica`; it must not satisfy the live gameplay gate.
Remote command reconciliation now consumes Aetheria's provider-owned
`gamecult.aetheria.committed_command_fact.v1` records. A command becomes
terminal only when a fact with the same command ID exists and the synchronized
game surface version is at least the fact's source frame. Submission
acknowledgements and aggregate status documents are not receipts.
Evidence on 2026-07-10:
- `E:\Projects\EveUnity\scripts\run-aetheria-daemon-world-witness.ps1`
starts an isolated Aetheria daemon, runs the EveUnity-owned PlayMode client,
and tears both bodies down.
- The client lowered `aetheria.game`, instantiated provider-authored entities,
submitted an idempotent move-vector invocation, received the separately
published reconciled receipt, observed a later surface version and visible
player displacement, and captured
`artifacts/aetheria-daemon/aetheria-daemon-world.png`.
- The same EveUnity project retains the non-Aetheria `eve.world-smoke` capture,
proving the runtime body is generic rather than an extracted Aetheria client.
- Aetheria no longer overrides `EveSurfaceDocument` metadata with its private
runtime surface serializer. Core surface wire fields use CultMesh transport
records; provider-private surface documents remain separate authority.
Remaining before this gate is complete:
- publish and consume Aetheria's asset manifest through a generic core boundary
so the clean client uses provider-authored assets rather than fallback
geometry;
- add one action/combat invocation witness alongside movement;
- attach both PNGs and receipt/version evidence to the exported conformance
pack rather than leaving them only in EveUnity's local artifacts.
## Stop Conditions