fix(rust): a zone resource carries its deadline as until (W1) #56
Reference in New Issue
Block a user
No description provided.
Delete Branch "fix/last-fixes-zone-until"
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?
What & why
Stage 4 of
docs/modules/rust/PLAN_LAST_FIXES.md(docs#366): the module's half of W1. The core half is website#219.A placed zone now reports
until, computed as now plusholdMswhen the placement is answered. It therefore lands a round trip after the game's own deadline, never before it. Core's reconcile then files a zone that is gone past that deadline asexpired. Before, after a restart, the run log readresource.orphanedfive seconds before the game'sworld.expiredarrived. Crates and NPCs send noholdMs, so they carry nountil. The run console now also shows the zone's deadline ("until 12:38:57 AM").No core pin change, and no MODULE_API bump (org lead, 2026-10-22).
untilhas been in the resource contract all along, and a core without the reconcile half only shows it on the console.How it was tested
npm test: server 705 pass, client 99 pass. A new zones test checks thatuntilis the deadline and that a crate has none.world.test.jsexpects the field.:3270, website fix/last-fixes-core) with the Oxide rig (Rust 25902425):expiredat 05:57:24 with the line the game ended it at its deadline. There was noresource.orphanedline and no secondresource.expiredline. The core log has no "event resource expired" from the module'sexpired()path, which shows the reconcile did it.world.expiredreached core before the module's reconcile, which waits for the world to load. The log showsresource.expiredonly.Checklist
AI-assisted contributions (required)
Claude Code (Claude Opus 5.5). I have reviewed and understand every change, and take responsibility for it. AI-authored commits are marked with aCo-Authored-By/Assisted-Bytrailer.🤖 Generated with Claude Code
https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY