Ghostlight/docs/architecture
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Meta Vens b3963f911d Run elaboration sessions concurrently over a per-sweep claim set (L1 Cut 4)
Rulings L1-Q4 (revised) and L1-Q9 (A).

Library (elaboration.rs):
- The sequential per-jurisdiction loop and step(jurisdiction) are deleted.
  ElaborationOutcome loses Clean and Inactive, which nothing produces now.
- sweep(permits) takes one snapshot and returns Ok unless the world is
  Active. It reads the store's in-flight listing once, builds the claim set,
  and spawns one step_session per entry into a JoinSet. Each session holds a
  permit from the caller's pool for its whole step.
- Every spawned session finishes before sweep returns. A quarantine-class
  error is returned after that, and no session starts after one has returned
  such an error. The sequential loop's early return also started no further
  session. Any other error is logged at debug.
- demand_entries is the claim set. For each swept jurisdiction it takes
  every covered boundary in derivation order, then the deficit if nonzero.
  Each entry is matched against the listing by world, jurisdiction and
  answer before anything is drawn. A match adopts the row's session and
  command id; if several match, the oldest is adopted and the rest are
  logged as orphans. An unmatched entry derives its id and draws its lens
  (fresh_session). An answer is claimed once, and so is a command id.
- step_session(command_id, session, snapshot) is the old step body. Its
  lookup and Cut 3's adoption rule are unchanged.
- step_in(jurisdiction), test-only, steps the first entry of one
  jurisdiction's claim set, so the Cut 3 tests keep reading one session's
  outcome.

Store: the listing now returns only ElaboratorInFlight rows. A committed
session ends in ReadyToSubmit, so listing that stage adopted a committed
deficit row, and every later sweep resubmitted it (AlreadyApplied) instead
of opening the next deficit session. That departs from the map's listing
contract.

Dungeon: elaborate_world and the ignored road test pass
state.elaboration_permits to sweep. The driver doc states that sweeps never
overlap.

Tests: 12 library tests.
- Concurrency: distinct_entries_run_at_once_under_the_ceiling,
  the_sweep_never_exceeds_its_ceiling, a_sweep_holds_a_permit_while_it_infers,
  one_answer_is_one_session_per_sweep.
- Claim set: a_boundary_under_nested_roots_is_claimed_once,
  a_deficit_entry_is_one_per_jurisdiction_per_ancestry.
- Errors: a_retryable_fault_ends_only_its_own_session,
  a_quarantine_error_is_returned_after_every_session_finishes.
- Rediscovery: a_stranded_deficit_session_is_adopted_with_its_refusal_intact,
  a_boundary_session_is_repaired_after_a_commit_and_a_tick,
  the_store_gains_no_orphan_per_commit, a_row_for_another_answer_is_not_adopted.

Dungeon adds saturating_one_pool_never_delays_the_other. The dead-end
fixture can now declare its commons (or commons and a ward) as a
jurisdiction root, with a subject that holds a goal, because a sweep visits
only jurisdictions that have a deficit row. The Cut 3 tests call step_in.

Docs: ghostlight-world-ontology.md states the concurrent sweep as the
shipped rule.

