docs(site): the Event System — the platform's facts, and two pages for it #30

Merged
whitlocktech merged 1 commits from docs/events-system into main 2026-09-10 04:27:58 +00:00
Member

Events Phase 16c, the site's half. The last leg of the events plan, unblocked by the 16b cutover.

The checks were already red, and named their own answers

checkFacts — nine values had moved.

was is
protocol (sidecar, overlay, bundle) 5 7
moduleApi 1.9.0 1.10.0
bundle.tag 2026.09.01 2026.09.10
bundle.sidecar / bundle.overlay v2.1.0 / v1.1.0 v2.2.0 / v1.2.0
releases.link v2.1.0 v2.2.0
releases.Module-uo v1.1.0 v1.2.2

checkReference — twenty-seven Bridge.cfg keys this site listed nowhere. They are five new
groups
rather than an appendix to an existing one, because EventsEnabled is a second consent
switch
and belongs beside the ceilings it governs rather than filed under AdminWriteEnabled:
Scheduled events (3), Event caps (10), The oracle NPC (5), Leases (2), Participation (7).

Two pages, matching the treatment Teams has

Scheduled events (Administration) — where it
is and which role sees which row, authoring and why a version is immutable, the switchboard that
arrives off, a cap as a condition on an UPDATE rather than a check a stolen session has already
passed, the dry run, the run console and its six controls, what an event owns versus what it
borrows
, cleanup generated from the ledger, the shard's own switches, and what a player actually
sees.

Events architecture — the two
sentences the design turns on, what is a table and what deliberately is not, budgets in SQL, the
ledger's two rules (the unique index, and the compare-and-set that marks drifted rather than lying
about an undo), at-most-once on a wire that can lose an answer — including do not answer an error
after changing the world
, the rule the acceptance walk paid for — the three layers, and the four
omissions stated as choices.

The rest of the surface

  • /privacy gains deploy-events. The participation ledger is personal data and no row named
    it: scores and ranks against a module-opaque member key, linked to an account where one is linked.
    Retention stated precisely — the diagnostic log is swept after 90 days and only on terminal
    runs
    , and the run, its steps and its participants are not swept at all, because they are the
    record of what was done to a shared world. Deleting an account detaches its rows rather than
    removing them. deploy-game-data's citation moves from link/v4.md to v7.md.
  • Protocol versions — "the most recent bump touched" is now five repositories, and the
    website row is the one worth reading: core is normally out of a protocol bump's reach and this
    one reached it, because what changed was not a game noun but the shape of a thing core owns the
    ledger for. The store-migration paragraph covers four bumps rather than two, and the canonical
    links move from v5/v4 to v7/v6.
  • Two capability entries, so /, /features/ and /modules/ stop omitting the subsystem — an
    Administration item, and an Event calendar under Community deep-linking /site/events.
    Deliberately not needsModule: a bare core can author and run an event; only the world verbs
    need a module, and needsModule means "present, correct and permanently empty".
  • reference/event-catalog is retitled "Shard event catalog" and opens by saying what it is
    not. Two things in the docs were called an event catalog. The route is unchanged, so
    checkLinks stays green and nothing outside this repository breaks.
  • canonicalDocs gains website/EVENTS.md; link/v4.mdlink/v7.md; the docs index and
    the-bridge follow.

No screenshots

Capturing the events surfaces means standing the whole rig back up — game server, sidecar, core,
module, a published event with a live run — for two or three images no check requires. The
engagement workstream's own site leg added none either. Flagged rather than assumed; happy to do it
as a follow-up if you want the calendar on the marketing pages.

It found the cutover's missing seventh step

checkReference failed on ✗ canonical doc link/v7.md, because link/v6.md and v7.md existed
only on docs edge — 16b's step 6 had landed the record on edge instead of cutting edge
over, leaving docs main opening EVENTS.md with "revision 5. No code written." while six
repositories shipped the engine. Closed by RunicGateway/docs#232, merged before this.

Verification

npm run verify green end to end:

checkSidebar   5 groups and 44 pages agree with plannedSidebar
checkScreens   17 screens, all present, sized and used
checkTokens    56 files scanned
checkBrand     brand-default complete, 19 /brand/ URLs resolve
playDataSafety PLAY_DATA_SAFETY.md matches collection.mjs
astro check    0 errors, 0 warnings
node --test    42 pass
checkLinks     2808 internal links resolve, 136 repository links point at a branch
checkFacts     19 facts agree with their authorities
checkQuickstart 59 checks passed against website main
checkReference 23 enumeration checks passed against their sources
test:served    7 pass
checkA11y      54 built pages pass all seven structural checks
checkCsp       54 pages carry a policy; 450 inline scripts and 112 inline styles hashed

