3.8 KiB
3.8 KiB
Continue Here — Telegram Forum Redesign
Paused: 2026-04-02
Branch: feat/telegram-forum
Где мы
Реализован forum-first Telegram адаптер. Прошли ревью (@reviewer). Фиксим замечания ревьюера.
Из замечаний сделан только fix #1 — message.py placeholder теперь обновляется при TelegramBadRequest (не thread not found). Остальное НЕ сделано.
Незакрытые замечания ревьюера
КРИТИЧНО
- #1 message.py — placeholder обновляется при telegram ошибке ✅ (сделано, не закоммичено)
- #2 commands.py —
/archive,/rename,/newне имеютtry/exceptна Bot API вызовы. SQLite exceptions всплывают как необработанные → бот молчит
ВАЖНО
- #3 start.py —
_check_and_prune_stale_topicsне изолирован: любая non-TelegramBadRequest исключение ронит весь/start. Нуженtry/except Exceptionвокруг всего вызова - #4 commands.py /new — не перехватывает лимит Telegram 1000 топиков (
TelegramBadRequestс "topics limit") - #5 topic_events.py — ревьюер упомянул уведомление при закрытии, но в спеке этого нет — пропустить
- #6 bot.py — нет таймаута на platform calls. Добавить
asyncio.wait_for(..., timeout=30)вокругstream_messageвmessage.py
РЕКОМЕНДАЦИИ
- #7 db.py — добавить
CREATE INDEX IF NOT EXISTS idx_chats_user_id ON chats(user_id)вinit_db() - #8 settings.py — проверить что не обращается к старому
chat_idвместоthread_id
Незакрытые тесты
test_message.py— нет теста:stream_message()бросает исключение → placeholder показывает ошибкуtest_commands.py— нет теста:/newприTelegramBadRequest(лимит топиков)test_commands.py— нет теста:/archiveв General топике (thread_id=None)
Незакоммиченные изменения
adapter/telegram/handlers/message.py— fix #1 (нужно закоммитить вместе с остальными фиксами)
Что делать дальше
- Применить все фиксы из списка выше
- Добавить недостающие тесты
pytest tests/ -v— все зелёныеgit commit -m "fix(tg): reviewer fixes — error handling, timeouts, db index"- Merge
feat/telegram-forum→main
Контекст
- Спека:
docs/superpowers/specs/2026-04-01-telegram-forum-redesign.md - План:
docs/superpowers/plans/2026-04-01-telegram-forum-redesign.md - Ревью: было сделано через
@reviewerагент, результат выше - workflow: хотфиксы делает Claude Code напрямую (< 20 строк). Новые фичи — через
codex:rescue
Важные решения сессии
- Forum-first:
(user_id, thread_id)PK, без супергруппы - Закрытие топика через UI → автоархив
- Переименование через UI → sync в БД
- FSM только для settings (soul editing), не для маршрутизации
- Стриминг через
sdk.stream_message()→ прогрессивныйedit_text - workspace маппинг — ответственность платформы, адаптер передаёт
thread_idкакcontext_id