docs(site): the Asset Bridge — protocol 8, a screen for client files, and pictures in the screenshots (Phase 9c) #31

Merged
whitlocktech merged 1 commits from docs/asset-bridge-p9c into main 2026-09-15 12:11:31 +00:00
Member

The last leg of the Asset Bridge (docs/link/v8.md §16, phase 9c) — and the last phase of the workstream. 9b put protocol 8 on main in every declaration site, which turned this repo red by construction: checkFacts.mjs reads the protocol from link's main.

Two checks were failing, and only one of them was expected.

checkFacts — 10 failures, all of them the cutover

Protocol 7 → 8 in all three independent reads (sidecar, overlay, bundle); the bundle triple to 2026.09.15 / v2.3.0 / v1.3.0; the releases to link v2.3.0, installer v0.2.0, Module-uo v1.3.0.

moduleApi and the capability list did not move, and that is worth noticing rather than glossing: core's entire share of eight phases of work was a deletion.

checkReference — 9 failures nobody planned for

Bridge.cfg grew nine keys across phases 5, 6 and 7 — AssetsEnabled, AssetBatchBytes, AssetBodyBatch, AssetFetchKeys, AssetScanMs, AssetPlayerDirection, AssetCreatureDirection, TreeEnabled, TreeChunkBytes — and the reference page had gone on not mentioning them. That is exactly the rot that check exists to catch ("the reference is lying by omission"). They are listed as two new groups, Client assets and Spawn files, because they are two separate consents: one is about EA's client, the other about the operator's own configuration.

The prose the bridge changed

  • New page — Administration → Client files. Admin → Client files is a screen an operator has to press a button on, and the site had no page for it. It carries the rule nothing else on the site states: nothing here happens on a restart, so a patched client keeps serving the old artwork until somebody says so.
  • Protocol versions claimed the most recent bump touched five repositories and named website. Protocol 8 touched four and did not reach core — and its absence is the more interesting half, so the page now says why. The store-migration paragraph gains 8: the largest bump this protocol has had moved megabytes of artwork and changed no line of the sidecar's store.
  • The bridge said "two ways in". There are three. Bulk reads go over the request/reply path in pages, one in flight at a time — and the reason they must not ride the event stream is structural (every event is persisted and broadcast) rather than about speed.
  • Requirements gains libgdiplus for Linux shard hosts, and the note that you do not install a game client for any of this — a ServUO shard cannot boot without one already.
  • Troubleshooting gains a failure mode that did not exist before: a bestiary with no pictures, or items reading as numbers.
  • Maintenance and upgrades gains the button to press after patching a client; Verify the whole stack gains the doctor check that shipped with it, and the note that a green bridge can still show no artwork.
  • Both capability descriptions say the artwork is there now, and canonicalDocs points at link/v8.md with SHARD_PREREQS.md beside it.

Screenshots, retaken against the real thing

The atlas and marketplace shots predate the asset plane. Both were retaken on the demo deployment wired to a real ServUO shard over a real sidecar, along with the new admin screen — 1,095 portraits in 2.1 s, 67,496 names in 1.4 s, 313 item pictures in 0.8 s. The atlas shot moved 36 px down its page, because portraits made the rows taller.

Nothing here is a mock-up, and nothing here was drawn.

One defect found on the way

seedDemo.mjs pinned the demo deployment at protocol 4, under a comment explaining a module-uo debt that has since been paid — the module now defaults the column to the protocol its build speaks and carries a one-shot migration per bump. Its default now comes from platform.json, so the rig cannot quietly drift two protocols behind the platform again, which is precisely what the literal did.

Verification

npm run verify green end to end: sidebar, screens, tokens, brand, data safety, astro check, 49 tests, build, links (2,916 internal), facts (19), quickstart (59), reference (24), served headers, a11y (55 pages), CSP.


  • AI-assisted: written with Claude Code (Claude Opus 5), reviewed by a human before merge.

🤖 Generated with Claude Code

https://claude.ai/code/session_016wDDVXWMDz82WqE1i969r4

