Eve в Slack: тред без упоминаний, отмена ответа и хуки событий

В Eve для Slack добавили продолжение треда без нового @, прерывание ответа на лету и реакцию на любое событие, на которое подписано приложение. Раньше без упоминания бот молчал — теперь достаточно активной сессии в ветке.
Тред без @ на каждый ответ
Хук onMessage принимает входящие сообщения. ctx.isBotMentioned() ловит явное упоминание, а ctx.isSubscribed() проверяет, что реплика идёт в треде с живой сессией Eve — и агент отвечает сам.
Если маршрут зависит от состава ветки, ctx.thread.listParticipants() возвращает уникальные id участников в порядке первого появления. Для публичных каналов нужны триггер message.channels и scope channels:history; для приватных — message.groups и groups:history.
Отмена хода и сброс
ctx.cancel()— останавливает текущий ход, сессия остаётся; вызов доreturn { auth }подменяет старый ввод новым сообщениемctx.reset()— закрывает сессию треда; следующая реплика стартует с чистой историей, состоянием и sandbox; в логикеonMessageкоманда сброса укладывается в три строки
Любые события Slack
Хук onEvent принимает сырые колбэки — reaction_added, team_join, channel_created и всё остальное из подписки приложения. Внутри вызывается ctx.receive() для запуска хода агента; метод можно дернуть несколько раз и разнести одно событие на разные сценарии — например, team_join развести по welcome-каналам.
Подключение: документация Slack channel или eve channels add slack.
Источник: eve adds new Slack event hooks and session controls.