wip: reviewer fixes in progress — pause point
This commit is contained in:
parent
24c61468d7
commit
c95360ce1f
2 changed files with 74 additions and 0 deletions
73
.continue-here.md
Normal file
73
.continue-here.md
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
# 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`
|
||||
|
|
@ -68,6 +68,7 @@ async def handle_topic_message(message: Message, dispatcher: EventDispatcher) ->
|
|||
logger.warning("topic_deleted_during_message", thread_id=thread_id)
|
||||
else:
|
||||
logger.error("telegram_error", error=str(e))
|
||||
await _safe_edit(placeholder, "Ошибка отправки, попробуй ещё раз")
|
||||
except Exception:
|
||||
logger.exception("platform_error", user_id=user_id, thread_id=thread_id)
|
||||
await _safe_edit(placeholder, "Сервис временно недоступен, попробуй позже")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue