Stage 3 of docs/modules/rust/PLAN_LAST_FIXES.md.
- W3: a Travelling Vendor call while one is on the map answers world.error
reason `already-out` instead of "called 1" with nothing spawned. Not
counted against the run's budget and not kept under its key, so a retry
looks again. Module-Rust#55 reads it as called 0.
- W9: a rolled-back RaidableBases profile write carries RaidableBases' own
log entry for the file (its path and the exception's message, without the
stack), read from the log since the write began, instead of the last 8 KB
of the server log. Its other entries since the write stand in when none
names the profile, and nothing when it said nothing.
- W12: raid.ended carries the base's id, and its runId and key, when a run
made it, as PROTOCOL §20.12 says. A teardown takes the base off the record
before its despawn raises Ended, so the live base keeps its run and key too.
No protocol change: W3's reason is a new value of an existing field, and W12
sends the fields PROTOCOL already lists.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY