[2026-06-17] hermes-eagle-mac.md: rewrite Eagle+zulip-router section — plan from thread
This commit is contained in:
@@ -248,14 +248,28 @@ credentials Eagle для поллинга Zulip Events API, но Eagle сам в
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Eagle: приём сообщений через zulip-router (2026-06-17)
|
## Eagle: переключение на zulip-router (2026-06-17)
|
||||||
|
|
||||||
### Текущее состояние
|
### Задача
|
||||||
|
|
||||||
Eagle использует webhook platform для приёма сообщений от zulip-router.
|
Eagle должен получать сообщения **только через zulip-router** (вебхуки),
|
||||||
Напрямую в Zulip через Events API Eagle не подписан.
|
без прямого Zulip polling. Кастомный код «роутера» в Hermes (`eagle-thread-guard`)
|
||||||
|
не должен мешаться.
|
||||||
|
|
||||||
**Конфиг Eagle:** `~/.hermes/config.yaml`
|
### План
|
||||||
|
|
||||||
|
1. Отключить Zulip polling у Eagle (если включён)
|
||||||
|
2. Настроить Eagle на приём вебхуков от zulip-router:
|
||||||
|
- webhook route `/webhooks/eagle` на порту 8645
|
||||||
|
- роутер шлёт на `host.docker.internal:8645/webhooks/eagle`
|
||||||
|
3. Проверить:
|
||||||
|
- curl POST `/webhooks/eagle` → 202
|
||||||
|
- `@**Орёл**` в Zulip → Eagle отвечает
|
||||||
|
- ответы только на @mention Орла (не на чужие)
|
||||||
|
|
||||||
|
### Конфиг Eagle
|
||||||
|
|
||||||
|
`~/.hermes/config.yaml` — секция `platforms`:
|
||||||
```yaml
|
```yaml
|
||||||
platforms:
|
platforms:
|
||||||
webhook:
|
webhook:
|
||||||
@@ -270,33 +284,20 @@ platforms:
|
|||||||
deliver: zulip
|
deliver: zulip
|
||||||
```
|
```
|
||||||
|
|
||||||
**Проблема:** Eagle не отвечает на `@**Орёл**`. Роутер шлёт на `:8644`,
|
Zulip platform (`platforms.zulip`) — отсутствует, polling отключён.
|
||||||
Eagle слушает на `:8645`. Второй gateway (PID 96351) запущен вручную,
|
|
||||||
занял порт 8644.
|
|
||||||
|
|
||||||
### План
|
### Что сделано
|
||||||
|
|
||||||
1. **Занять порт 8645** — Eagle должен слушать на 8645. Сейчас порт занят другим процессом.
|
- Конфиг Eagle: порт 8645, webhook с route `eagle`
|
||||||
2. **Проверить** — curl POST `/webhooks/eagle` → 202, `@**Орёл**` отвечает
|
- Eagle перезапущен, порт 8645 слушается
|
||||||
|
- curl POST `/webhooks/eagle` → 202 Accepted
|
||||||
|
- Роутер должен слать на `:8645`, но шлёт на `:8644` — не настроено
|
||||||
|
|
||||||
### Что сделано по zulip-router
|
### Статус
|
||||||
|
|
||||||
**2026-06-16 — деплой:**
|
- [ ] **Порт 8645 занят** — сейчас на нём сидит Кит (Whale), Eagle на 8644
|
||||||
- Написан код роутера (`~/Developer/zulip-router/`, Go, ~260 LOC)
|
- [ ] **Роутер шлёт на `:8644`** — надо поправить на `:8645`
|
||||||
- Создан compose (`~/Docker/zulip-router/docker-compose.yaml`)
|
- [ ] **`@**Орёл**`** — не отвечает
|
||||||
- `.env` с API key Eagle
|
|
||||||
- Запущен, Events API polling отключён у balda-ботов
|
|
||||||
|
|
||||||
**2026-06-17 — отладка:**
|
|
||||||
- Eagle добавлен в роутер (webhook на `:8644`)
|
|
||||||
- Кит добавлен в роутер (webhook на `:8644`)
|
|
||||||
- Обнаружена проблема trigger=owner
|
|
||||||
- Конфиг Eagle исправлен: порт 8645, webhook route `eagle`
|
|
||||||
|
|
||||||
### Статус проблем
|
|
||||||
|
|
||||||
- [ ] **trigger=owner** — роутер не фильтрует @mention другого бота
|
|
||||||
- [ ] **Код в репе vs контейнере** — рассинхронизация
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user