tasks: local-run-without-telegram-token переведена в feature
- Тип сменён с chore: подъём без токена бота меняет наблюдаемое поведение и требует нормы, которой в openspec/specs нет. - В тело записан второй предмет работы — судьба задачи из Telegram, дошедшей до ответа при отсутствующем боте; он же стал четвёртым критерием приёмки.
This commit is contained in:
+1
-1
@@ -43,7 +43,7 @@
|
|||||||
|
|
||||||
## Очередь
|
## Очередь
|
||||||
|
|
||||||
- [🧹 Поднимать сервис локально без действующего токена бота](items/local-run-without-telegram-token.md) — Адаптер Telegram проверяет токен обращением к Telegram и роняет старт, а боевым токеном запускаться запрещено: проверить поведение живым прогоном не может ни одна задача.
|
- [✨ Поднимать сервис без токена бота, работая одним входом](items/local-run-without-telegram-token.md) — Адаптер Telegram проверяет токен обращением к Telegram и роняет старт, а боевым токеном запускаться запрещено: проверить поведение живым прогоном не может ни одна задача.
|
||||||
- [🐞 Убрать код провайдера из журнала запросов хранилища](items/provider-code-out-of-storage-log.md) — Строка запроса с кодом входа целиком уезжает в таблицу _logs и лежит там пять суток, хотя спека access требует, чтобы код в журнал не попадал.
|
- [🐞 Убрать код провайдера из журнала запросов хранилища](items/provider-code-out-of-storage-log.md) — Строка запроса с кодом входа целиком уезжает в таблицу _logs и лежит там пять суток, хотя спека access требует, чтобы код в журнал не попадал.
|
||||||
- [🐞 Вести учёт употреблённых состояний входа на сервере](items/server-side-login-state.md) — Одноразовость возврата держится на уборке куки, то есть на браузере: сервер не помнит, какие состояния уже потрачены.
|
- [🐞 Вести учёт употреблённых состояний входа на сервере](items/server-side-login-state.md) — Одноразовость возврата держится на уборке куки, то есть на браузере: сервер не помнит, какие состояния уже потрачены.
|
||||||
- [🧹 Строить адрес входа из настроек коллекции, а не из конфига](items/login-url-from-collection-settings.md) — Первая половина входа собрана руками из конфига и на настройки провайдера не смотрит, вторая берётся из коллекции: обновление библиотеки изменит только вторую половину.
|
- [🧹 Строить адрес входа из настроек коллекции, а не из конфига](items/login-url-from-collection-settings.md) — Первая половина входа собрана руками из конфига и на настройки провайдера не смотрит, вторая берётся из коллекции: обновление библиотеки изменит только вторую половину.
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# 🧹 Поднимать сервис локально без действующего токена бота
|
# ✨ Поднимать сервис без токена бота, работая одним входом
|
||||||
|
|
||||||
- **Тип:** chore
|
- **Тип:** feature
|
||||||
- **Категория:** Очередь — Поднято к долгам входа: живой прогон нужен именно им, а сегодня его нет ни у одной задачи.
|
- **Категория:** Очередь — Поднято к долгам входа: живой прогон нужен именно им, а сегодня его нет ни у одной задачи.
|
||||||
- **Зачем:** Адаптер Telegram проверяет токен обращением к Telegram и роняет старт, а боевым токеном запускаться запрещено: проверить поведение живым прогоном не может ни одна задача.
|
- **Зачем:** Адаптер Telegram проверяет токен обращением к Telegram и роняет старт, а боевым токеном запускаться запрещено: проверить поведение живым прогоном не может ни одна задача.
|
||||||
|
|
||||||
@@ -16,9 +16,18 @@
|
|||||||
Запрет запускаться боевым токеном снимать не надо: второй процесс с тем же
|
Запрет запускаться боевым токеном снимать не надо: второй процесс с тем же
|
||||||
токеном перехватывает обновления у работающего.
|
токеном перехватывает обновления у работающего.
|
||||||
|
|
||||||
|
Разбор 2026-08-13 нашёл вторую половину работы, из-за которой запись сменила тип
|
||||||
|
с обслуживания на функцию. Отправитель ответов сегодня существует всегда, и
|
||||||
|
конвейер зовёт его без проверки. Уберите его — и задача, пришедшая из Telegram и
|
||||||
|
лежащая в базе с прошлого запуска, дойдёт до ответа и уронит процесс. Что с ней
|
||||||
|
происходит без бота, надо решить и записать нормой: молчаливая потеря принятой
|
||||||
|
записи запрещена инвариантом.
|
||||||
|
|
||||||
## Затрагивает
|
## Затрагивает
|
||||||
|
|
||||||
- создание отправителя Telegram при старте в `main.go`;
|
- создание отправителя Telegram при старте в `main.go`;
|
||||||
|
- ответ отправителю в конвейере расшифровки: задача из Telegram, дошедшая до
|
||||||
|
ответа при отсутствующем боте;
|
||||||
- секция `[telegram]` конфига и её образец;
|
- секция `[telegram]` конфига и её образец;
|
||||||
- раздел «Запреты» в `CLAUDE.md` — строка про боевой токен остаётся, но рядом
|
- раздел «Запреты» в `CLAUDE.md` — строка про боевой токен остаётся, но рядом
|
||||||
появляется способ поднять сервис без него;
|
появляется способ поднять сервис без него;
|
||||||
@@ -33,3 +42,7 @@
|
|||||||
тот же запуск: в выводе есть строка о том, что бот не поднят и почему.
|
тот же запуск: в выводе есть строка о том, что бот не поднят и почему.
|
||||||
- Поведение с настоящим токеном не изменилось. Оракул — тест на создание
|
- Поведение с настоящим токеном не изменилось. Оракул — тест на создание
|
||||||
отправителя с непустым токеном: прежний путь сохранён.
|
отправителя с непустым токеном: прежний путь сохранён.
|
||||||
|
- Задача из Telegram, дошедшая до ответа при отсутствующем боте, не роняет
|
||||||
|
процесс и не теряется молча. Оракул — тест конвейера с заведённой задачей
|
||||||
|
источника Telegram и без отправителя: процесс жив, задача осталась пригодной к
|
||||||
|
повтору либо перешла в `failed`, и об этом есть строка журнала.
|
||||||
|
|||||||
Reference in New Issue
Block a user