Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -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`.

1 change: 1 addition & 0 deletions docs/GENESIS-RUNBOOK.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
2 changes: 1 addition & 1 deletion workers/noema/wrangler.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
Loading