docs(rust): stage 7 built — ZLevels (PROTOCOL §20.10, PLAN_REDESIGNS §14.3.20)

PROTOCOL.md §20.10: hello's integrations.zLevels, and nothing more
(D374). PLAN_REDESIGNS §14.3.20 records the build, two points settled in
code, the tests and the rig check; pointers from §9's summary and
§14.3.6.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
This commit is contained in:
2026-10-15 18:27:59 -05:00
parent 3d69b32b50
commit 8ca6a6cc40
2 changed files with 58 additions and 1 deletions

View File

@@ -930,7 +930,7 @@ pulls) is research, not a walk, so it still comes first:
answered before code: **written on 2026-10-14 as §14.3**, from D361–D369, and answered as D370–D376. Then the answered before code: **written on 2026-10-14 as §14.3**, from D361–D369, and answered as D370–D376. Then the
build, in §14.3.11's nine stages (two of them core), §13 first. **Stage 1, §13, was built on 2026-10-15 build, in §14.3.11's nine stages (two of them core), §13 first. **Stage 1, §13, was built on 2026-10-15
(§14.3.14)**, with D378 and D379. **Stage 2, core's `retryAfterMs` (MODULE_API 1.15.0), was built on (§14.3.14)**, with D378 and D379. **Stage 2, core's `retryAfterMs` (MODULE_API 1.15.0), was built on
2026-10-15 (§14.3.15).** **Stage 3, TruePVE in the zone step, was built on 2026-10-15 (§14.3.16)**, and **stage 4, Dynamic PVP, the same day (§14.3.17)**, and **stage 5, Dangerous Treasures, the same day (§14.3.18)**, and **stage 6, Guarded Crate, the same day (§14.3.19).** 2026-10-15 (§14.3.15).** **Stage 3, TruePVE in the zone step, was built on 2026-10-15 (§14.3.16)**, and **stage 4, Dynamic PVP, the same day (§14.3.17)**, and **stage 5, Dangerous Treasures, the same day (§14.3.18)**, and **stage 6, Guarded Crate, the same day (§14.3.19)**, and **stage 7, ZLevels, the same day (§14.3.20).**
**Then one walk, on Oxide and Carbon, of everything still owed (D331):** §2.7; §11's rows; §12.9; §13's and **Then one walk, on Oxide and Carbon, of everything still owed (D331):** §2.7; §11's rows; §12.9; §13's and
§14's rows; the in-game rows §14's rows; the in-game rows
@@ -2652,6 +2652,8 @@ dropped. D369 still holds in what remains: nothing is done at a wipe.
**Walk rows.** Lend `vip2` from a run and see the XP rate change at once, and back at the run's end. **Walk rows.** Lend `vip2` from a run and see the XP rate change at once, and back at the run's end.
> **Built on 2026-10-15** (§14.3.20), specified in PROTOCOL.md §20.10, as planned here.
#### 14.3.7 Server Rewards (D369) #### 14.3.7 Server Rewards (D369)
It mirrors §11.2.2 (Economics) wherever Server Rewards allows, and the code shares Economics' path where the two It mirrors §11.2.2 (Economics) wherever Server Rewards allows, and the code shares Economics' path where the two
@@ -3178,6 +3180,35 @@ the sidecar and the site are §14.3.5's walk rows, at the end walk (D331, D359).
placement raising no airdrop line; `gcrate stop all` taking a crate off the map; and a crate's guards killed by placement raising no airdrop line; `gcrate stop all` taking a crate off the map; and a crate's guards killed by
a RunicNPC NPC, which clears it for nobody. a RunicNPC NPC, which clears it for nobody.
#### 14.3.20 Stage 7, built: ZLevels Remastered (2026-10-15)
Built in Rust-Plugins and Module-Rust as §14.3.6 planned it (D374), specified in
[PROTOCOL.md](../../rust-link/PROTOCOL.md) §20.10. **No Rust-Link change**: the sidecar forwards hello whole.
`PROTOCOL_VERSION` stays 14. Builds: Rust 25902425, Oxide 2.0.7830, Carbon 2.0.262, ZLevels Remastered 3.3.1 on
both rigs, each the newest.
**What was built:** hello's `integrations.zLevels` (`{ loaded, version }`, found by the plugin name
`ZLevelsRemastered`); hello sent again when ZLevels loads or unloads; `rg.world` prints `zLevels=`; and Server
settings' plugin line: *"ZLevels 3.3.1 is loaded — an event may lend its XP boosts (zlevelsremastered.vip1 to
vip3) as permissions."* No level is read and nothing is stored.
**Settled in the code, and overrulable:**
1. **The plugin line names the three VIP permissions as ZLevels ships them.** An operator who renamed them in
ZLevels' config sees the shipped names on that line; the lend step's picker lists whatever ZLevels really
registered (§12.2), so nothing is lent wrong.
2. **The ZLevels group names** (`zlevelsvip1`–`3`, ×5–×7) are not mentioned. They are groups, and a run lends
permissions, not groups.
**Tests.** No new automated test: the servers page's lines are in a `.jsx` file the client's runner cannot
import, as §14.3.16–§14.3.19's were, so the line is checked at the walk. Full suites: Module-Rust server 643/643
and every check (imports, bundle, swagger, engagement), client 95/95, the build and externals; Rust-Plugins'
`checkPlugin.js` (84 hooks) and its 18 tests. On both rigs the bridge compiled and loaded, and `rg.world` read
`zLevels=absent`, then `zLevels=3.3.1` once ZLevels loaded, then `zLevels=absent` once it was removed. Both rigs
were then cleaned of ZLevels and its files, and put back on the protocol-13 bridge.
**Walk rows** are §14.3.6's, with one more: Server settings' line for a server with and without ZLevels.
### 14.4 Questions for the org lead ### 14.4 Questions for the org lead
**Answered on 2026-10-14:** Q17 as proposed, out (D358). **Q18 against the proposal: the end walk waits for **Answered on 2026-10-14:** Q17 as proposed, out (D358). **Q18 against the proposal: the end walk waits for

