Приложение agent-hub на языке Rust, предназначенное для запуска ИИ-агентов и общения с ними через Telegram, получило систему очереди доставки ответов. Это решение позволяет избежать потери сообщений, если мессенджер недоступен в момент завершения работы агента.
Разработчик разделил этапы получения результата и его отправки. Финальный текст сохраняется в локальный файл topics.results.json, после чего отдельная задача занимается доставкой. Это позволяет продолжить отправку после перезапуска приложения без повторного обращения к модели.
Очередь отслеживает прогресс через структуру, содержащую части сообщений, счетчик попыток и время следующего действия. Хранилище ограничено 50 ответами и 8 МиБ данных. Для защиты данных на Unix-системах файл создается с правами 0600.
Пользователи могут управлять очередью через команды: /last выводит последний сохраненный ответ, а /outbox показывает список ожидающих доставки сообщений с возможностью ручного повтора или удаления. Система также учитывает ограничения Telegram, включая паузы RetryAfter.
Архитектура не гарантирует доставку ровно один раз, так как возможны дубликаты при потере подтверждений от сервера. Функциональность протестирована на сценариях сбоев сети, перезапусков и ошибок форматирования HTML, что обеспечивает стабильность работы при временных неполадках.






