Each turn now emits start and complete events a plugin module can hook and append text to.
turn.start, turn.step and turn.complete events exist but only the disabled plugin hook modules can answer them.
What's wrong with this entry?
Every interactive turn now opens a turn id, emits turn.start with the text you submitted, and on finishing emits turn.complete with the last real assistant message, elapsed milliseconds, whether it was aborted, and the turn id. A module handler that returns text differing from the model's answer has that text appended to the transcript as a system notice prefixed with the names of the handlers that contributed. turn.step exists as a third event.
- The events are emitted unconditionally for interactive turns; nothing happens unless a plugin module registers handlers for them.
turn.complete
Strings lifted out of the shipped bundle, so the claim above can be checked against them.