surfaces/.continue-here.md

73 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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`). Остальное НЕ сделано.
---
## Незакрытые замечания ревьюера
### КРИТИЧНО
- [x] **#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 (нужно закоммитить вместе с остальными фиксами)
---
## Что делать дальше
1. Применить все фиксы из списка выше
2. Добавить недостающие тесты
3. `pytest tests/ -v` — все зелёные
4. `git commit -m "fix(tg): reviewer fixes — error handling, timeouts, db index"`
5. 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`