When a speaker finishes with an end symbol, the turn was only advanced in the message_sent hook. But by that time, the message had already been broadcast to other agents, whose before_model_resolve ran with the old turn state, causing them to be blocked by the turn gate (forced no-reply). Fix: - Move turn advance for both NO_REPLY and end-symbol cases to before_message_write, which fires before the message is broadcast. - Guard 1: Only the current speaker can advance the turn (accountId check). - Guard 2: Only process assistant messages (role check). before_message_write fires for incoming user messages too, which contain end symbols from other agents and would cause cascading turn advances. - Use sessionTurnHandled set to prevent double-advancing in message_sent.
50 KiB
50 KiB