feat(bridge): protocol 9 — the world verbs, and the phase-7 owner fix (phase 13a) #9
Reference in New Issue
Block a user
No description provided.
Delete Branch "feat/phase-13a-world"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Phase 13a of module-rust. The plan and the as-built record are in
docs/modules/rust/PLAN.md§28; the protocol is indocs/rust-link/PROTOCOL.md§15. The docs PR goes alongside.What
EnsureGrantandEnsureGroupPermissionnow grant with anullowner and read the store back. A grant that did not land is reported in the newnotLandedlist and is not counted.world.monuments,world.zone,world.place,world.revertandworld.owned.world.expired). They are re-created from the registry on every load and on every ZoneManager reload, because ZoneManager erases a plugin's zones when that plugin unloads (D92).EventsMaxCrates/EventsMaxNpcsmay lower it).world.jsonregistry is keyed by the website's idempotency key, because this bridge has no at-most-once store. A repeated key is answered with the first call's ids and places nothing.world.ownedlooks for each thing by net id. Crates survive a restart with the same net id and NPCs do not, so a boot id proves nothing. A wipe drops the registry.EventsEnablednow gates every world write (D94). Revert, owned and monuments are never gated.true.overlay.tomlprotocol → 9.A defect the walk found here, fixed
The link starts in
Init, before the save loads. A mid-run restart had the website askworld.ownedinto an empty world, and the plugin pruned three live crates from its registry. World commands now answernot-readyuntilOnServerInitialized, andserver.hellocarriesworldReady(PLAN.md §28.7).Walked
On Oxide and on Carbon, through real core: each verb observed in the game, the lost answer, reload, restart, wipe, the switch and bounds, and the owner fix before and after (§28.6).
node scripts/checkPlugin.jsand its tests pass.🤖 Generated with Claude Code
https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY