0.19
An agent's log stores each message once, so agent sessions from earlier releases don't fold.
Start new agent sessions
0.19 stores each message's content once, in the ai.control.requested command
that brought it in. The AI reducers advance to a2.ai.state.v27,
a2.ai.context.v7, and a2.ai.control.v6, and a log written before 0.19
doesn't fold: reduceAIState() and deriveUIMessages() throw on an
ai.message.created that no command explains. Start new agent sessions after
you deploy. Earlier sessions keep their events in history, but their state
can't be read.
Payloads and types
Code that reads the AI log directly changes with it:
ai.message.createdrecords an admission as{ messageId, role, generate? }, without the message.MessageCreatedPayloadtakes no type argument.ai.control.committedcarries no message content. Queued inputs andAIState.active.inputareInputRefs,{ id, role, generate, afterStepOf? }, andActiveTurntakes no type argument.AIState.inbox.itemskeep theirmessage, now withrole.
Provider tools under fx() and pi()
agent() throws a TypeError when a provider-defined tool
(type: 'provider', such as a provider's web search) is passed with fx() or
pi(). Before, both harnesses dropped it without a word, so the model never
saw it. Take it out of those agents' tools.