2026-07-12 20:52:43 +01:00
|
|
|
# CultMesh And Eve Getting Started
|
|
|
|
|
|
|
|
|
|
This series builds one typed application state and presents it through multiple
|
|
|
|
|
Eve runtimes. It is maintained as an API acceptance test: examples use public
|
|
|
|
|
APIs, name the owner of each decision, and include a verification checkpoint.
|
|
|
|
|
|
2026-08-18 17:39:59 +02:00
|
|
|
Application consumers install released packages and do not need the source
|
|
|
|
|
repositories. This checkout also contains a maintainer checkpoint that creates
|
|
|
|
|
the same clean consumers from local package artifacts:
|
2026-08-17 23:18:15 +02:00
|
|
|
|
|
|
|
|
```powershell
|
2026-08-18 03:17:52 +02:00
|
|
|
pwsh -File ./scripts/verify-eve-getting-started.ps1
|
2026-08-17 23:18:15 +02:00
|
|
|
```
|
|
|
|
|
|
2026-08-18 17:39:59 +02:00
|
|
|
The maintainer command takes an explicit `-EveRoot` when Eve is not a sibling:
|
|
|
|
|
|
|
|
|
|
```powershell
|
|
|
|
|
pwsh -File ./scripts/verify-eve-getting-started.ps1 -EveRoot D:\src\Eve
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
It installs missing build dependencies and runs three explicit evidence layers.
|
|
|
|
|
First it packs the
|
2026-08-18 06:33:40 +02:00
|
|
|
CultLib managed dependency closure plus `GameCult.Eve.Surface`, then restores
|
|
|
|
|
and runs an empty .NET consumer using only `PackageReference`. Next it packs the five
|
|
|
|
|
TypeScript packages into another empty temporary consumer, validates the Eve surface
|
2026-08-18 03:17:52 +02:00
|
|
|
and receipt, executes one idempotent counter command, proves a DOM lowerer and
|
|
|
|
|
headless observer converge, and reopens the durable `.cc` store. Then it boots a
|
|
|
|
|
durable C# provider, local Odin fixture, real Chromium lowerer, and independent
|
2026-08-18 03:49:33 +02:00
|
|
|
C# client. Chromium invokes before provider replacement; C# invokes afterward.
|
|
|
|
|
Both retained clients prove discovery by identity, canonical receipts, provider
|
2026-08-18 17:39:59 +02:00
|
|
|
restart on another route, rejection of a better-priority wrong-authority route,
|
|
|
|
|
resubscription, and durable convergence. The retained
|
2026-08-18 03:56:24 +02:00
|
|
|
C# session also completes 10,000 non-persistent typed operations under p99 and
|
|
|
|
|
post-GC managed-memory gates.
|
2026-08-18 03:17:52 +02:00
|
|
|
Set `CHROME_PATH` only when no installed Chrome, Chromium, Edge, or Playwright
|
|
|
|
|
Chromium can be found automatically.
|
2026-08-17 23:18:15 +02:00
|
|
|
|
2026-07-12 20:52:43 +01:00
|
|
|
Follow the chapters in order:
|
|
|
|
|
|
|
|
|
|
1. [Persist typed application state](01-persist-typed-state.md)
|
|
|
|
|
2. [Connect a client by stable identity](02-connect-by-identity.md)
|
|
|
|
|
3. [Publish one Eve surface to multiple runtimes](03-publish-an-eve-surface.md)
|
2026-08-18 06:05:15 +02:00
|
|
|
4. [Run the multi-runtime game](04-run-the-multiruntime-game.md)
|
2026-07-12 20:52:43 +01:00
|
|
|
|
|
|
|
|
The intended application shape is small:
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
provider daemon -> typed CultCache documents -> CultMesh advertisement
|
|
|
|
|
|
|
|
|
|
|
+------------------------+--------------------+
|
|
|
|
|
| | |
|
|
|
|
|
Eve browser EveUnity another lowerer
|
2026-08-18 06:05:15 +02:00
|
|
|
| | |
|
|
|
|
|
player input player input headless / AI
|
2026-07-12 20:52:43 +01:00
|
|
|
```
|
|
|
|
|
|
|
|
|
|
The provider owns live truth. Eve owns the surface contract. Each runtime owns
|
|
|
|
|
native projection. CultMesh owns discovery and connection continuity.
|
|
|
|
|
|
|
|
|
|
## Maintenance Contract
|
|
|
|
|
|
|
|
|
|
- A chapter must not tell an application to choose physical endpoints, build a
|
|
|
|
|
reconnect loop, or duplicate provider state.
|
|
|
|
|
- Code must compile against the package version named by the release that
|
|
|
|
|
publishes it.
|
|
|
|
|
- Every release changing a demonstrated API must update this series in the same
|
|
|
|
|
pull request.
|
|
|
|
|
- A setup step that depends on repository internals is an API defect, not
|
|
|
|
|
acceptable tutorial folklore.
|
2026-08-18 17:39:59 +02:00
|
|
|
- The maintainer command may read owner checkouts to create packages. Every
|
|
|
|
|
sample process it launches must consume those package artifacts rather than
|
|
|
|
|
compiling through sibling project references.
|