The last leg of the Asset Bridge (`docs/link/v8.md` §16, phase **9c**) — and the last phase of the workstream. 9b put protocol 8 on `main` in every declaration site, which turned this repo red by construction: `checkFacts.mjs` reads the protocol from `link`'s `main`. Two checks were failing, and only one of them was expected. ## checkFacts — 10 failures, all of them the cutover Protocol **7 → 8** in all three independent reads (sidecar, overlay, bundle); the bundle triple to **2026.09.15 / v2.3.0 / v1.3.0**; the releases to **link v2.3.0**, **installer v0.2.0**, **Module-uo v1.3.0**. `moduleApi` and the capability list did **not** move, and that is worth noticing rather than glossing: core's entire share of eight phases of work was a deletion. ## checkReference — 9 failures nobody planned for `Bridge.cfg` grew nine keys across phases 5, 6 and 7 — `AssetsEnabled`, `AssetBatchBytes`, `AssetBodyBatch`, `AssetFetchKeys`, `AssetScanMs`, `AssetPlayerDirection`, `AssetCreatureDirection`, `TreeEnabled`, `TreeChunkBytes` — and the reference page had gone on not mentioning them. That is exactly the rot that check exists to catch ("the reference is lying by omission"). They are listed as two new groups, **Client assets** and **Spawn files**, because they are two separate consents: one is about EA's client, the other about the operator's own configuration. ## The prose the bridge changed - **New page — Administration → Client files.** `Admin → Client files` is a screen an operator has to press a button on, and the site had no page for it. It carries the rule nothing else on the site states: **nothing here happens on a restart**, so a patched client keeps serving the old artwork until somebody says so. - **Protocol versions** claimed the most recent bump touched *five* repositories and named `website`. Protocol 8 touched four and did not reach core — and its absence is the more interesting half, so the page now says why. The store-migration paragraph gains 8: the largest bump this protocol has had moved megabytes of artwork and changed **no line** of the sidecar's store. - **The bridge** said "two ways in". There are three. Bulk reads go over the request/reply path in pages, one in flight at a time — and the reason they must not ride the event stream is structural (every event is persisted and broadcast) rather than about speed. - **Requirements** gains `libgdiplus` for Linux shard hosts, and the note that you do not install a game client for any of this — a ServUO shard cannot boot without one already. - **Troubleshooting** gains a failure mode that did not exist before: a bestiary with no pictures, or items reading as numbers. - **Maintenance and upgrades** gains the button to press after patching a client; **Verify the whole stack** gains the `doctor` check that shipped with it, and the note that a green bridge can still show no artwork. - Both capability descriptions say the artwork is there now, and `canonicalDocs` points at `link/v8.md` with `SHARD_PREREQS.md` beside it. ## Screenshots, retaken against the real thing The atlas and marketplace shots predate the asset plane. Both were retaken on the demo deployment wired to a **real ServUO shard over a real sidecar**, along with the new admin screen — **1,095 portraits in 2.1 s, 67,496 names in 1.4 s, 313 item pictures in 0.8 s**. The atlas shot moved 36 px down its page, because portraits made the rows taller. Nothing here is a mock-up, and nothing here was drawn. ## One defect found on the way `seedDemo.mjs` pinned the demo deployment at **protocol 4**, under a comment explaining a `module-uo` debt that has since been paid — the module now defaults the column to the protocol its build speaks and carries a one-shot migration per bump. Its default now comes from `platform.json`, so the rig cannot quietly drift two protocols behind the platform again, which is precisely what the literal did. ## Verification `npm run verify` green end to end: sidebar, screens, tokens, brand, data safety, astro check, 49 tests, build, links (2,916 internal), **facts (19)**, quickstart (59), **reference (24)**, served headers, a11y (55 pages), CSP. --- - [x] AI-assisted: written with Claude Code (Claude Opus 5), reviewed by a human before merge. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_016wDDVXWMDz82WqE1i969r4
wtclaude added 1 commit 2026-09-15 10:46:24 +00:00
docs(site): the Asset Bridge — protocol 8, a screen for client files, and pictures in the screenshots (Phase 9c)
All checks were successful
PR checks / checks (pull_request) Successful in 1m41s
4e1ce2316a
The last leg of the Asset Bridge (docs/link/v8.md §16, phase 9c). The cutover put
protocol 8 on `main` in every declaration site, which turned this repo red by
construction: `checkFacts.mjs` reads the protocol from `link`'s `main`.

Two checks were failing, and only one of them was expected.

**checkFacts (10)** — protocol 7 → 8 in all three reads (sidecar, overlay, bundle),
the bundle triple to 2026.09.15 / sidecar v2.3.0 / overlay v1.3.0, and the releases
to link v2.3.0, installer v0.2.0, Module-uo v1.3.0. `moduleApi` and the capability
list did not move: core's whole share of eight phases was a deletion.

**checkReference (9)** — nobody had planned for this one. `Bridge.cfg` grew nine keys
across phases 5, 6 and 7 and the reference page had gone on not mentioning them,
which is the failure mode that check exists for. They are listed as two new groups,
`Client assets` and `Spawn files`, because they are two separate consents.

## The prose the bridge changed

- **New page, Administration → Client files.** `Admin → Client files` is a screen an
  operator has to press a button on and the site had no page for it. It carries the
  rule nothing else states: **nothing here happens on a restart**, so a patched client
  keeps serving the old artwork until somebody says so.
- **Protocol versions** said the most recent bump touched five repositories and named
  `website`. Protocol 8 touched four and did not reach core — its absence is the
  interesting half, and the page now says why. The store-migration paragraph gains 8,
  which changed no line of the sidecar's store despite moving megabytes.
- **The bridge** said "two ways in". There are three: bulk reads go over the
  request/reply path in pages, one in flight at a time, and the reason they must not
  ride the event stream is structural rather than about speed.
- **Requirements** gains `libgdiplus` for Linux shard hosts, and the note that no game
  client has to be installed for any of this — a ServUO shard cannot boot without one.
- **Troubleshooting** gains the failure mode that did not exist before: a bestiary with
  no pictures, or items reading as numbers.
- **Maintenance** gains the button to press after patching a client, and **Verify the
  whole stack** the `doctor` check that landed with it.
- The spawn atlas and the marketplace both carry artwork now, so both capability
  descriptions say so, and `canonicalDocs` points at `link/v8.md`.

## Screenshots, retaken against the real thing

The atlas and marketplace shots predate the asset plane, so both were retaken on the
demo deployment against a real shard and a real sidecar, plus the new admin screen:
1,095 portraits imported in 2.1 s, 67,496 names in 1.4 s, 313 item pictures in 0.8 s.
Nothing here is a mock-up. The atlas shot moved 36px down its page because portraits
made the rows taller.

## One defect found on the way

`seedDemo.mjs` pinned the demo deployment at **protocol 4** with a comment explaining
a `module-uo` debt that has since been paid. Its default now comes from
`platform.json`, so the rig cannot drift two protocols behind the platform again.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016wDDVXWMDz82WqE1i969r4
whitlocktech merged commit c3c347d237 into main 2026-09-15 12:11:31 +00:00
whitlocktech deleted branch docs/asset-bridge-p9c 2026-09-15 12:11:38 +00:00
Sign in to join this conversation.
No description provided.