feat(matrix): land QA follow-ups and refresh docs

- harden Matrix onboarding/chat lifecycle after manual QA
- refresh README and Matrix docs to match current behavior
- add local ignores for runtime artifacts and include current planning/report docs

Closes #7
Closes #9
Closes #14
This commit is contained in:
Mikhail Putilovskij 2026-04-05 19:08:58 +03:00
parent 7fce4c9b3e
commit 6ced154124
35 changed files with 8380 additions and 67 deletions

View file

@ -9,7 +9,7 @@
| Поверхность | Статус | Описание |
|---|---|---|
| Telegram | 🔨 В разработке | DM + Forum Topics mode, активная реализация сейчас в отдельном worktree |
| Matrix | 🔨 В разработке | Незашифрованные комнаты: новый чат = новая Matrix room |
| Matrix | 🔨 В разработке | Незашифрованные комнаты: бот создаёт private Space и отдельную room на каждый чат |
---
@ -66,11 +66,11 @@ surfaces-bot/
### Matrix ([подробнее](docs/matrix-prototype.md))
- **Чаты** — `!new` создаёт реальную новую Matrix room и приглашает туда пользователя
- **Онбординг** — DM-first: инвайт в комнату, приветствие, затем работа через команды `!`
- **Диалог** — сообщения, вложения, реакции 👍/❌ и базовый routing через `EventDispatcher`
- **Настройки** — команды `!skills`, `!connectors`, `!soul`, `!safety`, `!plan`, `!status`, `!whoami`
- **Текущее ограничение** — encrypted DM пока не поддержан в этом репозитории; ручное тестирование Matrix сейчас ведётся в незашифрованных комнатах
- **Онбординг** — при первом invite бот создаёт private Space `Lambda — {display_name}` и первую комнату `Чат 1`, сразу приглашая туда пользователя
- **Чаты** — `!new`, `!chats`, `!rename`, `!archive`, `!help`; новые комнаты регистрируются в локальном `ChatManager`
- **Диалог** — сообщения, вложения, подтверждения `!yes` / `!no` и routing через `EventDispatcher`
- **Стабильность** — перед `sync_forever()` бот делает bootstrap sync и стартует с `since`, чтобы не переигрывать старую timeline после рестарта
- **Текущее ограничение** — encrypted DM пока не поддержан; ручное тестирование Matrix ведётся в незашифрованных комнатах и зависит от локального state-store бота
---
@ -125,6 +125,7 @@ PYTHONPATH=. python -m adapter.telegram.bot
```bash
cd /path/to/surfaces-bot
rm -f lambda_matrix.db
rm -rf matrix_store
PYTHONPATH=. uv run python -m adapter.matrix.bot
```