feat(bridge): protocol 8 — the leases (phase 12) #8
Reference in New Issue
Block a user
No description provided.
Delete Branch "feat/phase-12-leases"
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 12 of module-rust. Plan and as-built record:
docs/modules/rust/PLAN.md§27; protocol:docs/rust-link/PROTOCOL.md§14 (docs PR alongside).What
lease.list/lease.apply/lease.release, plus alease.expiredevent. The plugin holds the allowlist (decay.scale, 18*.population,spawn.min_rate,spawn.min_density, andgroup.permission), the seven-day ceiling (a longer hold is refused, never clamped, D77) and the deadline, which it enforces itself every second. Release is compare-and-set, and a drifted value is left alone.leases.jsonunder the data dir records each hold with itsbootId. On a plugin reload every hold is re-armed. On a new boot a convar hold is dropped, because the restart already restored it, while a group-permission hold is re-armed, because the framework kept it.EventsEnabled(defaultfalse, D76) gatesapplyonly. A write from the site's config editor to the bridge's own file now applies it at once.leased, neverforeign, and the site's wish is recorded on the hold and applied at release.Savedconvars are refused, becauseserverauto.cfgwould outlive the restart that should end the hold.overlay.tomlprotocol → 8.Two defects the walk found here, fixed
GrantGroupPermission(…, this)is a silent no-op for any permission another plugin registered (confirmed in decompiledOxide.Core.Libraries.Permission). Grants now pass anullowner.EventsEnabledsaved from the site had no effect, because the bridge never reloads itself (§21.3).Raised, NOT fixed here
The phase-7 mirror (
EnsureGroupPermission/EnsureGrant) has the same owner bug and counts the grant without reading it back. See PLAN.md §27.6.Walked
Oxide and Carbon, through real core. Every key's effect was seen in the game and restored. The walk also covered the deadline with core stopped, drift, reload and restart in the middle of a hold, and the switch.
node scripts/checkPlugin.jspasses.🤖 Generated with Claude Code
https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY