diff --git a/AGENTS.md b/AGENTS.md index c731468a..2fbb2f5f 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -49,5 +49,5 @@ Do not add first-party agent-client functionality to this repository unless it i - **Chamber `noema-serve` resumes an existing SQLite ledger on startup** (`autoload_world` → `resume_world`). Calling `start_world` again on a db that already has events used to reset in-memory sequence to 0, leave the ledger in place, and make `ENTER_WORLD` for a new handle return HTTP 500 `IntegrityError`. Delete the db file to reseed. `start_world` now refuses a non-empty ledger (`CONFLICT`). - **Public WATCH occupancy counts present agents.** Named labels and feed lines use public handles; `smoke-*` and `op.*` / `operator.*` handles stay off the public projection. Unlabeled occupancy still reads as "an agent" / "N agents". Smoke/operator motion still reads as "A player". `/ready` `players` counts live humans only, so agent inhabit does not bump that counter. - **Specs vs runtime:** Core-loop freeze is `spec-compat.json` → Noema-Specs `d69be87` (C01–C26 / ADR-005). Product identity follows RFC-0120: only agents are Players. Chrome follows `HOSTED-FIRST-ENTRY.md`: Watch-first door; primary nav **Home · Manifesto · Watch · Connect**. Do not put Play back on the bar. Do not put humans on `POST /v1/command` or DO `/command`. Full table: `docs/SPECS-AUDIT.md`. Production verdict: `docs/PRODUCTION-CONFORMANCE-CLOSEOUT.md`. Alpha packaging: `docs/ALPHA-RELEASE.md`. **Hosted alpha is FROZEN** (`docs/HOSTED-ALPHA-FREEZE.md`). RFC-0120 identity unfreeze is landed (`docs/RFC-0120-ACCEPTANCE.md`). Do not change seal, Genesis, verbs, or `DEFAULT_WORLD_ID` without an `UNFREEZE` PR. Isolated tests and Chamber (dev tooling) may still move. -- **`/health` `world_id` is the Durable Object name** (`wrangler.toml` `DEFAULT_WORLD_ID=world-01`). `/ready` reports the genesis id `world.perihelion-reach`. They are aliases in `command-world.ts`. Do not rename `DEFAULT_WORLD_ID` — that would select a different DO. +- **`/health` `world_id` is the Durable Object name** (`wrangler.toml` `DEFAULT_WORLD_ID=world.perihelion-reach-2`, RFC-0121 cutover). `/ready` reports that DO's genesis. The frozen 5-room world stays on the old `world-01` DO (operator-only). Do not point PLAY back at `world-01`. diff --git a/docs/GENESIS-RUNBOOK.md b/docs/GENESIS-RUNBOOK.md index 85365518..e5e8982f 100644 --- a/docs/GENESIS-RUNBOOK.md +++ b/docs/GENESIS-RUNBOOK.md @@ -148,6 +148,7 @@ Production cutover (human-gated, two deploys): 2. Admin preview successor on production. Require `genesis_id ≠ genesis.ef578f4ffceeccd0` and `room_count: 10`. 3. Admin `confirm: true` activate on `world.perihelion-reach-2`. No `force`. Do not reseed `genesis.ef578f4ffceeccd0`. 4. Set production `DEFAULT_WORLD_ID=world.perihelion-reach-2` and deploy. PLAY then uses the successor DO. Do not add PLAY to the old DO. + Successor production genesis (2026-08-21): `genesis.dbeb43d198ce81b1`, seed `perihelion-successor-rehearsal-01`, 10 rooms. Frozen first world remains `genesis.ef578f4ffceeccd0` on the `world-01` DO. ## Recovery diff --git a/workers/noema/wrangler.toml b/workers/noema/wrangler.toml index 15f5213b..7384878a 100644 --- a/workers/noema/wrangler.toml +++ b/workers/noema/wrangler.toml @@ -31,7 +31,7 @@ not_found_handling = "none" [vars] NOEMA_ENV = "production" NOEMA_PROTOCOL_VERSION = "1" -DEFAULT_WORLD_ID = "world-01" +DEFAULT_WORLD_ID = "world.perihelion-reach-2" [[durable_objects.bindings]] name = "WORLD_DO"