From dbda1be265d3fce36202956ae0d8c3bf11393cae Mon Sep 17 00:00:00 2001 From: Alexey Martemyanov Date: Wed, 17 Jun 2026 15:39:21 +0600 Subject: [PATCH] [2026-06-17] hermes-eagle-mac.md: add webhook + zulip-router section, port 8645, TODO --- family/how-to/hermes-eagle-mac.md | 67 +++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) diff --git a/family/how-to/hermes-eagle-mac.md b/family/how-to/hermes-eagle-mac.md index 6e7da891..cc6ea3f9 100644 --- a/family/how-to/hermes-eagle-mac.md +++ b/family/how-to/hermes-eagle-mac.md @@ -225,6 +225,73 @@ Claude падает с "Failed to spawn process". Проверить логи: --- +--- + +## Webhook и интеграция с zulip-router + +Eagle использует webhook platform для приёма сообщений от zulip-router. +Напрямую в Zulip через Events API Eagle **не подписан** — все сообщения +приходят через роутер. + +### Конфигурация + +`~/.hermes/config.yaml` (секция `platforms`): + +```yaml +platforms: + webhook: + enabled: true + extra: + host: 127.0.0.1 + port: 8645 + routes: + eagle: + secret: INSECURE_NO_AUTH + prompt: '{{message.content}}' + deliver: zulip +``` + +### Порт 8645 + +Eagle слушает webhook на **127.0.0.1:8645**. Это **единственный** порт Eagle. + +### Схема работы + +``` +Zulip + └── Events API → [zulip-router] (Go, Docker) + ├── @Валера → POST balda-agent:8091 + ├── @Клавдий → POST claudio-agent:8092 + └── @Орёл / @Кит → POST host.docker.internal:8645/webhooks/{eagle,whale} +``` + +- Роутер использует credentials Eagle (`eagle-bot@zulip.qentra.top`) +- Eagle принимает сообщения **только через webhook** — не через Zulip поллинг +- `@**Орёл**` в Zulip → роутер подхватывает → POST `/webhooks/eagle` → Eagle отвечает + +### Проблема (2026-06-17) + +Eagle не отвечал на `@**Орёл**`. Причины: + +1. **Второй gateway (PID 96351)** был запущен вручную из того же `~/.hermes/` и + занял порт 8644, так как 8645 был уже занят Китом (PID 90402). +2. Кит (Whale) по ошибке сидел на порту 8645 — порту Eagle. +3. Роутер слал на `:8644`, а Eagle ждал на `:8645`. + +**Что сделано:** +- Конфиг Eagle приведён к состоянию: порт 8645, webhook с route `eagle` +- Второй gateway (PID 96351) — удалить (дубликат) +- Кита пересадить на другой порт (не 8645) + +### TODO + +- [ ] Пересадить Кита с 8645 на другой порт (8646?) +- [ ] Убить PID 96351 (дубль) +- [ ] Перезапустить Eagle на 8645 +- [ ] Проверить `@**Орёл**` через роутер + +--- + ## Связанные страницы - [[claude-python-cli-proxy]] — Python Claude CLI proxy (claude-code-openai-wrapper, порт 8090)