View File

@@ -3374,3 +3374,29 @@ events like any other.
server reports Guarded Crate or a row counts one (`guardedCrate: true` on the answer). server reports Guarded Crate or a row counts one (`guardedCrate: true` on the answer).
- The map draws a running event on the world layer. Server settings' plugin line names Guarded Crate and - The map draws a running event on the world layer. Server settings' plugin line names Guarded Crate and
NpcSpawn, the events, and whether a step can place one. NpcSpawn, the events, and whether a step can place one.
### 20.10 ZLevels Remastered — hello only (§14.3.6, D369, D374)
nivex's **ZLevels Remastered** (3.3.1, uMod), optional like Economics (D199) and not in `overlay.toml`. It
levels six gathering and crafting skills. **The bridge only says whether it is loaded.** No level is read,
nothing goes on the wire for it, and the site stores nothing: the leaderboard is not changed for it (D374),
and nothing is done at a wipe (D369). The design is [`PLAN_REDESIGNS.md`](../modules/rust/PLAN_REDESIGNS.md)
§14.3.6, and the stage-7 record is §14.3.20 there.
**Hello and status.** `integrations` gains `zLevels`:
```json
"zLevels": { "loaded": true, "version": "3.3.1" }
```
Hello is sent again when ZLevels loads or unloads. `rg.world` prints `zLevels=` (its version, or `absent`).
**Its XP boosts need nothing here.** ZLevels' VIP XP multipliers are its own permissions
(`zlevelsremastered.vip1`–`vip3` as it ships, ×2–×4) and it reads them on every gain. So the site's
*Permissions until the event ends* step (`PLAN_REDESIGNS.md` §12.4) lends one, pushed in `perm.sync` like a
kit reward (§20.2), and it takes effect at once.
**The sidecar** forwards hello whole, as before; nothing in it changed.
**The website (Module-Rust).** Server settings' plugin line says whether ZLevels is loaded and, where it is,
that an event may lend its XP boosts as permissions. Nothing else reads the field.