AI-assisted contribution. Drafted with Claude Code (Opus 5).

🤖 Generated with Claude Code

https://claude.ai/code/session_016wDDVXWMDz82WqE1i969r4

**Events Phase 16c**, the site's half. The last leg of the events plan, unblocked by the 16b cutover. ## The checks were already red, and named their own answers **`checkFacts` — nine values had moved.** | | was | is | |---|---|---| | protocol (sidecar, overlay, bundle) | 5 | **7** | | `moduleApi` | 1.9.0 | **1.10.0** | | `bundle.tag` | 2026.09.01 | **2026.09.10** | | `bundle.sidecar` / `bundle.overlay` | v2.1.0 / v1.1.0 | **v2.2.0** / **v1.2.0** | | `releases.link` | v2.1.0 | **v2.2.0** | | `releases.Module-uo` | v1.1.0 | **v1.2.2** | **`checkReference` — twenty-seven `Bridge.cfg` keys this site listed nowhere.** They are **five new groups** rather than an appendix to an existing one, because `EventsEnabled` is a *second consent switch* and belongs beside the ceilings it governs rather than filed under `AdminWriteEnabled`: Scheduled events (3), Event caps (10), The oracle NPC (5), Leases (2), Participation (7). ## Two pages, matching the treatment Teams has **[Scheduled events](src/content/docs/docs/administration/events.mdx)** (Administration) — where it is and which role sees which row, authoring and why a version is immutable, the switchboard that arrives off, a cap as a condition on an `UPDATE` rather than a check a stolen session has already passed, the dry run, the run console and its six controls, **what an event owns versus what it borrows**, cleanup generated from the ledger, the shard's own switches, and what a player actually sees. **[Events architecture](src/content/docs/docs/architecture/events-architecture.mdx)** — the two sentences the design turns on, what is a table and what deliberately is not, budgets in SQL, the ledger's two rules (the unique index, and the compare-and-set that marks `drifted` rather than lying about an undo), at-most-once on a wire that can lose an answer — including *do not answer an error after changing the world*, the rule the acceptance walk paid for — the three layers, and the four omissions stated as choices. ## The rest of the surface - **`/privacy` gains `deploy-events`.** The participation ledger is personal data and no row named it: scores and ranks against a module-opaque member key, linked to an account where one is linked. Retention stated precisely — the diagnostic log is swept after 90 days and **only on terminal runs**, and the run, its steps and its participants are not swept at all, because they are the record of what was done to a shared world. Deleting an account detaches its rows rather than removing them. `deploy-game-data`'s citation moves from `link/v4.md` to `v7.md`. - **Protocol versions** — "the most recent bump touched" is now **five** repositories, and the `website` row is the one worth reading: core is normally out of a protocol bump's reach and this one reached it, because what changed was not a game *noun* but the shape of a thing core owns the ledger for. The store-migration paragraph covers four bumps rather than two, and the canonical links move from `v5`/`v4` to `v7`/`v6`. - **Two capability entries**, so `/`, `/features/` and `/modules/` stop omitting the subsystem — an Administration item, and an **Event calendar** under Community deep-linking `/site/events`. Deliberately **not** `needsModule`: a bare core can author and run an event; only the world verbs need a module, and `needsModule` means "present, correct and permanently empty". - **`reference/event-catalog` is retitled "Shard event catalog"** and opens by saying what it is *not*. Two things in the docs were called an event catalog. **The route is unchanged**, so `checkLinks` stays green and nothing outside this repository breaks. - `canonicalDocs` gains `website/EVENTS.md`; `link/v4.md` → `link/v7.md`; the docs index and `the-bridge` follow. ## No screenshots Capturing the events surfaces means standing the whole rig back up — game server, sidecar, core, module, a published event with a live run — for two or three images no check requires. The engagement workstream's own site leg added none either. Flagged rather than assumed; happy to do it as a follow-up if you want the calendar on the marketing pages. ## It found the cutover's missing seventh step `checkReference` failed on `✗ canonical doc link/v7.md`, because `link/v6.md` and `v7.md` existed only on `docs` `edge` — 16b's step 6 had landed the record *on* `edge` instead of cutting `edge` over, leaving `docs` `main` opening `EVENTS.md` with *"revision 5. **No code written.**"* while six repositories shipped the engine. Closed by **RunicGateway/docs#232**, merged before this. ## Verification `npm run verify` green end to end: ``` checkSidebar 5 groups and 44 pages agree with plannedSidebar checkScreens 17 screens, all present, sized and used checkTokens 56 files scanned checkBrand brand-default complete, 19 /brand/ URLs resolve playDataSafety PLAY_DATA_SAFETY.md matches collection.mjs astro check 0 errors, 0 warnings node --test 42 pass checkLinks 2808 internal links resolve, 136 repository links point at a branch checkFacts 19 facts agree with their authorities checkQuickstart 59 checks passed against website main checkReference 23 enumeration checks passed against their sources test:served 7 pass checkA11y 54 built pages pass all seven structural checks checkCsp 54 pages carry a policy; 450 inline scripts and 112 inline styles hashed ``` --- **AI-assisted contribution.** Drafted with Claude Code (Opus 5). 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_016wDDVXWMDz82WqE1i969r4
wtclaude added 1 commit 2026-09-10 03:06:13 +00:00
docs(site): the Event System — the platform's facts, and two pages for it
All checks were successful
PR checks / checks (pull_request) Successful in 9m34s
e91e76bfa9
Phase 16c of the events plan: `runicgateway.com`'s half of the workstream, now
that `main` carries the engine, the module, the app and the bundle.

