[2026-09-29] eagle: personal/plans/mattermost-mention-thread-autoresponse.md personal/plans/mattermost-mention-thread-autoresponse.md.bak-mention-result personal/tech/hermes-whale-mattermost-transport.md

This commit is contained in:
Alexey Martemyanov committed 2026-09-29 12:46:04 +06:00
1 parent b30684ecfb
commit e75cf79e79
3 files changed
+273

No files matched your search

@@ -260,6 +260,46 @@ ssh kraken "docker exec mm-postgres psql -U mmuser -d mattermost -t -c \
⚠️ Без членства в канале `@whale` не работает даже при `REQUIRE_MENTION=true` —
упоминание не создаёт доставку, оно лишь фильтр поверх уже приходящих событий.
### ✅ Тред-посты больше не требуют меншна (патч 2026-09-29)
**Проблема:** mention-гейт применялся к **любому** не-DM, включая треды. Пост в треде,
начатом ботом, без `@whale` молча дропался (подтверждено: пост 12:38:40 в треде
`pcoiddzrqty3ipqtozgcs9ttte` не попал в `gateway.log`).
**Решение (коммит `9b46ba791a`, hermes-agent):**
```python
# plugins/platforms/mattermost/adapter.py, _handle_ws_event
is_thread_reply = bool(post.get("root_id"))
...
if (
require_mention
and not is_free_channel
and not has_mention
and not is_thread_reply
):
return
```
**Правило после патча:**
| Место поста | Меншн `@whale` |
|---|---|
| Корень канала | ✅ обязателен |
| Тред (`root_id` непустой) | ❌ не нужен |
| DM | ❌ не нужен (был и раньше) |
`MATTERMOST_REQUIRE_MENTION=true` остаётся; `FREE_RESPONSE_CHANNELS` не тронут.
Если меншн в треде всё же написан — он убирается из текста перед отправкой агенту.
⚠️ **Патч активен только после рестарта gateway** — адаптер импортируется при старте.
Рестарт делает Alex (`gateway run --replace` из активной сессии её убивает, см. §Инцидент).
**Файлы:**
- План + итог: [[personal/plans/mattermost-mention-thread-autoresponse.md]]
- Бэкап адаптера: `~/.hermes/hermes-whale/backups/20260929-mm-mention/adapter.py`
- Тесты: `tests/gateway/test_mattermost.py` — 46 passed (3 новых)
### 📌 Питфолл диагностики: `mattermost psql`
В контейнере `mattermost` **нет `psql`** (`exec: "psql": executable file not found`).