docs: update README for current telegram and matrix workflow

This commit is contained in:
Mikhail Putilovskij 2026-04-01 01:55:56 +03:00
parent 6a843e8036
commit 27f3da86a7

View file

@ -8,8 +8,8 @@
| Поверхность | Статус | Описание |
|---|---|---|
| Telegram | 🔨 В разработке | Forum Topics: одна группа, чат = тема |
| Matrix | 🔨 В разработке | Space + комнаты: чат = отдельная комната |
| Telegram | 🔨 В разработке | DM + Forum Topics mode, активная реализация сейчас в отдельном worktree |
| Matrix | 🔨 В разработке | Незашифрованные комнаты: новый чат = новая Matrix room |
---
@ -40,7 +40,7 @@ surfaces-bot/
telegram/ — aiogram 3.x адаптер
matrix/ — matrix-nio адаптер
platform/
sdk/
interface.py — PlatformClient Protocol (контракт к SDK)
mock.py — MockPlatformClient (заглушка)
@ -57,17 +57,20 @@ surfaces-bot/
### Telegram ([подробнее](docs/telegram-prototype.md))
- **Чаты** — Forum Topics: бот создаёт личную группу пользователя, каждый чат = отдельная тема
- **Чаты** — основной Telegram UX сейчас развивается в отдельном worktree `feat/telegram-adapter`
- **Forum Topics mode** — бот умеет подключать forum-группу через `/forum`; чат может быть привязан к отдельной теме
- **DM-режим** — базовый диалог и переключение чатов сохраняются
- **Аутентификация** — привязка Telegram аккаунта к аккаунту платформы
- **Диалог** — typing indicator, передача файлов, подтверждение опасных действий через inline-кнопки
- **Настройки** через `/settings`: коннекторы (Gmail, GitHub, Notion...), скиллы, личность агента (SOUL), безопасность, подписка
### Matrix ([подробнее](docs/matrix-prototype.md))
- **Чаты** — Space + комнаты: бот создаёт личное пространство, каждый чат = комната
- **Аутентификация** — привязка Matrix аккаунта к аккаунту платформы
- **Диалог** — typing, файлы, подтверждение действий через реакции 👍/❌, треды для долгих задач
- **Настройки** — отдельная комната «Настройки» с командами `!connectors`, `!skills`, `!soul`, `!safety`, `!status`
- **Чаты**`!new` создаёт реальную новую Matrix room и приглашает туда пользователя
- **Онбординг** — DM-first: инвайт в комнату, приветствие, затем работа через команды `!`
- **Диалог** — сообщения, вложения, реакции 👍/❌ и базовый routing через `EventDispatcher`
- **Настройки** — команды `!skills`, `!connectors`, `!soul`, `!safety`, `!plan`, `!status`, `!whoami`
- **Текущее ограничение** — encrypted DM пока не поддержан в этом репозитории; ручное тестирование Matrix сейчас ведётся в незашифрованных комнатах
---
@ -86,7 +89,7 @@ class PlatformClient(Protocol):
Бот не управляет lifecycle контейнеров — это делает Master (платформа).
Бот передаёт `user_id` + `chat_id` + сообщение; платформа сама решает нужно ли поднять контейнер.
Сейчас: `MockPlatformClient` в `platform/mock.py`.
Сейчас: `MockPlatformClient` в `sdk/mock.py`.
Когда SDK готов: добавляем `SdkPlatformClient`, меняем одну строку в DI. Адаптеры и ядро не трогаем.
---
@ -100,13 +103,29 @@ uv sync # или: pip install -e ".[dev]"
# Тесты
pytest tests/ -v
# Запустить Telegram бота
cp .env.example .env # заполнить TELEGRAM_BOT_TOKEN
python -m adapter.telegram.bot
# Запустить Matrix бота
cp .env.example .env # заполнить MATRIX_* переменные
python -m adapter.matrix.bot
PYTHONPATH=. uv run python -m adapter.matrix.bot
```
### Telegram worktree
Текущая Telegram-разработка идёт в отдельном worktree:
```bash
cd .worktrees/telegram
export BOT_TOKEN=...
PYTHONPATH=. python -m adapter.telegram.bot
```
### Matrix manual QA
Пока Matrix-бот тестируется в незашифрованных комнатах:
```bash
cd /path/to/surfaces-bot
rm -f lambda_matrix.db
PYTHONPATH=. uv run python -m adapter.matrix.bot
```
---