Commit graph CultLib/README.md
Author SHA1 Message Date
Meta Vens
96ee5fdce3 Delete the CultCache MessagePack source generator
The reflective CultDocumentRegistry is now the only descriptor authority,
and payloads always go through MessagePackSerializer with
OptionsFor(document assembly). No consumer builds AOT, IL2CPP or trimmed,
Unity always ran the reflective path, and no benchmark showed a gain,
while the generator duplicated the registry's shape rules.

Removed: GameCult.Caching.MessagePack.Generator and .Analyzers (solution,
project and analyzer references, NuGet pack list), CultGeneratedDocumentMetadata
(provider attribute, interface, definitions, loader), the generated descriptor
and codec branches in CultCache and CultDocumentMessagePackSerialization,
DocumentShapeSweepTests and the generator half of the unkeyed test, the
Microsoft.CodeAnalysis.CSharp test reference and InternalsVisibleTo.

The registry rejects, with a message naming the fix, what MessagePackSerializer
cannot serialize and what the generator used to paper over: a document without
[MessagePackObject], a non-public document without AllowPrivate = true, and a
non-public member of an AllowPrivate document that is not [IgnoreMember].
DocumentShapeTests pins every rejection message and the accepted shapes'
round trips against MessagePackSerializer bytes (keeps the 93A16E0305 pin).
Rejected shapes are emitted into a dynamic assembly, which registry
discovery skips.

Nested member type names use reflection's Outer+Inner form, not the
generator's dot form, so ReferenceHolderEntry's fixture id is re-pinned
(bd8506... -> 4ec0c5...). A scan of the schema catalogs in all 2786 .cc
stores under F:\Projects (AetheriaEve and CultLib-* worktrees, bin and obj
excluded) found no member type name naming a nested type in either form.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-13 23:38:08 +02:00
Meta Vens
486fe560af Correct stale store-routing, SoA, and generator docs
The README and the Rust README described mirrors as C# behavior; the parity
scope claimed the C# SoA table; the generator README described DatabaseEntry
formatters that no longer exist.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-13 16:01:32 +02:00
Meta Vens
95493862bd Split the Python runtime into cultcache-py, cultnet-py, cultmesh-py
One distribution named cultcache-py carried three libraries. Rust and
TypeScript layer them as cultcache < cultnet < cultmesh; Python now does
the same, one package per layer, module names unchanged so every
`from cultmesh_py import ...` keeps working.

Two imports ran against that layering and are resolved by moving code to
where the dependency direction says it lives, not by adding a shim:

- cultnet_py.interop_peer imported the Verse/peer catalog, authority
  lease, stream, and simulation-fact contracts from cultmesh_py. They are
  wire contracts a bare peer has to speak without owning a node, which is
  why cultnet-rs and cultnet-ts keep them in the net layer. They now live
  in cultnet_py.cultmesh_contracts; cultmesh_py re-exports them.
- cultcache_py.benchmark imported cultnet_py. It measures framed CultNet
  parse beside cache paths, so it and compare_csharp move to cultnet_py.
  verify checks all three packages and moves to cultmesh_py.

The single 6,693-line test module is split by what each test touches: a
test using any cultmesh_py name lands in cultmesh-py, else cultnet_py in
cultnet-py, else cultcache-py. Each suite runs with only its layer and the
layers below on the path, so a test that reaches up fails to import
rather than quietly binding the packages back together. 11 / 53 / 78 =
the same 142.

Workflows install all three; the publish job is one matrix over the
three packages keyed by tag prefix. The TS test harnesses put all three
src directories on PYTHONPATH. cultcache-py bumps to 0.2.0 because it no
longer contains cultnet_py or cultmesh_py; the new packages start at
0.1.0. Nothing was ever published, so no PyPI consumer moves.

  cultcache-py  11 tests, path: cultcache-py/src
  cultnet-py    53 tests, path: + cultnet-py/src
  cultmesh-py   78 tests, path: + cultmesh-py/src
  python -m cultmesh_py.verify -> ok, all five checks
  cultnet_py.interop_peer imports with cultmesh_py absent

