feat(web): the world verbs on the wire (protocol 7, Phase 12a) #38
Reference in New Issue
Block a user
No description provided.
Delete Branch "feature/events-p12a-world-verbs"
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?
Events Phase 12a, sidecar half. One of four:
servuo-plugins(servuo-plugins#23),link,Module-uo(#—),docs(docs#221) — all ontoedge. Spec of record:docs/link/v7.md.Routes
POST /worldcountofwhat— creature, boss, npc, gate, decorGET /world/:runIdPOST /world/:runId/despawnserialsmeans everythingOne route family for five author-facing verbs, because each of them ends in "an object exists and this run owns it". The differences between a boss's multipliers, an oracle's lines and a gate's destination are fields on one command rather than five commands, so there is one ledger shape and one teardown path instead of five near-identical ones across three repos.
PROTOCOL_VERSION→ 7. The overlay'soverlay.tomlis bumped in the same window. 12b amends 7 in place rather than bumping again, so an overlay and a sidecar both declaring 7 are interchangeable only within one side of that merge — tolerable for the same single reason 6 was, and no other: nothing is released fromedge.Two shapes worth the review
world.ownedis a GET, unlikeparticipation.snapshot. It carries no idempotency key and the shard answers it in one pass, pruning rows whose object the world has already lost as it walks. A read that cannot legitimately be refused as a repeat in flight has no reason to be a POST.A run the shard has no rows for answers with an empty hand, not a 404, and the distinction is load-bearing for the website's
reconcile(). "This run owns nothing" and "I have never heard of this run" are the same fact once the registry is the only record of ownership — and they stay the same fact across a restart, because the registry is written by the same world save as the objects it describes. A 404 here would make the website treat a run that legitimately owns nothing as a shard it could not reach.Tests
Two new, both pinning what the world verbs depend on from
respond_eventrather than trusting that its reason-sniffing keeps covering a kind it predates:cargo fmt --check,cargo clippy --all-targets -- -D warningsandcargo testall clean: 49 passed (was 47).Also exercised end to end against the real local ServUO 57.4 world, driving this binary's REST — see servuo-plugins#23 for the walk.
🤖 Generated with Claude Code
https://claude.ai/code/session_016wDDVXWMDz82WqE1i969r4