uv run pytest -q tests/test_telegram.py — 16 тестов, включая реальные апдейты через aiogram Dispatcher на фейковой сессии. Живой бот: TG_BOT_TOKEN=... в .env, make up, код подключения — после #14 (esia_mock).
Чек-лист
rebase на origin/dev
make lint + make test зелёные (528 passed)
лог в issue (### 2026-10-03)
нет ПДн в логах, нет реальных данных, нет секретов
## Что меняется
Telegram-канал поверх движка диалога: deep-link `/start <код>` → привязка чата через `IdentityProvider`, текст/кнопки → `get_engine().handle()`, рендер `Reply` в inline-клавиатуры (текст дословно, без parse_mode). `TelegramOutbox` доставляет пуши шедулера; без `TG_BOT_TOKEN` — no-op.
Closes #11
## Зона
A
## Как проверить
`uv run pytest -q tests/test_telegram.py` — 16 тестов, включая реальные апдейты через aiogram Dispatcher на фейковой сессии. Живой бот: `TG_BOT_TOKEN=...` в `.env`, `make up`, код подключения — после #14 (esia_mock).
## Чек-лист
- [x] rebase на origin/dev
- [x] make lint + make test зелёные (528 passed)
- [x] лог в issue (### 2026-10-03)
- [x] нет ПДн в логах, нет реальных данных, нет секретов
- [x] общие файлы не трогал
🤖 Generated with [Claude Code](https://claude.com/claude-code)
https://claude.ai/code/session_01DfbiLXFJswz2EK3qtWF7S7
Deep-link /start <code> binds the chat via IdentityProvider, text and
button presses go to get_engine().handle(), replies render as inline
keyboards and are sent verbatim (no parse_mode). TelegramOutbox delivers
scheduler pushes to bound chats and falls back to the previous outbox.
No-op without TG_BOT_TOKEN; logs carry no text or chat ids.
Refs #11
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DfbiLXFJswz2EK3qtWF7S7
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Что меняется
Telegram-канал поверх движка диалога: deep-link
/start <код>→ привязка чата черезIdentityProvider, текст/кнопки →get_engine().handle(), рендерReplyв inline-клавиатуры (текст дословно, без parse_mode).TelegramOutboxдоставляет пуши шедулера; безTG_BOT_TOKEN— no-op.Closes #11
Зона
A
Как проверить
uv run pytest -q tests/test_telegram.py— 16 тестов, включая реальные апдейты через aiogram Dispatcher на фейковой сессии. Живой бот:TG_BOT_TOKEN=...в.env,make up, код подключения — после #14 (esia_mock).Чек-лист
🤖 Generated with Claude Code
https://claude.ai/code/session_01DfbiLXFJswz2EK3qtWF7S7