Commit graph Ghostlight/vendor
Author SHA1 Message Date
Meta Vens
22937b71f0 Replace vendor/cultcache-py submodule with published PyPI dependency
CultLib's packages/cultcache-py is now published as cultcache-py==0.2.0 on
PyPI (MIT), so the standalone GameCult/cultcache-py fork that Ghostlight
vendored as a submodule is retired. Symbol-for-symbol and on-disk-format
verification against the pinned submodule commit 9b4bbb8 found no
incompatibility: every symbol tools/ghostlight_state_store.py imports
(CultCache, JsonLinesBackingStore, define_document_type) and every method it
calls kept its signature, and JsonLinesBackingStore's on-disk JSONL envelope
fields and sort order are unchanged, confirmed by a real round-trip against
Ghostlight's production state/ghostlight-state.cultcache.jsonl.

tools/ghostlight_state_store.py no longer pushes vendor/cultcache-py/src onto
sys.path; it imports cultcache_py directly. Since Ghostlight's session
bootstrap previously depended on the submodule needing no install step,
tools/requirements.txt now pins cultcache-py==0.2.0 and npm run
state:bootstrap (pip install -r tools/requirements.txt, idempotent) runs as a
pre-hook ahead of state:status and state:prepare-compaction; AGENTS.md's
Session Bootstrap protocol and Useful Commands section call it out explicitly
for the direct ghostlight_state.py CLI invocations that don't go through npm.

Verified for real: `python tools/ghostlight_state.py status` and `python
tools/ghostlight_prepare_compaction.py`, run from a venv with cultcache-py
installed from PyPI, against Ghostlight's actual production state file (22 ok
findings, 2 pre-existing unrelated warnings, exit 0 both times).

Idunn's deployment/idunn/recipe.toml never declared vendor/cultcache-py in
required_gitlinks (only vendor/eve) and its build/test/service steps never
touch Python state tooling, so no recipe change is needed for admission.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-13 16:08:19 +02:00
Meta Vens
d0510ac85b Consume the core stack from CultLib instead of forking it
vendor/README.md declared cultcache-rs, cultnet-rs and cultmesh-rs "a locally
owned compatible protocol generation". That charter is the defect. A consumer
holding its own generation of the wire stack sits outside the only harness that
checks cross-runtime agreement, and the fork behaved exactly as that predicts:
runtime_authority_contracts.rs drifted to e542225 while this repo's own
authority map named f4ab237, and the Rust CultMesh implementation existed
nowhere else in GameCult.

All three now come from CultLib pinned at 85f7024, and 19,604 lines of forked
substrate are deleted. Nothing was lost on the way out. The vendored cultnet
tree was compared file by file against CultLib: ten of twelve matched, lib.rs
differed only in module declarations, and transport.rs carried one guard that
existed nowhere else -- a framed length checked against the advertised maximum
before allocating. That guard is now CultLib 85f7024 with a test.

The migration this was expected to need does not exist. RuntimePresenceCorrelation
changing from enum to struct is Odin's side of the contract and no file here
touches it; with line endings normalised the two contract copies differ by 132
lines, and the only production change that reaches a provider is
IdunnExpectedRoute requiring rudp:// schemes for rudp transport, which this
service does not use. The code compiles unchanged.

89 tests pass across the workspace against the pinned rev.

vendor/ still holds the cultcache-py and eve submodules. cultcache-py is the
same pattern -- a runtime-specific repo CultLib also carries as
packages/cultcache-py -- but it backs the state tooling rather than the
daemon, so it is left for its own change.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-04 01:13:24 +02:00
Meta Vens
13d5136b69 Unify Ghostlight persistence under one CultCache 2026-09-02 15:00:48 +02:00
Meta Vens
6bb6869810 Rebuild Ghostlight around explicit world authority 2026-09-02 07:21:11 +02:00
Meta Vens
d97107df35 Separate RUDP reliable and lossy sequence domains 2026-08-26 17:17:32 +02:00
Meta Vens
d4b9ced9e6 Separate strategic means from restraint 2026-08-26 10:35:05 +02:00
Meta Vens
e17b9d01f0 Normalize inactive outcomes and trace native delivery 2026-08-26 10:23:08 +02:00
Meta Vens
93c3a09cd0 Expose exact campaign exports through Eve 2026-08-25 18:01:04 +02:00
Meta Vens
2e5ad82325 Route inference through Epiphany connector 2026-08-24 02:28:03 +02:00
Meta Vens
7522ea8405 Repair large CultMesh RUDP publication 2026-08-23 19:21:59 +02:00
Meta Vens
855d6be8fc Keep model diagnostics private in Eve play 2026-08-23 11:10:54 +02:00
Meta Vens
502384f366 Pin Eve transient command routing repair 2026-08-23 01:30:02 +02:00
Meta Vens
c52c7a96b1 Keep optional openings out of compilation readiness 2026-08-22 21:19:15 +02:00
Meta Vens
59ebb9dd0b Pin Eve draft preservation fix 2026-08-22 19:14:27 +02:00
Meta Vens
8cad6b937d Preserve Session Zero context across Eve channels 2026-08-22 12:42:28 +02:00
Meta Vens
b06d2a72d7 Harden Eve input and OpenRouter structured turns 2026-08-22 12:25:53 +02:00
Meta Vens
172ac0db55 Lower Ghostlight as one Eve-native surface 2026-08-22 02:05:01 +02:00
Meta Vens
33f2132cd3 Refresh CultNet operation service substrate 2026-08-22 02:04:51 +02:00
Meta Vens
f12de09d00 Add Yggdrasil runtime and signed health support 2026-08-21 20:15:21 +02:00
Meta Vens
b76bb5a893 Require Odin to acknowledge RUDP publication 2026-08-18 22:39:49 +02:00
Meta Vens
e24c953e76 Decouple Odin replication from daemon liveness 2026-08-18 22:34:41 +02:00
Meta Vens
12033fd3b4 Unify CultNet media channel policy 2026-08-16 23:11:33 +02:00
Meta Vens
a80a269f4b Publish Ghostlight state through CultMesh 2026-08-16 21:22:24 +02:00
Meta Vens
6f51f3a4a3 Build GhostlightDungeon kernel and private Eve harness 2026-08-16 16:35:50 +02:00
Meta Vens
f4e277ef74 Update cultcache-py wire contract 2026-05-06 04:57:33 +01:00
Meta Vens
2531b42ea7 Migrate state spine toward cultcache-py 2026-05-06 04:48:21 +01:00