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

2.5 KiB

Показывать ход загрузки записи на экране

  • Тип: feature
  • Категория: Очередь — Ход загрузки — доработка того же экрана.
  • Зачем: Гигабайтный файл уходит на сервер молча: до ответа сервера экран не отличает идущую загрузку от зависшей.
  • Теги: goal:upload-reliability

Двигает пункт 3 «Завершения» цели: ход загрузки виден числом, а не одним ожиданием.

Загрузка шестичасовой записи по сотовой сети идёт минутами. Пока сервер не ответил, экран показывает долю отправленного и позволяет её отменить.

Затрагивает

  • экран загрузки: доля отправленного по каждому файлу пачки и отмена;
  • отправка формы с отслеживанием хода вместо простого ожидания ответа;
  • поведение при обрыве связи: что видит человек и что предлагается дальше.

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

  • Доля отправленного растёт по ходу загрузки и доходит до конца. Оракул — тест экрана на подставной отправке, отдающей события хода: показанные значения растут и заканчиваются на сотне.
  • Отмена прекращает загрузку, и задача на сервере не заводится. Оракул — тест: после отмены запрос прерван, вызовов приёма нет.
  • Обрыв связи показывается человекочитаемым текстом с предложением повторить, а не молчанием. Оракул — тест на отправке, завершающейся ошибкой сети.

Рамки

Докачки с места обрыва здесь нет — повтор начинает загрузку заново, а протокол докачки разбирает chunked-upload-choice. Берётся после upload-and-status-screen: экран заводит она.