Files
transcriber/tasks/items/upload-and-status-screen.md
T
av 79ff12548f tasks: спроектирован контракт приложения и переставлена голова очереди
- json-api-for-spa: адреса приложения уехали в своё пространство /app/,
  приём стал POST /app/audiorecords, опрос /api/status/:id убран, заведены
  список, карточка, текст, /app/me и /app/config; имя файла отправителя
  легло своей колонкой рядом с заголовком
- три действия над записью — правка заголовка, возврат в работу и журнал
  событий — собраны задачей audiorecord-actions
- голова очереди: контракт, каркас, экран загрузки, список, действия
- в прежних задачах поправлены адреса, рубежи конвейера и остатки Telegram
2026-08-15 09:06:11 +03:00

3.3 KiB

Сделать экран загрузки записи и её состояния

  • Тип: feature
  • Категория: Очередь — Первое, ради чего приложение открывают; требует каркаса и контракта, оба выше
  • Зачем: Первое, ради чего приложение открывают: отдать файл и увидеть, что с ним происходит.

Экран принимает файл и заводит запись, а её рубеж обновляется сам, пока запись не дошла до конечного рубежа done либо не встала признаком остановки.

Берётся после spa-skeleton и json-api-for-spa.

Затрагивает

  • новый экран приложения: выбор файла, отправка, показ рубежа;
  • опрос рубежа записи и его остановка;
  • показ отказа человекочитаемым текстом из контракта API;
  • предел размера записи на стороне приложения: экран берёт его из GET /app/config, где сервер отдаёт своё же число;
  • docs/database.md — частота опроса числом.

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

  • Выбранный файл уходит на сервер и заводит запись; экран сразу показывает её рубеж. Оракул — тест экрана на подставном API: после отправки на экране идентификатор записи и рубеж uploaded.
  • Опрос сам прекращается, когда запись дошла до done либо встала признаком остановки. Оракул — два теста: после ответа с рубежом done новых запросов к API нет; после ответа с признаком остановки — тоже.
  • Остановленная запись показывается человекочитаемым текстом, а не кодом и не сырой ошибкой; машинного текста отказа контракт не отдаёт вовсе, поэтому текст строится из причины остановки. Оракул — тест на ответе с признаком остановки и причиной.
  • Файл больше предела отклоняется на экране до отправки, с названным числом, и предел экран берёт из GET /app/config, а не держит своей константой. Оракул — тест на файле сверх предела: запроса на загрузку нет, на экране предел числом, и другое число в ответе config меняет показанное.

Рамки

Записи звука в приложении не делаем — файл выбирают в системном диалоге. Список прошлых записей не делаем, это records-list-screen.