docs(modules): phase 6 as built — identity, and the sentence a player could not see
Protocol 3 in PROTOCOL.md §9, the identity walk in PLAYER_WALK.md, what an
operator needs in INTEGRATION.md, and PLAN.md §19.
Seven org-lead decisions (§19.0): /link is chat and its reply is private, codes
live in plugin memory as the UO bridge does, an alphabet with no O/0/I/1, a
Steam id another account holds is refused rather than moved, the website asks
EVERY server because a code does not say which one minted it, staff can sever a
link, and the activity-row overflow belongs to core.
§19.3 is the finding worth reading: a slot router is not registered under a tier,
so this repo own OpenAPI generator described two routes fewer than the module
serves — internally consistent, and wrong. The frozen-manifest job catches it,
which was verified by deleting the two paths and watching it fail.
§19.4 is what a browser found and 122 green tests did not. Core request
primitive reads data.message; this module has answered { error } since phase 1,
so every refusal this phase exists to write rendered as Service Unavailable.
The code-from-the-game half is written down rather than claimed: a code reaches
a player and nobody else, so no console can read one (D27).
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PMH6bw1jXMgbyF3ZWGEzSM
This commit is contained in:
@@ -220,6 +220,21 @@ how long the sidecar keeps raw events. The permanent record — per-wipe totals
|
||||
lives in the website's own tables, so shortening this loses recent detail and never loses a player's
|
||||
history. Set it to `0` to keep everything, if the host's disk is yours to spend.
|
||||
|
||||
**From protocol 3 your players can link their Steam account.** In game they type `/link` and the
|
||||
server answers them privately with a six-character code; on the website they type that code in
|
||||
within five minutes and the two are joined. Nothing about the link is stored on the game host — the
|
||||
website owns the record, and `/unlink` in game asks it to let go.
|
||||
|
||||
Two things an operator should know about it:
|
||||
|
||||
- **The code is never in a frame.** It reaches the player and nobody else, which is what makes typing
|
||||
it into a signed-in browser proof that they are the one who asked. What crosses the bridge is
|
||||
`account.link.requested`, a staff-visible note that somebody asked.
|
||||
- **A Steam account can belong to one website account at a time, across your whole fleet.** A code
|
||||
from any of your servers links for all of them. If somebody links the wrong account the site
|
||||
refuses to move it — the player runs `/unlink` in game, or staff release it from the user's page in
|
||||
the admin panel.
|
||||
|
||||
**Every row carries its wipe.** The plugin derives a `wipeId` from the save's creation time and
|
||||
stamps it on every frame, so a wipe splits the history rather than ending it. That is also why
|
||||
**the sidecar's database must never be in a wipe script's delete list** — see the Pterodactyl egg's
|
||||
|
||||
Reference in New Issue
Block a user