0.108.0

Added

  • Webhook-канал — новый канал связи для приёма команд от внешних систем через уникальные HTTP-эндпоинты (POST /api/v1/hooks/<token>). Внешние системы (Алиса, IFTTT, n8n, мониторинг) отправляют текстовые команды агенту, получают request_id и опрашивают статус через GET /api/v1/hooks/<token>/status.
  • Управление webhook’ами через API: CRUD-эндпоинты POST/GET/PUT/DELETE /api/v1/agents/{id}/webhooks, история запросов GET .../webhooks/{id}/history.
  • WebUI: вкладка «Webhooks» в карточке агента — создание, копирование URL, редактирование, удаление, просмотр истории запросов.
  • Контекст агента: при обработке webhook-запроса агенту инжектируется история предыдущих запросов через этот же webhook (до 20 записей).
  • Безопасность: токены 32 байта (256 бит энтропии), IP-whitelist (CIDR), rate limit 30/мин на webhook, маскирование токена в API и логах, 404 для неактивных/удалённых webhook’ов.
  • Таблицы webhooks и webhook_requests — миграция 061 для SQLite и PostgreSQL.
  • Store: CreateWebhook, GetWebhook, GetWebhookByToken, ListWebhooksByAgent, UpdateWebhook, DeleteWebhook, CreateWebhookRequest, GetWebhookRequest, UpdateWebhookRequestStatus, ListWebhookRequestsByWebhook.
  • WebhookChannel — реализация интерфейса Channel для outbound-сообщений (запись результата в БД).
  • Тесты: unit-тесты Store (TestWebhookCRUD, TestWebhookRequestLifecycle), handler-тесты (TestWebhookHandleHook_*, TestWebhookGetStatus_*, TestMaskToken, TestIsIPAllowed).