1.4 KiB
1.4 KiB
Конвенции (CONVENTIONS.md)
- Асинхронность: Весь код бота асинхронный (
asyncio). Вызовы SDK и Matrix-клиента выполняются черезawait. Блокирующие вызовы (если они есть) должны выноситься в тредпул. - Обработка ошибок: Бот не должен падать из-за ошибок отдельного агента. Ошибки SDK (например,
PlatformError) отлавливаются в боте и возвращаются пользователю в виде системных сообщений или уведомлений. - Стейтлесс-подход: Поверхность хранит минимальный стейт (только локальный SQLite для связки
room_id<->platform_chat_id). Вся история сообщений и память лежат на стороне агентов. - Переменные окружения: Бот полностью конфигурируется через
.env(префиксыMATRIX_иSURFACES_). - Добавление новой поверхности: Новая поверхность должна быть самостоятельной папкой в
adapter/, реализовыватьconverter.py, и переиспользоватьsdk/real.pyиcore/protocol.py.