v0.4.3 — Detect interrupted runs after backend restarts
English
A backend restart can leave an unfinished assistant turn without emitting an idle/error event. The bot previously skipped outcome verification when a session's history timestamp was unchanged, so that interruption could remain silent.
The existing one-minute watchdog now verifies tracked unfinished runs even with unchanged history. Reconnection also checks unfinished recovered turns. Fresh history and a second idle check protect against warnings while another prompt is running or an agent is waiting for an answer. Expected stops remain quiet, and handled-run markers retain normal notification deduplication.
Verified backend idle and delivered-terminal queue gates are released together, so a following queued prompt keeps its own running state. /session now labels an idle backend Not running, rather than implying that the task completed successfully. Interruption wording is clearer in both languages.
Validation: existing syntax/documentation/smoke checks and CI; bounded manual scenarios for lost events with unchanged history, reconnect after lost in-memory state, completed tasks, questions, expected stops, backend backoff, overlapping prompts and queued dispatch. English/Russian phone previews were inspected. Deployed revision, live health and retained profiles/bindings were verified. No new dependencies or test files.
Русский
Перезапуск сервера может оставить ответ ассистента незавершённым, без события idle или ошибки. Раньше бот пропускал проверку исхода, если отметка обновления истории не изменилась, и такой обрыв мог остаться без предупреждения.
Существующая проверка раз в минуту теперь сверяет незавершённые запуски и при неизменной истории. Переподключение также проверяет незавершённые восстановленные ходы. Свежая история и повторная проверка idle защищают от предупреждений во время нового запроса или ожидания ответа на вопрос. Ожидаемые остановки остаются тихими; отметки обработанных запусков защищают от повторных оповещений при обычном восстановлении.
Условия свободного сервера и доставленного исхода снимаются вместе, поэтому следующий запрос в очереди сохраняет свой статус выполняющейся работы. /session теперь показывает для свободного сервера «Не выполняется», не подразумевая успешное завершение задачи. Формулировки предупреждения уточнены на обоих языках.
Проверены существующие проверки синтаксиса, документации и smoke, CI, потеря события при неизменной истории, переподключение после утраты состояния в памяти, завершённые задачи, вопросы, ожидаемые остановки, backoff, пересечение запросов и выпуск очереди. Телефонные превью ENG/RU просмотрены визуально. Рабочая ревизия, здоровье бота и сохранность профилей/привязок подтверждены. Новых зависимостей и тестовых файлов нет.