docs(link): the guide an integrator reads stopped at protocol 6 (Phase 9a)
The Asset Bridge's docs pass, and the acceptance walk that shaped it (v8.md §16 row 9a, §17.13-14). Phase 9 is three legs now: this one, the edge->main cutover, and the site. ## INTEGRATION.md had stopped at 6 and contradicted itself Its §2 said "the current version is 6" above examples already carrying `X-UOLink-Version: 8`, there was no protocol-7 paragraph, and `assets.` appeared zero times in 1,306 lines. It is the only document an integrator outside this org has, so it is carried the whole way: the version block corrected, v7 (the event plane's command half) and v8 (the asset plane) written, a §5 section for the five routes, 425/422 in the status table, and a caveat that the asset plane is a working set rather than a stream. Protocol 7's absence is the Events workstream's debt rather than this one's, but it cannot be stepped over on the way to 8. ## The operator-facing half `UPGRADE_NOTES.md` gains the entry an operator reads when this ships: what changed, the one required action on a Linux host, and the thing that will not announce itself -- nothing here happens on a restart, so a patched client keeps serving the old pictures until somebody presses a button. `installer/INSTALL.md` gains libgdiplus as a prerequisite row and the `doctor` row that checks it. The index rows for SPAWN_ATLAS and CLILOCS described the workflows this protocol deleted; v8.md now has an index row of its own, and v7 is marked as the released protocol. ## The walk Wiped every asset row and every imported sprite, then walked it as a new operator: 1,095 portraits in 3.18 s, 67,496 names in 1.42 s, 313 item pictures in 1.38 s, the atlas over the bridge in ~2.0 s, an Update with no drift answered in 0.99 s. Bestiary portraits are the right animals by eye; the marketplace shows hued item art with cliloc names. It found two defects (§17.14) and one cutover hazard: module-uo's `edge` is behind its `main`, missing #35, so the walk measured 0 of 6,455 spawners carrying a UniqueId. 9b's row says to sync before merging or the cutover ships a regression. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016wDDVXWMDz82WqE1i969r4
This commit is contained in:
@@ -13,6 +13,57 @@ action, whether it is required, and what happens if you do nothing.
|
||||
|
||||
---
|
||||
|
||||
## The Asset Bridge: client artwork and names come off the shard now
|
||||
|
||||
**Required on a Linux shard host; one action for everyone else.** Protocol 8, the Asset Bridge
|
||||
([`../link/v8.md`](../link/v8.md)). The shard reads its own UO client and serves what is in it, so
|
||||
three things that used to need a desktop, a converter or a shared filesystem no longer do.
|
||||
|
||||
### What changed
|
||||
|
||||
- **Creature portraits on the bestiary** come from the shard's client, not from files you draw or
|
||||
place. Portraits you *have* drawn and named in `spawnAtlas.art.json` still win over an imported
|
||||
one — nothing you made by hand is overwritten.
|
||||
- **Item and land pictures** appear beside marketplace listings and on character sheets. They arrive
|
||||
one at a time, shortly after a page asks for one, and refresh themselves after a client patch.
|
||||
- **The cliloc table** (UO's id → name table, which is what makes an item read "a katana" rather
|
||||
than "1023721") is decompressed **on the shard**. The old path — install UOFiddler, build a
|
||||
converter against its `Ultima.dll`, copy a 5 MB file onto the web host — is gone, and so is
|
||||
`server/tools/cliloc-export/` and `UOFIDDLER.md`.
|
||||
- **The spawn atlas no longer needs to read your ServUO tree.** It used to require a bind mount or a
|
||||
shared volume so the *website* could read the shard's `Spawns/*.xml` — the one place the rule
|
||||
"only the sidecar talks to the shard" was broken, by the internet-facing component. Those files
|
||||
now cross the bridge like everything else. An existing mount keeps working and is still supported;
|
||||
you no longer need one.
|
||||
|
||||
### What you must do
|
||||
|
||||
1. **On a Linux shard host, install `libgdiplus`** — `sudo apt-get install libgdiplus`, or see
|
||||
[`../link/SHARD_PREREQS.md`](../link/SHARD_PREREQS.md). ServUO runs under Mono there, and Mono's
|
||||
`System.Drawing` is a thin layer over that library, which sits in the **decode** path: without it
|
||||
the shard cannot read a single sprite. It is not a crash — the panel reports `NO_IMAGING` with
|
||||
the command to fix it — and names and spawn files are unaffected, because neither touches a
|
||||
pixel. **Windows shard hosts need nothing.** `installer doctor` checks this for you.
|
||||
2. **Import once, from Admin → Client Files.** Creature portraits, item pictures and the cliloc
|
||||
table are all on that page, with the same two buttons: *Update* transfers only what a client
|
||||
patch actually changed, *Re-import everything* fetches the lot.
|
||||
|
||||
### If you do nothing
|
||||
|
||||
The site runs exactly as it did — every one of these is additive, and a shard with the asset plane
|
||||
switched off simply has no pictures. The bestiary shows names as text, item listings show numbers
|
||||
instead of names, and nothing errors.
|
||||
|
||||
### The one thing that will not tell you about itself
|
||||
|
||||
**Nothing here happens on a restart.** Boot deliberately never calls the shard for client files: a
|
||||
client patch is an event you know about and the website does not, and a site that re-read 343 MB of
|
||||
client files on every restart to discover nothing had changed would pay for the rare case forever.
|
||||
So after you patch your UO client, the site keeps serving the old pictures and the old names until
|
||||
somebody presses a button on that page. That is the whole reason the page exists.
|
||||
|
||||
---
|
||||
|
||||
## Engagement: rules, an in-app inbox, and three things that arrive switched off
|
||||
|
||||
**Required.** The engagement workstream, Phases 1–12. Three separate actions, and the two that matter
|
||||
|
||||
Reference in New Issue
Block a user