diff --git a/tasks/BACKLOG.md b/tasks/BACKLOG.md index ef24a63..0384e49 100644 --- a/tasks/BACKLOG.md +++ b/tasks/BACKLOG.md @@ -43,7 +43,6 @@ ## Очередь -- [✨ Поднимать сервис без токена бота, работая одним входом](items/local-run-without-telegram-token.md) — Адаптер Telegram проверяет токен обращением к Telegram и роняет старт, а боевым токеном запускаться запрещено: проверить поведение живым прогоном не может ни одна задача. - [🐞 Убрать код провайдера из журнала запросов хранилища](items/provider-code-out-of-storage-log.md) — Строка запроса с кодом входа целиком уезжает в таблицу _logs и лежит там пять суток, хотя спека access требует, чтобы код в журнал не попадал. - [🐞 Вести учёт употреблённых состояний входа на сервере](items/server-side-login-state.md) — Одноразовость возврата держится на уборке куки, то есть на браузере: сервер не помнит, какие состояния уже потрачены. - [🧹 Строить адрес входа из настроек коллекции, а не из конфига](items/login-url-from-collection-settings.md) — Первая половина входа собрана руками из конфига и на настройки провайдера не смотрит, вторая берётся из коллекции: обновление библиотеки изменит только вторую половину. diff --git a/tasks/items/local-run-without-telegram-token.md b/tasks/items/local-run-without-telegram-token.md deleted file mode 100644 index 3e1a46e..0000000 --- a/tasks/items/local-run-without-telegram-token.md +++ /dev/null @@ -1,54 +0,0 @@ -# ✨ Поднимать сервис без токена бота, работая одним входом - -- **Тип:** feature -- **Категория:** Очередь — Поднято к долгам входа: живой прогон нужен именно им, а сегодня его нет ни у одной задачи. -- **Зачем:** Адаптер Telegram проверяет токен обращением к Telegram и роняет старт, а боевым токеном запускаться запрещено: проверить поведение живым прогоном не может ни одна задача. - -Замечено при попытке проверить вход вживую в задаче `oidc-login` 2026-08-12; -подтверждено прогоном: с выдуманным токеном старт кончается отказом создания -отправителя раньше, чем поднимается HTTP-сервер. - -Отсюда следствие, которое стоит дороже самого неудобства: **поведенческая -верификация живым запуском недоступна проекту вовсе**. Всякая задача, меняющая -наблюдаемое поведение, проверяется только тестами, а «поднять и посмотреть» -остаётся человеку с боевым конфигом. - -Запрет запускаться боевым токеном снимать не надо: второй процесс с тем же -токеном перехватывает обновления у работающего. - -Разбор 2026-08-13 нашёл вторую половину работы, из-за которой запись сменила тип -с обслуживания на функцию. Отправитель ответов сегодня существует всегда, и -конвейер зовёт его без проверки. Уберите его — и задача, пришедшая из Telegram и -лежащая в базе с прошлого запуска, дойдёт до ответа и уронит процесс. Что с ней -происходит без бота, надо решить и записать нормой: молчаливая потеря принятой -записи запрещена инвариантом. - -## Затрагивает - -- создание отправителя Telegram при старте в `main.go`; -- ответ отправителю в конвейере расшифровки: задача из Telegram, дошедшая до - ответа при отсутствующем боте; -- секция `[telegram]` конфига и её образец; -- раздел «Запреты» в `CLAUDE.md` — строка про боевой токен остаётся, но рядом - появляется способ поднять сервис без него; -- `docs/review.md`, подраздел «Недоступно проверке»: строка про недоступность - живого прогона снимается или сужается. - -## Критерии приёмки - -- Сервис поднимается с пустым токеном бота: HTTP отвечает, воркеры идут, бот не - создан. Оракул — запуск с конфигом без токена и запрос `GET /health`: код 200. -- Отсутствие бота названо в журнале один раз при старте, а не молчанием. Оракул — - тот же запуск: в выводе есть строка о том, что бот не поднят и почему. -- Поведение с настоящим токеном не изменилось. Оракул — тест на создание - отправителя с непустым токеном: прежний путь сохранён. -- Задача из Telegram, дошедшая до ответа при отсутствующем боте, не роняет - процесс и не теряется молча. Оракул — тест конвейера с заведённой задачей - источника Telegram и без отправителя: процесс жив, задача осталась в - достигнутом состоянии, в повтор не ушла и в `failed` не переведена, а - недоставка видна записью журнала с идентификатором задачи. - -Правка критерия 2026-08-13, решение владельца на чекпоинте: прежняя редакция -требовала повтора либо `failed`, и оба исхода отвергнуты дизайном с ценой — -пометка отказа на удавшейся работе врёт панели и метрике, а повтор не помогает, -потому что бот от ожидания не появится.