Postmortem-Hermes-Agent-20260627Просил пост — получил соведущего канала.
Как так вышло: Настроил бота-модератора на автоаппрув заявок в чат канала, а Hermes'у выдал админские права.
Задумка была чтобы он по моей прямой команде сделал один пост: анонс с кнопкой вступить, под закреп. Он запостил.
И чтобы в канале не висел голый пост от бота, я по приколу ответил на него «Молодец».
А он ответил. 👀 В канале.
Сидит, говорит, в уголке, ждет момента блеснуть. Я ему «ща порешаю» — он мне «порешай-порешай, я пока чайку попью».
Забавно получилось — но он вообще не должен в канал писать. А он ведет диалог, будто канал — это моя личка с ним.
Кинул дипсику в личку скрин из канала. Он раскопал: gateway просто игнорирует весь роутинг если апдейт пришел с канала.
Ну тип вот, если chat_type не в списке — то он просто не применит никаких фильтров:
chat_type = str(getattr(chat, "type", "")).split(".")[-1].lower()
return chat_type in {"group", "supergroup"}Канал — Третий тип, которого в наборе не оказалось. Поэтому каждый channel post летел по ветке ЛС мимо всех гейтов — allowed_chats, require_mention, всего.
Фикс — одна строка, и вписал ее тоже дипсик, прямо в telegram-плагин gateway. По его патчу я собрал issue + PR — в upstream баг все еще на main.
Дипсик реально похорошел
issue → https://github.com/NousResearch/hermes-agent/issues/53674
PR → https://github.com/NousResearch/hermes-agent/pull/53675
UPD (подчистил канал, не нравится этот small talk в истории, это не несет никакой полезной информации в отличие от самого поста. Довольствуйтесь скрином.)
