- порядок беклога и роадмапа назначен слоями: проверки, которым можно верить → долги входа → владелец записи и контракт API → конвейер под тестами → приложение и возможности поверх; у каждого движения записана причина; - заведены восемь задач под пункты «Завершения», которых не закрывала ни одна запись, — цель any-audio-source была без задач вовсе; - у четырёх задач сняты критерии, требовавшие того, что делает задача ниже по очереди; исправлены ссылки на несуществующий repo/sqlite и на отменённую разведку об очереди.
35 lines
2.5 KiB
Markdown
35 lines
2.5 KiB
Markdown
# ✨ Показывать ход загрузки записи на экране
|
|
|
|
- **Тип:** feature
|
|
- **Категория:** Очередь — Ход загрузки — доработка того же экрана.
|
|
- **Зачем:** Гигабайтный файл уходит на сервер молча: до ответа сервера экран не отличает идущую загрузку от зависшей.
|
|
- **Теги:** goal:upload-reliability
|
|
|
|
Двигает пункт 3 «Завершения» цели: ход загрузки виден числом, а не одним
|
|
ожиданием.
|
|
|
|
Загрузка шестичасовой записи по сотовой сети идёт минутами. Пока сервер не
|
|
ответил, экран показывает долю отправленного и позволяет её отменить.
|
|
|
|
## Затрагивает
|
|
|
|
- экран загрузки: доля отправленного по каждому файлу пачки и отмена;
|
|
- отправка формы с отслеживанием хода вместо простого ожидания ответа;
|
|
- поведение при обрыве связи: что видит человек и что предлагается дальше.
|
|
|
|
## Критерии приёмки
|
|
|
|
- Доля отправленного растёт по ходу загрузки и доходит до конца. Оракул — тест
|
|
экрана на подставной отправке, отдающей события хода: показанные значения
|
|
растут и заканчиваются на сотне.
|
|
- Отмена прекращает загрузку, и задача на сервере не заводится. Оракул — тест:
|
|
после отмены запрос прерван, вызовов приёма нет.
|
|
- Обрыв связи показывается человекочитаемым текстом с предложением повторить, а
|
|
не молчанием. Оракул — тест на отправке, завершающейся ошибкой сети.
|
|
|
|
## Рамки
|
|
|
|
Докачки с места обрыва здесь нет — повтор начинает загрузку заново, а протокол
|
|
докачки разбирает `chunked-upload-choice`. Берётся после
|
|
`upload-and-status-screen`: экран заводит она.
|