The checks were already red and named their own answers:

* `checkFacts` — nine values had moved. Protocol 5 → 7 in all three declaration
  sites, `moduleApi` 1.9.0 → 1.10.0, the bundle to 2026.09.10 with sidecar
  v2.2.0 and overlay v1.2.0, `link` v2.2.0, `Module-uo` v1.2.2.
* `checkReference` — twenty-seven `Bridge.cfg` keys the site listed nowhere: the
  events switch and its sweep, the ten caps, the oracle NPC, the two lease keys
  and the seven participation keys. They are five new groups rather than an
  appendix to an existing one, because `EventsEnabled` is a second consent
  switch and belongs beside its own ceilings.

Two pages, matching the treatment Teams has:

* **Scheduled events** (Administration) — where it is and who sees it, authoring
  and immutable versions, the switchboard that arrives off, caps as a condition
  on an `UPDATE` rather than a role check, the dry run, the run console, what an
  event owns versus what it borrows, generated cleanup, the shard's own switches,
  and what a player sees.
* **Events architecture** — the two sentences it turns on, what is a table and
  what deliberately is not, budgets in SQL, the ledger's two rules, at-most-once
  on a wire that can lose an answer, the three layers, and the four omissions.

And the rest of the surface:

* `/privacy` gains **`deploy-events`** — the participation ledger is personal
  data and no row named it. Scores and ranks against a module-opaque member key,
  linked to an account where one is linked; the diagnostic log swept after 90
  days on terminal runs only; the run, its steps and its participants not swept
  at all, because they are the record of what was done to a shared world.
  `deploy-game-data`'s citation moves from `link/v4.md` to `v7.md`.
* **Protocol versions** — the most recent bump touched *five* repositories, and
  the `website` row is the interesting one: core is normally out of a protocol
  bump's reach and this one reached it, because what changed was not a game noun
  but the shape of a thing core owns the ledger for. The store-migration
  paragraph now says four bumps' worth rather than two.
* Two capability entries, so `/`, `/features/` and `/modules/` stop omitting the
  subsystem — an Administration item, and an **Event calendar** under Community
  with `/site/events` as its deep link. Deliberately *not* `needsModule`: a bare
  core can author and run an event, and only the world verbs need a module.
* **`reference/event-catalog` is retitled "Shard event catalog"** and says what
  it is not. Two things in the docs were called an event catalog; the route is
  unchanged, so nothing outside this repository breaks.
* `canonicalDocs` gains `website/EVENTS.md` and moves `link/v4.md` → `v7.md`.

No screenshots. Capturing the events surfaces means standing the whole rig back
up — game server, sidecar, core, module, a published event with a live run — for
two or three images that no check requires, and the engagement workstream's own
site leg added none either.

`npm run verify` green end to end, including `checkReference` against the
protocol spec that only reached `docs` `main` in RunicGateway/docs#232 — the
seventh cutover step, which 16b had left on `edge`.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016wDDVXWMDz82WqE1i969r4
whitlocktech merged commit 73f664c38e into main 2026-09-10 04:27:57 +00:00
whitlocktech deleted branch docs/events-system 2026-09-10 04:27:59 +00:00
Sign in to join this conversation.
No description provided.