удалён вход Telegram, владелец записи стал обязателен в схеме
- убраны клиент бота, транспорт обновлений, отправитель сообщений, сборка входа при старте, секция настроек и зависимость go-telegram-bot-api; из конвейера ушла доставка ответа отправителю — исход виден опросом готовности. Колонки адресата и значение источника остались в схеме: применённые шаги не переписываются - шаг 202608140003 запрещает пустого владельца у аудиозаписи и у файла; существующие строки он не проверяет, и это принято сознательно — искать их надо запросом до выкладки - ревью нашло два пред-существующих дефекта, оба закрыты: пустой второй ответ распознавателя стирал сохранённую расшифровку, а пустая расшифровка перестала быть заметной вместе с убранной доставкой. Попутно поднят golang.org/x/image до v0.45.0 — красный шаг vulns, воспроизводился и на чистом master
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
# Вход Telegram убран целиком, а не выключен признаком
|
||||
|
||||
- **Дата:** 2026-08-15
|
||||
- **Источник:** openspec/changes/archive/2026-08-15-remove-telegram-intake/design.md,
|
||||
разделы «Context» и «Формы решения, между которыми выбирали»
|
||||
|
||||
## Решение
|
||||
|
||||
Вход Telegram убран из сервиса целиком: клиент, транспорт обновлений, отправитель
|
||||
сообщений, сборка входа при старте, список допущенных людей, секция настроек и
|
||||
зависимость. Убран **временно** — возврат заводится новым изменением вместе со
|
||||
связью чата с учётной записью.
|
||||
|
||||
Хранилище при этом не тронуто: колонки `tg_chat_id`, `tg_reply_message_id` и
|
||||
значение `telegram` перечня источников остаются в схеме вместе с записями,
|
||||
которые их заполнили.
|
||||
|
||||
## Почему
|
||||
|
||||
Цитата источника:
|
||||
|
||||
> Сервис принимает записи двумя входами, и входы расходятся в главном: у записи,
|
||||
> пришедшей из приложения, есть владелец, а у записи, пришедшей от бота, владельца
|
||||
> нет и быть не может — связи чата с учётной записью сервис не ведёт. Пока такие
|
||||
> записи заводятся, правило «каждая запись принадлежит человеку» действует
|
||||
> наполовину.
|
||||
|
||||
Отвергнуты две формы решения, обе с названной ценой:
|
||||
|
||||
> **Выключить вход признаком, код оставить.** Признак `telegram.enabled` заведён
|
||||
> 2026-08-13 и обязателен, а приём по HTTP владельца уже требует: одна правка
|
||||
> ключа в боевом файле даёт «новых записей без владельца не заводится» ценой ноля
|
||||
> строк кода и мгновенным возвратом. Отвергнуто по причине из раздела «Why»:
|
||||
> двойная модель остаётся в коде, и оговорку про бота продолжает платить каждая
|
||||
> следующая задача.
|
||||
>
|
||||
> **Сузить бота до исходящего канала.** Приём убрать, отправку оставить с одним
|
||||
> адресатом — чатом владельца строкой настроек. Отвергнуто потому, что заводит
|
||||
> понятие «канал уведомления владельца», которое тут же переделает задача
|
||||
> `ntfy-delivery`.
|
||||
|
||||
Решениями, которые это изменение отменяет, были
|
||||
[ADR-2026-08-13-telegram-intent-declared-not-inferred](ADR-2026-08-13-telegram-intent-declared-not-inferred.md)
|
||||
и
|
||||
[ADR-2026-08-13-telegram-outage-does-not-block-startup](ADR-2026-08-13-telegram-outage-does-not-block-startup.md):
|
||||
оба нормировали подъём входа, которого больше нет. Доводы их при этом устояли и
|
||||
понадобятся возврату — оба продолжают отвечать на вопрос «что делать с входом,
|
||||
чей внешний собеседник недоступен».
|
||||
|
||||
## Последствия
|
||||
|
||||
- `+` модель одна: оговорка про запись без владельца ушла из спек приёма,
|
||||
доступа, конвейера и хранилища.
|
||||
- `+` зависимость `go-telegram-bot-api` ушла из манифеста вместе с двумя путями
|
||||
утечки токена, которые проект закрывал двумя задачами.
|
||||
- `−` у сервиса не осталось входа, которым человек может воспользоваться:
|
||||
приложения нет, личных ключей для программ нет, и до этих задач запись кладут
|
||||
собранным руками запросом с сессией из браузера. Владелец окно принял.
|
||||
- `−` записи, застрявшие в конвейере на минуту выкладки, доходят до текста, и
|
||||
ответа в чат по ним не уходит. Смягчения нет: чат и есть убираемый вход.
|
||||
- `−` бот у Telegram остаётся зарегистрированным и на вид живым, а ключ доступа —
|
||||
в настройках выкладки под возврат входа (решение владельца от 2026-08-14).
|
||||
Отправитель голосового не получит ни ответа, ни отказа.
|
||||
Reference in New Issue
Block a user