6.2 KiB
tags, created, status
| tags | created | status | ||||
|---|---|---|---|---|---|---|
|
2026-05-14 | in-progress |
Plan: Mattermost Migration
Контекст: Корпоративная политика требует перехода на corporate-hosted Mattermost. Zulip остаётся (апгрейд отменяется), но работа переезжает в MM. Personal/family/journal остаются в Discord и Zulip соответственно.
Источник: Zulip тред «✔ Zulip migration ⭐»
Scope
| Пространство | Платформа |
|---|---|
| Work (Personal OS) | Mattermost |
| Personal | Discord (без изменений) |
| Family, journal | Zulip / Discord (без изменений) |
Архитектура ботов
Проблема: сейчас executor-воркеры постят от имени Eagle → смешивает интерактив с автономной работой. Решение: отдельные bot-аккаунты с разными identity.
| Bot | Роль | Аватар |
|---|---|---|
| Орёл (Eagle) 🦅 | Персональный ассистент, интерактив, планирование | 🦅 |
| Executor ⚡ | Автономные воркеры, code fixes, PR-отчёты | ⚡ |
| Dax | Scheduled: daily brief, inbox triage, weekly review (переиспользуем корпоративный бот) | — |
Eagle и Executor = новые MM bot accounts. Dax = переиспользуем существующий.
Структура каналов (Categories → Channels)
📁 Personal OS
# general ← Eagle интерактив
# daily-brief ← Dax
# inbox ← Dax (inbox triage)
# focus ← статус фокуса
📁 Executor
# queue ← задачи в очереди, статусы
# worker-1 ← лог активного воркера 1
# worker-2 ← лог активного воркера 2
Задачи
🔴 IT Ops (блокирующая)
Asana задача: #1214799615211686
Задача для IT/Admin: создать bot accounts в корпоративном MM.
Нужные боты:
eagle-bot— персональный ассистент (Eagle / Орёл)executor-bot— автономные воркерыbrief-bot— scheduled доставка брифов. Кандидат на замену: Dax bot (корпоративный бот, уже постит GitHub-ивенты → токен вероятно доступен). Если переиспользуем Dax —brief-botсоздавать не нужно, брифы будут приходить от Dax.
Для каждого бота нужны:
- Bot Account (не incoming webhook — нужен постоянный токен и avatar)
- Токен → передать Алексу для
~/.hermes/.env - Права: читать/писать в каналах Personal OS и Executor
Как проверить текущий доступ:
- В корпоративном MM: ☰ Main Menu → Integrations
- Если пункт есть → можно создавать самому
- Если нет → запросить у MM Admin
Технический план (после получения токенов)
1. Выбор архитектуры
| Подход | Когда использовать |
|---|---|
| Hermes gateway (MM адаптер) | Если нужен интерактивный Eagle (отвечает на сообщения в MM real-time) |
| cron/scripts/prompt files | Только scheduled delivery (brief, inbox, executor-отчёты) |
Hermes уже имеет gateway/platforms/mattermost.py — WebSocket listener + REST API v4.
Config: MATTERMOST_URL, MATTERMOST_TOKEN, MATTERMOST_HOME_CHANNEL.
2. Конфигурация .env
# Mattermost
MATTERMOST_URL=https://mattermost.company.com
MATTERMOST_EAGLE_TOKEN=<eagle-bot token>
MATTERMOST_EXECUTOR_TOKEN=<executor-bot token>
MATTERMOST_DAX_TOKEN=<dax token>
MATTERMOST_TEAM_ID=<team id>
# Channel IDs (узнать после настройки каналов)
MM_CHANNEL_GENERAL=<id>
MM_CHANNEL_DAILY_BRIEF=<id>
MM_CHANNEL_INBOX=<id>
MM_CHANNEL_EXECUTOR_QUEUE=<id>
3. Scheduled delivery (Eagle ← scripts)
Для брифов и inbox triage — чистые скрипты, никакого daemon-а:
hermes --quiet --once "$(cat ~/agent/prompts/daily-brief.md)" \
| curl -s -X POST "$MATTERMOST_URL/api/v4/posts" \
-H "Authorization: Bearer $MATTERMOST_BRIEF_TOKEN" \
-d "{\"channel_id\": \"$MM_CHANNEL_DAILY_BRIEF\", \"message\": \"...\"}"
4. Интерактивный Eagle
Опция A: hermes gateway start с MM адаптером (+ MATTERMOST_TOKEN=<eagle token>)
Опция B: ~200 строк aiohttp WebSocket демон (самодостаточно, без Hermes)
5. История Zulip (опционально)
Прямого инструмента Zulip→MM нет. Варианты:
- Написать конвертер: Zulip JSON export → MM bulk import JSONL
- Кодировать Topics как префикс сообщения:
**[topic]** текст - Или просто начать с чистого листа (если история некритична)
Статус
- IT Ops: проверить доступ к MM Integrations → запросить создание ботов
- Получить токены для eagle-bot, executor-bot, brief-bot
- Создать категории + каналы в MM
- Настроить
.envс токенами - Выбрать архитектуру (Hermes vs custom scripts)
- Подключить scheduled delivery (brief, inbox, executor)
- Подключить интерактивного Eagle
- Решить вопрос с историей Zulip (мигрировать или нет)