- intake-limits-measure меряет четыре звена, которых не берёт speechkit-limits: приём из Telegram и по HTTP, конвертацию и заливку в Object Storage; - reject-oversized-recording отклоняет запись сверх потолка на приёме, long-text-delivery отдаёт текст в сотни килобайт файлом вместо сотни сообщений Telegram; - все шесть пунктов «Завершения» цели теперь закрыты задачами.
2.9 KiB
2.9 KiB
✨ Отклонять на приёме запись сверх потолка
- Тип: feature
- Категория: Очередь
- Зачем: Запись сверх потолка принимается молча и висит в конвейере до истечения часового захвата, а человек всё это время ждёт текста.
- Теги: goal:long-recordings
Двигает пункт 2 «Завершения» цели: запись длиннее потолка отклоняется на приёме понятным текстом, а не отказом через час.
Потолок задаётся конфигурацией, а не зашивается в код: числа приходят из
разведок intake-limits-measure и speechkit-limits, и меняются они без сборки.
Затрагивает
TranscribeService.createTranscribeJob— проверка длительности и веса до записи файла на диск;- контракт
POST /api/audio: код и тело ответа на запись сверх потолка; - ответ бота на слишком длинную запись;
- секция конфигурации: потолок длительности и потолок веса;
docs/database.md— настройки с числовым значением.
Критерии приёмки
- Запись длиннее потолка отклоняется на приёме: задача не заводится, файл на диске не остаётся. Оракул — тест приёма на записи сверх потолка: задач ноль, каталог хранения пуст.
- Отправитель видит человекочитаемый текст с названным пределом, а не код ошибки. Оракул — тест: в теле ответа предел числом, текста внутренней ошибки нет.
- Запись в пределах потолка принимается по-прежнему. Оракул — существующие тесты приёма по HTTP.
- Потолок меняется конфигурацией без пересборки. Оракул — тест разбора конфигурации с двумя разными значениями.
Рамки
Берётся после intake-limits-measure: до неё потолок брать неоткуда. Длительность
известна из ffprobe — значит, проверка идёт после чтения метаданных, но до
записи в базу. Предел веса на стороне сервера уже есть
(router.MaxMultipartMemory), и он не отменяется, а дополняется.