Files
obsidian-vault/personal/tech/hermes-pairing-multi-profile.md
T

5.6 KiB
Executable File
Raw Blame History

title, created, updated, type, namespace, status, tags, related
title created updated type namespace status tags related
Hermes pairing — approve пользователей, multi-profile 2026-09-29 2026-09-29 tech personal active — процедура проверена 2026-09-29
hermes
pairing
telegram
mattermost
multi-profile
personal/tech/hermes-whale-mattermost-transport.md
personal/projects/personal-os/eagle-dashboard.md

Hermes pairing — approve пользователей (multi-profile)

Процедура выдачи доступа новому пользователю к боту Hermes. Проверена 2026-09-29 на инстансе whale для telegram и mattermost.

🔴 ГЛАВНОЕ: pairing — per-profile, и это легко перепутать

hermes pairing работает внутри того профиля, который задан HERMES_HOME. На этой машине профилей несколько (минимум eagle и whale), и у каждого свой список одобренных пользователей.

/Users/admin/.hermes/            ← базовый профиль (Eagle)
/Users/admin/.hermes/hermes-whale/   ← профиль Whale (Кит)

🔴 Перед любым approve — проверить инстанс:

echo "HERMES_HOME=$HERMES_HOME"

Ожидаемо для Кита: HERMES_HOME=/Users/admin/.hermes/hermes-whale. Alex отдельно предупреждает: не трогать eagle (он остановлен, но конфиг живой).

Команды

# назначить профиль явно (надёжнее, чем полагаться на окружение)
export HERMES_HOME=/Users/admin/.hermes/hermes-whale

# список: pending + approved
hermes pairing list

# одобрить
hermes pairing approve <platform> <code>

Полный путь к бинарю (если hermes не в PATH):

/Users/admin/.hermes/hermes-agent/venv/bin/python -m hermes_cli.main pairing list

Подкоманды: list · approve · revoke · clear-pending.

Как выглядит рабочий прогон

$ hermes pairing list

  Pending Pairing Requests (1):
  Platform     Code       User ID              Name                 Age
  --------     ----       -------              ----                 ---
  telegram     fb7ba963   312016878            Alexey               1m ago

  No approved users.

$ hermes pairing approve telegram AYJ6JPM9
  Approved! User Alexey (312016878) on telegram can now use the bot~
  They'll be recognized automatically on their next message.

После обоих approve (2026-09-29):

  Approved Users (2):
  Platform     User ID              Name
  ----------   -------              ----
  telegram     312016878            Alexey
  mattermost   cbwsorzwoigbtrdnteugnx4aqo   admin

🔴 Питфолл: код в pending ≠ код, который даёт Alex

В обоих прогонах 2026-09-29 код в pending отличался от того, что прислал Alex:

Платформа В pending Alex прислал Итог
telegram fb7ba963 AYJ6JPM9 ✅ approve прошёл
mattermost f8c6ca55 QHYL8TB9 ✅ approve прошёл

Оба раза approve по присланному коду сработал, очередь опустела, одобрен ровно один пользователь на платформу. То есть код из pending — не единственный валидный (вероятно, привязка идёт по последнему запросу пользователя, а не по показанной строке).

📌 Практика: получив код от Alex — выполнять его как есть, не «исправлять» на код из pending. И всегда сверять pairing list после: должно стать Pending: 0 и появиться ожидаемый user id.

Связка platform ↔ user id (этот сетап)

Платформа User ID Name Что это
telegram 312016878 Alexey MY_TELEGRAM_ID из ~/Documents/documentation/tokens/
mattermost cbwsorzwoigbtrdnteugnx4aqo admin аккаунт Alex в MM (admin@qentra.top)

Что pairing НЕ делает

  • Не поднимает платформу. Транспорт должен быть подключён отдельно (env-переменные + блок в config.yaml). Для MM — 5 ключей MATTERMOST_*, см. personal/tech/hermes-whale-mattermost-transport.md.
  • Не выдаёт токен бота. Это разные вещи: токен — доступ бота к платформе, pairing — доступ человека к боту.
  • Не влияет на другой профиль. Одобрение в whale не даёт доступа в eagle и наоборот.

Проверка после approve

export HERMES_HOME=/Users/admin/.hermes/hermes-whale
hermes pairing list        # ожидаем Pending: 0 + нужный user в Approved

Приёмка — сообщение от Alex в UI платформы и ответ бота, не «pairing list показывает строку».

Связанные заметки