3.0.0
Native runners for every supported platform, and bot_inspect can prove when a reply arrived.
Breaking
bot_inspect's messages is no longer an array of strings. Each message now carries the order it arrived in, the millisecond it reached the client, and the text — so you can say the reply landed 400ms after the command. Anything reading messages[i] as a string has to change.
A runner from an older version will not work with this one. The mismatch is refused on the first bot_inspect, with a message saying which half is old.
Added
Native runners for Linux x64, Linux arm64, macOS Intel and Apple Silicon, joining Windows x64 — so Node is no longer a requirement anywhere.
bot_inspect takes a cursor and answers with messageCursor and messagesDropped. Call it before the action, keep the cursor, pass it back afterwards, and you get that action's reply rather than the whole backlog. messagesDropped is nonzero when what you wanted has already fallen out of the 100-message window. A cursor from another session or a replaced bot is refused.
Paper 1.21.11 joins the supported range, which now passes end to end on eight versions from 1.21.1.
The world viewer is downloaded only when bot_view asks for a world, and it is a 31MB download rather than 269MB. It is published for Windows x64; other platforms say so and accept a local one.
Fixed
session_startno longer lists sessions whose runner has exited, which could make an unnamed call ambiguous.use_blockwaits for the bot to see the block before interacting, rather than racing a change made by the command before it.
Full Changelog: 2.2.0...3.0.0