0.167.43

Fixed

  • max_iterations: дублирующий персист FinalContent поверх live-цепочки ( — P3, аудит 2026-08-context). Ветка StopReason == "max_iterations" в handleInbound повторно персистила result.FinalContent отдельным assistant-сообщением, хотя runner уже выполнил live-персист assistant-сообщений с tool_calls каждой итерации (ADR 2026-08-20, ) — пользователь видел два подряд идущих assistant-сообщения с одинаковым текстом (второе — без tool_calls). Повторный AddMessage удалён; ветка зеркалит loop_detected: публикация limitMsg + recordUsage без повторной записи. Тест: полный ход через handleInbound (агент с agent_max_iterations=2, strategy=react, mock-провайдер с tool-вызовами) + spy-store — ровно 2 assistant-персиста (по одному на итерацию, оба с tool_calls), без дублей контента.