surfaces/.planning/PROJECT.md

4.3 KiB
Raw Blame History

Lambda Lab 3.0 — Surfaces

What This Is

Telegram и Matrix боты для взаимодействия пользователя с AI-агентом Lambda. Каждый бот — тонкий адаптер поверх общего ядра (core/), изолирующего бизнес-логику от транспорта. Платформа подключается через sdk/interface.py Protocol; сейчас используется MockPlatformClient.

Core Value

Пользователь может вести диалог с Lambda-агентом через любой из поддерживаемых мессенджеров без изменения ядра системы.

Requirements

Validated

  • ✓ core/ — унифицированный протокол событий, EventDispatcher, StateStore, ChatManager, AuthManager, SettingsManager — existing
  • ✓ adapter/telegram/ — forum-first адаптер (Threaded Mode), /start, /new, /archive, /rename, /settings, стриминг ответов — existing, QA passed
  • ✓ adapter/matrix/ — DM-first адаптер, invite flow, !new, !skills, !soul, !safety, room-per-chat — existing
  • ✓ sdk/mock.py — MockPlatformClient: stream_message, get_or_create_user, get_settings, update_settings — existing

Active

  • Matrix QA — ручное тестирование Matrix адаптера, фиксация багов
  • SDK integration — заменить MockPlatformClient реальным Lambda SDK (когда платформа готова)
  • Production hardening — конфиг для деплоя, логирование, мониторинг

Out of Scope

  • E2EE для Matrix (python-olm не собирается на macOS/ARM) — инфраструктурная задача, отдельный трек
  • Supergroup forum mode для Telegram — заменён Threaded Mode как основным режимом
  • Telegram DM-first режим — заменён forum-first (Threaded Mode)

Context

  • Python 3.11+, aiogram 3.4+, matrix-nio 0.21+, SQLite, pytest-asyncio
  • Threaded Mode — Bot API 9.3, Mac клиент имеет известные баги (новые топики не сразу видны в сайдбаре)
  • Lambda platform SDK ещё не готов, всё работает через MockPlatformClient
  • Архитектура: Hexagonal / Ports-and-Adapters; core/ не зависит от транспорта

Constraints

  • Tech stack: aiogram 3.x для Telegram, matrix-nio для Matrix — не менять без обсуждения
  • Platform: SDK подключается только через sdk/interface.py Protocol — core/ и adapters не трогаются при смене реализации
  • Telegram: Threaded Mode — единственный поддерживаемый режим; closeForumTopic/deleteForumTopic не работают в personal chat forums
  • E2EE: python-olm не собирается на текущей среде — Matrix работает только без шифрования

Key Decisions

Decision Rationale Outcome
Forum-first (Threaded Mode) для Telegram Bot API 9.3 позволяет личный чат как форум — чище, без суперпруппы ✓ Good
(user_id, thread_id) как PK в chats Изоляция контекстов по топику ✓ Good
MockPlatformClient через sdk/interface.py Не ждать SDK, разрабатывать независимо ✓ Good
DM-first для Matrix (не Space-first) Space lifecycle слишком сложен для первого этапа ✓ Good
Отказ от E2EE в Matrix python-olm не собирается на macOS/ARM — Pending

Evolution

After each phase transition:

  1. Requirements invalidated? → Move to Out of Scope with reason
  2. Requirements validated? → Move to Validated with phase reference
  3. New requirements emerged? → Add to Active
  4. Decisions to log? → Add to Key Decisions

After each milestone:

  1. Full review of all sections
  2. Core Value check — still the right priority?
  3. Update Context with current state

Last updated: 2026-04-02 after initialization