From fa719adc8dea8035d664371656a4fb8aff96ca73 Mon Sep 17 00:00:00 2001 From: Mikhail Putilovskij Date: Thu, 2 Apr 2026 17:19:57 +0300 Subject: [PATCH] =?UTF-8?q?chore:=20remove=20.continue-here.md=20=E2=80=94?= =?UTF-8?q?=20telegram=20QA=20complete?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .continue-here.md | 73 ----------------------------------------------- 1 file changed, 73 deletions(-) delete mode 100644 .continue-here.md diff --git a/.continue-here.md b/.continue-here.md deleted file mode 100644 index 0066725..0000000 --- a/.continue-here.md +++ /dev/null @@ -1,73 +0,0 @@ -# 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`