- 11 записей типа goal закрыты с причиной, называющей задачи-наследники; ROADMAP.md удалён, индекс остался один — BACKLOG.md; - 33 записи переписаны: ссылка «Двигает пункты N «Завершения» цели» уступила место прямому утверждению — без целей номера пунктов вели в никуда; - шапка BACKLOG.md размечена парой <!-- стадия -->, порядок строк теперь объявлен зависимостью, а не важностью.
3.2 KiB
3.2 KiB
✨ Отдавать текст в сотни килобайт файлом, а не сотней сообщений
- Тип: feature
- Категория: Очередь — Сотни килобайт текста появляются только после долгих записей.
- Зачем: Отправитель Telegram режет текст по 4000 знаков: расшифровка шестичасовой записи придёт сотней сообщений подряд.
Текст в несколько сотен килобайт доходит и в Telegram, и в браузере.
Деление по словам (internal/adapter/telegram/split.go) остаётся для обычной
расшифровки; сверх названного числа частей вместо потока сообщений уходит один
файл.
Затрагивает
internal/adapter/telegram— отправка документа помимо текстовых сообщений;- порог, за которым текст уходит файлом, и его место в конфигурации;
- формат отправляемого файла и его имя, которое не раскрывает имени, данного пользователем;
- экран чтения записи: показ текста в сотни килобайт и его выгрузка файлом;
docs/database.md— порог числом.
Критерии приёмки
- Текст, разбиваемый более чем на названное число частей, уходит в Telegram одним файлом, а не потоком сообщений. Оракул — тест отправителя на тексте в 300 КиБ: вызов отправки документа один, вызовов отправки сообщения нет.
- Обычная расшифровка по-прежнему приходит сообщениями, разбитыми по словам. Оракул — существующий тест деления плюс тест на тексте в две части.
- Имя отправляемого файла не содержит имени, данного пользователем, и текста записи. Оракул — тест: имя собрано из идентификатора задачи.
- Экран чтения открывает текст в сотни килобайт целиком и даёт выгрузить его файлом. Оракул — тест экрана на подставном API с текстом в 300 КиБ.
Рамки
Порог считается в частях, а не в байтах: он производен от предела сообщения Telegram, который задаёт не наш сервис. Формат файла — простой текст, разметки не добавляем. Инвариант приватности: имя файла пользователя в журнал и в имя отправляемого документа не попадает.