Counts: library 456 + 1 ignored, Dungeon 53 + 1 ignored. This commit
builds.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-16 17:44:04 +02:00
..
aetheria-agent-population-model.md Retarget Ghostlight toward Call of the Void authoring 2026-05-01 18:36:27 +01:00
aetheria-content-generation-targets.md Add Aetheria tonal range doctrine 2026-05-03 09:12:09 +01:00
aetheria-lore-grounding-architecture.md Clean documentation status drift 2026-05-02 23:51:58 +01:00
aetheria-persistent-agent-architecture.md Retarget Ghostlight toward Call of the Void authoring 2026-05-01 18:36:27 +01:00
agent-state-distributions-and-prompt-projection.md Tighten agent state schema from evaluation 2026-05-01 20:57:34 +01:00
agent-state-variable-glossary.md Tighten agent state schema from evaluation 2026-05-01 20:57:34 +01:00
canonical-agent-state-schema.md Tighten agent state schema from evaluation 2026-05-01 20:57:34 +01:00
corpus-coverage-ledger.md Mark Pallas fixture as reference only 2026-05-04 14:06:01 +01:00
cultnet-shared-agent-state-contract.md Name CultLib as the home of the TypeScript CultNet client 2026-09-13 16:47:39 +02:00
delvehold-forced-ontology-integration.md Njordr owns the economy whole, Delvehold interior included 2026-09-11 15:54:23 +02:00
gamecult-economy-daemon.md Point the economy spec at GameCult/Njordr 2026-09-11 18:29:10 +02:00
ghostlight-dungeon-multiplayer-intention.md Record the seed producer and close its Soul follow-ups 2026-09-05 18:32:20 +02:00
ghostlight-dungeon-mvp.md Split Dungeon's controller pool into simulation and elaboration (L1 Cut 4) 2026-09-16 17:09:43 +02:00
ghostlight-dungeon-session-zero.md Open plan step 8, the seed producer 2026-09-05 16:29:04 +02:00
ghostlight-eve-native-interface.md Record the seed producer and close its Soul follow-ups 2026-09-05 18:32:20 +02:00
ghostlight-library-extraction-cut.md Close L0: postmortem, ledger, target and state reconciled 2026-09-16 12:24:49 +02:00
ghostlight-library-extraction-postmortem.md Close L0: postmortem, ledger, target and state reconciled 2026-09-16 12:24:49 +02:00
ghostlight-library-extraction.md Close L0: postmortem, ledger, target and state reconciled 2026-09-16 12:24:49 +02:00
ghostlight-multiresolution-agency.md Restore the scale target as design, not load fixture 2026-09-04 16:14:44 +02:00
ghostlight-session-zero.md Give the world library a sealed public boundary 2026-09-16 02:06:07 +02:00
ghostlight-stock-lenses-cut.md Record the Cut 3 test-only fix batch 2026-09-16 16:59:42 +02:00
ghostlight-stock-lenses.md Write the stock lenses target (plan step 15, L1) 2026-09-16 12:45:03 +02:00
ghostlight-transition-algebra.md Design the elaboration ontology 2026-09-04 15:39:17 +02:00
ghostlight-world-consumer-api.md Name consumer.v5 and world_create.v4 in the world docs (L1 Cut 2) 2026-09-16 15:00:45 +02:00
ghostlight-world-ontology.md Run elaboration sessions concurrently over a per-sweep claim set (L1 Cut 4) 2026-09-16 17:44:04 +02:00
illustrated-if-visual-pipeline.md Document illustrated IF scene-set pipeline 2026-05-04 12:23:41 +01:00
ink-branching-scenes.md Prune obsolete prototype fixtures 2026-05-04 13:33:18 +01:00
lore-grounding-digest-format.md Add lore grounding digest seam 2026-05-01 21:39:00 +01:00
persistence-spine.md Replace vendor/cultcache-py submodule with published PyPI dependency 2026-09-13 16:08:19 +02:00
projected-local-context.md Model character cognition separately from system intelligence 2026-05-04 19:45:00 +01:00
projection-distillation-plan.md Clean documentation status drift 2026-05-02 23:51:58 +01:00
prompt-projection-contract.md Prune obsolete prototype fixtures 2026-05-04 13:33:18 +01:00
sandboxed-responder-packets.md Prune obsolete prototype fixtures 2026-05-04 13:33:18 +01:00
schema-future-mechanisms.md Document source-first Aetheria generation doctrine 2026-05-02 04:30:17 +01:00
sequential-agent-runtime.md Add initiative scheduler artifact seam 2026-05-04 23:58:07 +01:00
soft-model-training-artifacts.md Model character cognition separately from system intelligence 2026-05-04 19:45:00 +01:00
technology-item-manifest-plan.md Document colony trade goods in item manifests 2026-05-02 11:51:10 +01:00
training-plan.md Prune obsolete prototype fixtures 2026-05-04 13:33:18 +01:00
voidbot-routine-adoption-plan.md Plan VoidBot routine for cast swarm 2026-05-06 03:31:46 +01:00