## Why Тесты приёма записи по HTTP заведены давно и не проходили ни разу: один просит файл, которого в репозитории нет и по правилам быть не может, остальные скармливают строку «test audio content» настоящему `ffprobe` и ждут успеха. Из-за этого красный `go test` в проекте перестал что-либо значить — настоящий отказ приёма неотличим от привычного шума, и об ошибке в приёме записи мы узнаем не от машины, а от пользователя. ## What Changes - Проверка приёма перестаёт зависеть от внешнего `ffprobe` и от записи, лежащей в репозитории: длительность в тестах даёт подставной источник метаданных. Проверяем свою логику приёма, а не чужую способность разобрать файл. - Появляется проверка отказа: источник метаданных не смог прочитать запись — приём отвечает отказом, а не успехом. Сегодня это поведение не проверено ничем. - Тесты перестают менять рабочий каталог всего процесса: каталог хранения задаётся приёму снаружи, каждому случаю свой временный. - Поведение приёма записывается требованиями: сегодня оно живёт только в коде, и спорить о том, что здесь правильно, не с чем. Поведение самого приёма при этом не меняется — меняется только то, чем оно проверяется. Задача про проверки. ## Capabilities ### New Capabilities - `intake`: приём записи от внешней программы по HTTP и опрос готовности — что считается принятой записью, что возвращается в ответ и что происходит, когда запись не удалось прочитать. Приём из Telegram эта спека пока не описывает: его не трогает ни одна проверка этой задачи, а требование, написанное без проверки, — предположение. ### Modified Capabilities Нет: спек в проекте ещё не заведено. ## Impact - `internal/controller/http/transcribe_test.go` — переписывается целиком; - сборка сервиса расшифровки в тестах: каталог хранения и источник метаданных подставляются, а не берутся из окружения; - `.golangci.yml` — послабление `errcheck` для тестов снимается, если после правок в тестах не остаётся непроверенных вызовов; - внешних границ, схемы базы, формата файлов на диске и контракта HTTP API изменение не касается.