Files
transcriber/tasks/items/long-text-delivery.md
T
av 8739b18a9f tasks: очередь расставлена от базы к деталям
- порядок беклога и роадмапа назначен слоями: проверки, которым можно
  верить → долги входа → владелец записи и контракт API → конвейер под
  тестами → приложение и возможности поверх; у каждого движения записана
  причина;
- заведены восемь задач под пункты «Завершения», которых не закрывала ни
  одна запись, — цель any-audio-source была без задач вовсе;
- у четырёх задач сняты критерии, требовавшие того, что делает задача ниже
  по очереди; исправлены ссылки на несуществующий repo/sqlite и на
  отменённую разведку об очереди.
2026-08-12 20:48:53 +03:00

3.3 KiB

Отдавать текст в сотни килобайт файлом, а не сотней сообщений

  • Тип: feature
  • Категория: Очередь — Сотни килобайт текста появляются только после долгих записей.
  • Зачем: Отправитель Telegram режет текст по 4000 знаков: расшифровка шестичасовой записи придёт сотней сообщений подряд.
  • Теги: goal:long-recordings

Двигает пункт 4 «Завершения» цели: текст в несколько сотен килобайт доходит и в Telegram, и в браузере.

Деление по словам (internal/adapter/telegram/split.go) остаётся для обычной расшифровки; сверх названного числа частей вместо потока сообщений уходит один файл.

Затрагивает

  • internal/adapter/telegram — отправка документа помимо текстовых сообщений;
  • порог, за которым текст уходит файлом, и его место в конфигурации;
  • формат отправляемого файла и его имя, которое не раскрывает имени, данного пользователем;
  • экран чтения записи: показ текста в сотни килобайт и его выгрузка файлом;
  • docs/database.md — порог числом.

Критерии приёмки

  • Текст, разбиваемый более чем на названное число частей, уходит в Telegram одним файлом, а не потоком сообщений. Оракул — тест отправителя на тексте в 300 КиБ: вызов отправки документа один, вызовов отправки сообщения нет.
  • Обычная расшифровка по-прежнему приходит сообщениями, разбитыми по словам. Оракул — существующий тест деления плюс тест на тексте в две части.
  • Имя отправляемого файла не содержит имени, данного пользователем, и текста записи. Оракул — тест: имя собрано из идентификатора задачи.
  • Экран чтения открывает текст в сотни килобайт целиком и даёт выгрузить его файлом. Оракул — тест экрана на подставном API с текстом в 300 КиБ.

Рамки

Порог считается в частях, а не в байтах: он производен от предела сообщения Telegram, который задаёт не наш сервис. Формат файла — простой текст, разметки не добавляем. Инвариант приватности: имя файла пользователя в журнал и в имя отправляемого документа не попадает.