feat(rust): TruePVE in the zone step — no PvP protection, or a ruleset (PLAN_REDESIGNS §14.3.2) #45

Merged
whitlocktech merged 2 commits from feat/truepve-zone into edge 2026-10-15 06:06:14 -05:00

2 Commits

Author SHA1 Message Date
e3cc95f8ab feat(rust): TruePVE in the zone step — no PvP protection, or a ruleset (PLAN_REDESIGNS §14.3.2)
All checks were successful
PR Checks / client-build (pull_request) Successful in 24s
PR Checks / frozen-manifest (pull_request) Successful in 44s
PR Checks / server-tests (pull_request) Successful in 7m23s
Stage 3 of the §14.3 integration plan (D362, D368), on protocol 14 (docs
rust-link/PROTOCOL.md §20.6).

- rust.zone.open gains noPvpProtection (boolean) and pvpRuleset (string),
  sent as world.zone's truePve { exclude: true } or { ruleset }.
- Both set, a name over 64 characters, or a server whose hello says TruePVE
  is not loaded is refused for good, at verify too. A server that has not
  said is left to the plugin, as a dome is.
- truepve-missing and truepve-ruleset are permanent failures, with the
  plugin's words.
- The zone servers list carries each server's truePve from hello; Server
  settings' plugin line says whether TruePVE is loaded; the integrations
  schema documents it (swagger fragment regenerated).
- README lists TruePVE among the optional plugins.

Tests: five new in zones.test.js; server 603/603 and all checks, client
84/84 and the build.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
2026-10-15 05:48:00 -05:00
4af731288a feat: TruePVE in the zone step (PLAN_REDESIGNS §14.3.2, WIP)
Stage 3 of the §14.3 integration plan (D362, D368): world.zone's optional
truePve ({exclude: true} or {ruleset}), all or nothing, unmapped on every
path that erases one of our zones, with truepve.json for erases while
TruePVE is away. Docs and PRs still to come.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
2026-10-15 03:03:36 -05:00