Not run here: the cultnet-ts interop ring and cultcache-ts store matrix
need dotnet/kotlin peers; their PYTHONPATH change is four lines.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-10 13:10:47 +02:00
Meta Vens
ea88cfcd05 Move CultMath into the CultLib monorepo 2026-08-26 17:35:51 +02:00
Meta Vens
35d31ae908 Support mapped frame bodies on Unix 2026-08-18 04:18:46 +02:00
Meta Vens
f65352fa73 Measure mapped hot-body copy cost 2026-08-18 04:03:06 +02:00
Meta Vens
3c19e54d91 Make Eve onboarding one executable path 2026-08-18 03:17:52 +02:00
Meta Vens
8eb89e38ec Add real browser CultMesh transport proof 2026-08-18 00:05:57 +02:00
Meta Vens
3fe2e9be1b Publish browser subscription wire contracts 2026-08-17 23:26:51 +02:00
Meta Vens
54e4eacd13 Validate Eve getting-started contracts 2026-08-17 23:18:15 +02:00
Meta Vens
9a5597d233 Add precompiled CultMath Unity package 2026-07-22 04:52:09 +01:00
Meta Vens
6a162606e4 Transfer planetary geometry to GameCult.Geometry 2026-07-22 03:47:38 +01:00
Meta Vens
102403efac Complete portable planetary presentation contracts 2026-07-13 02:52:13 +01:00
Meta Vens
42fef7cdd7 Build portable planetary field runtime 2026-07-13 02:14:11 +01:00
Meta Vens
430cbc9695 Add faithful advanced erosion filter core 2026-07-12 19:49:33 +01:00
Meta Vens
deb6c674fa Document daemon-published UI surfaces 2026-06-21 17:12:57 +01:00
Meta Vens
d85f3fd32a Document CultLib substrate and schema server port 2026-06-21 16:31:50 +01:00
Meta Vens
26d9996d7b Add SIMD SoA batch math kernels 2026-06-17 02:53:02 +01:00
Meta Vens
a1ef58cb2d Add Python CultCache wire parity package 2026-06-13 20:35:58 +01:00
Meta Vens
788a75dba5 Add SPIR-V to Metal tooling 2026-06-11 06:57:22 +01:00
Meta Vens
2c9f81fbf1 Add HLSL SPIR-V tool scripts 2026-06-10 21:30:49 +01:00
Meta Vens
f535801cd0 Promote shader math primitives 2026-06-10 21:22:43 +01:00
Meta Vens
bfe356fe92 Add Rust-backed Voronoi batch kernel 2026-06-03 02:58:56 +01:00
Meta Vens
f7182159b4 Add C# CultMesh streaming surface 2026-06-02 01:13:08 +01:00
Meta Vens
67d3bf3dcf Add CultMesh streaming mode surface 2026-06-02 00:57:07 +01:00
Meta Vens
2b9067cf10 Document CultLib language workspaces 2026-05-30 00:41:19 +01:00
Meta Vens
d8d0c4c8a0 Document geometry state over CultMesh 2026-05-29 23:49:14 +01:00
Meta Vens
69ac7b5b4b Add CultCache geometry documents 2026-05-29 23:25:36 +01:00
Meta Vens
3f5b0b04e4 Add durable CultMesh quickstart witness 2026-05-21 00:00:15 +01:00
Meta Vens
ebdd2272f4 Add typed document entry-path docs 2026-05-20 21:27:33 +01:00
Meta Vens
4927303fbb Add package chooser to root README 2026-05-20 16:08:22 +01:00
Meta Vens
d73c3d26e8 Add GameCult Mesh package home 2026-05-19 19:08:48 +01:00
Meta Vens
38b79a8d89 Seed HLSL-shaped math library 2026-05-08 01:49:44 +01:00
Meta Vens
bb7605d1af Update README.md 2026-04-18 13:12:56 +01:00
Meta Vens
0bfc85a4f2 JSON backing store, I/O fixes, Networking Security
Introduced Newtonsoft.Json-backed persistence.
Improved backing-store reliability and serialization across the caching stack.
Improved networking security posture.

Key changes:
- Add new GameCult.Caching.NewtonsoftJson project with SingleFile/MultiFile backing stores and polymorphic known-type envelopes.
- Add MessagePack helper serialization (DatabaseEntrySerialization) and update MessagePack backing stores to use the shared options/resolver; add DatabaseLink formatter and generator/analyzer docs.
- Update CultLib.sln to include the new projects and new caching tests project.
- Improve CultCache persistence behavior: track pending store operations, wait for operations on PullAll, and centralize async push handling with error logging.
- Harden file I/O in multi-file/single-file stores: atomic temp-file writes, safe Replace/Move semantics, rename-safe deletes, and improved file-watcher subscription and debounce disposal.
- Add README files and documentation for several subprojects and packaging projects.

These changes add JSON persistence support, improve serialization consistency, and make on-disk operations more robust and observable.
2026-04-18 13:01:24 +01:00
Meta Vens
137cb2ce13 Initial commit 2026-04-18 06:04:39 +01:00