No description
  • Rust 98.4%
  • TypeScript 1.6%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-08-18 22:07:47 +02:00
crates Make auth transitions durable before authority changes 2026-08-18 22:02:32 +02:00
docs Prove high-risk outcome custody live 2026-08-18 19:32:55 +02:00
examples Add Corvid visual replay plan 2026-05-05 01:32:01 +01:00
experiments Add Corvid visual replay plan 2026-05-05 01:32:01 +01:00
notes Record deployed durable auth release 2026-08-18 22:07:47 +02:00
prompts Add BFL image batch runner 2026-05-05 01:49:45 +01:00
schemas Add initiative scheduler artifact seam 2026-05-04 23:58:07 +01:00
scripts Add BFL image batch runner 2026-05-05 01:49:45 +01:00
state Record deployed durable auth release 2026-08-18 22:07:47 +02:00
tools Separate gestalt budget from provider concurrency 2026-08-18 21:03:48 +02:00
vendor Unify CultNet media channel policy 2026-08-16 23:11:33 +02:00
web Harden browser and campaign lifecycle failures 2026-08-18 21:54:57 +02:00
.gitignore Build grounded world compiler flow 2026-08-16 20:12:53 +02:00
.gitmodules Build GhostlightDungeon kernel and private Eve harness 2026-08-16 16:35:50 +02:00
AGENTS.md Build grounded world compiler flow 2026-08-16 20:12:53 +02:00
Cargo.lock Extract Ghostlight Persona projection membrane 2026-08-16 21:45:50 +02:00
Cargo.toml Extract Ghostlight Persona projection membrane 2026-08-16 21:45:50 +02:00
package-lock.json Adopt Ink for branching scenes 2026-05-01 23:52:15 +01:00
package.json Build GhostlightDungeon kernel and private Eve harness 2026-08-16 16:35:50 +02:00
README.md Document multiplayer as a post-solo extension 2026-08-18 16:36:47 +02:00

Ghostlight

Ghostlight builds persistent generative people and worlds. Its active product is Ghostlight Dungeon: a Vault-grounded narrative simulation in which places, knowledge, relationships, institutions, clocks, and consequences survive beyond the model's current context.

The project began as a research and fixture pipeline for socially persistent Aetheria agents. That material remains useful regression evidence. The live machine is now a Rust runtime with typed campaign state, one canonical world authority, bounded Persona projection, fiction-first action resolution, and a multiresolution agency graph for keeping large settings active at finite cost.

What Ghostlight Owns

  • WorldKernel is the sole owner of committed campaign state and revisions.
  • Every player command, NPC action, strategic tick, wait, import, and reload enters the same validated campaign mailbox and atomic CultCache commit path.
  • Vault evidence grounds world compilation; branch-local invention remains distinct from canon.
  • Projector → Persona → Interpreter turns produce proposals. Models never commit world state.
  • Knowledge, perception, capability, location, custody, and authority are validated against the exact actor proposing an action.
  • Fiction-first d20 resolution treats player text as an attempt rather than an accomplished fact.
  • Multiresolution Gestalts keep people, institutions, and factions active under a bounded Persona-cell budget without merging rivals into one mind or erasing named individuals.
  • Away-time simulation advances clocks and remote agency without puppeting or directly harming an absent player character.
  • CultMesh publishes typed service and Eve/CultUI state; the browser lowers that surface and does not become a second state authority.

Current Status

Ghostlight Dungeon is implemented and deployed as a private Starfire-hosted playtest harness. The current acceptance surface covers:

  • source-grounded world compilation with approval previews;
  • persistent campaigns, forks, resets, exports, and isolated invite sessions;
  • parallel affected-character Projector/Persona/Interpreter waves;
  • impossible-action refusal, assessed stakes, server-side rolls, and receipted commits;
  • strategic clocks, away-time catch-up, institution activity, migration, and information-channel-aware news;
  • connected cohesive and arena simulation covers at budgets from 1 to 32;
  • Gestalt materialisation, folding, member deltas, migration, and later rematerialisation of the same person;
  • atomic rejection of malformed, stale, or semantically invalid model waves;
  • provider, token, cache, latency, validation, state-version, and build receipts;
  • exact-build deployment and restart verification on Starfire.

The immediate forge work is pressure-testing whether multiresolution Gestalts produce satisfying setting-wide activity, callbacks, and surprises per token, then running the two-tester paid-alpha path. The public site is provisional; checkout is not live.

Multiplayer Intention

The first paid alpha remains single-player. Multiplayer is an intended extension of the existing authority model, not a separate chat mode.

A campaign will continue to have one WorldKernel. Authenticated human sessions will control distinct canonical actors, and every human or Persona proposal will enter the same campaign mailbox. Each player receives a perception-specific narrative projection; private knowledge is never unioned into a party prompt. Splitting the party therefore changes occupancy and perception without creating contradictory copies of the world.

The durable intention and unresolved social-policy questions are recorded in docs/architecture/ghostlight-dungeon-multiplayer-intention.md. It does not expand the current MVP acceptance promise.

Architecture

The shortest reliable re-entry path is:

Repository Shape

  • crates/ghostlight-dungeon/: Rust daemon, kernel, compiler, persistence, provider stages, web lowerer, and acceptance harnesses;
  • crates/ghostlight-persona-projection/: generalized projection membrane owned by Ghostlight and consumed by Epiphany;
  • docs/architecture/: durable contracts and authority maps;
  • docs/articles/: accessible public explanations;
  • notes/: implementation planning, handoff, and current-system maps;
  • schemas/: published JSON Schemas for typed boundary documents;
  • examples/: earlier fixtures and regression material;
  • state/: human-readable project memory plus older research-pipeline state;
  • tools/: state, validation, and fixture helpers.

Runtime documents and campaign exports use MessagePack-backed CultCache .cc. JSON exists at schema publication, browser, MCP, model-provider, and diagnostic boundaries; it is not the canonical hosted state store.

Useful Commands

cargo test --workspace
npm run state:status
npm run state:prepare-compaction
npm run schema:validate

For Codex-driven work, read AGENTS.md before changing the repository. It owns the persistence, grounding, verification, and handoff discipline.