Repository navigation
v0.1.7
Extension contract versions are unchanged: world 5, provider 5, bot 6.
Core
- New
interrupttrigger. When such an event arrives, the in-flight model call is cancelled whether
or not it has produced output; what was already externalized is kept. Running tools that declare
ToolDef.interruptiblereceivectx.signaland report how far they got; other tools run to the
end, and calls in the round that have not started are skipped. The new event is delivered after
the round's receipts, in the same batch (#180, #179). - A cancelled
preemptround no longer ends the wake-up: the batch continues with the new event and
onTurnEndedis not called, so QQ drafts and cua permissions survive a preemption. Apreemptor
interruptthat arrives while tools run or between rounds goes into the next model request (#180). - The default externalization rule is exported as
defaultExternalizes. Cormini's merged output tap
falls back to it per tap instead of treating a tap withoutexternalizesas false (#180). - The main loop reports a
RunPhase(idle,delivering,model,tools,backoff,handoff,
with the round, running tool names, retry time andenteredAt). Visible Worlds receive it through
onRunPhase;getStatus().phasereturns it (#181).
Extension authors
- Worlds can act on their own queued events:
withdrawPending(cursor)removes one before delivery
(recorded ascore.withdrawal, so a restart does not requeue it),promotePending(cursor, trigger)
delivers it now asflush,preemptorinterrupt, andonEventsSettled(events, outcome)reports
when events reach the main session or are discarded. The two host methods are optional; the
Minecraft engine child does not implement them (#180). - The console's
ConsolePromptInputgainsrestore(text, images?), and the icon set gains
message(#182). docs/world-compatibility.mdgrades what a host provides to Worlds in four levels, for bots built
on other architectures.
Console
- The Terminal page's status line follows the core's run phase (delivering, waiting for the model,
running a named tool, retry time, handoff) instead of inferring it from the timeline. The phase
travels in its own/ws/debugframe (#181, #157).
Worlds
- Minecraft: in
automode, a bow shot that cannot be fired at a target more than 8 blocks away
(blocked line of sight, too close, no trajectory) now ends the step as blocked, with the reason,
distance and arrows fired. Previously it switched to melee, chose the bow again on the next round
and kept the event loop busy until the server timed the bot out (#183, #175).