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

46 lines
3.3 KiB
Markdown

# ✨ Сделать приложение устанавливаемым на телефон
- **Тип:** feature
- **Категория:** Очередь — Ставить на телефон есть смысл, когда есть что ставить.
- **Зачем:** Приложение, живущее вкладкой браузера, теряется среди прочих: ярлыка на экране у него нет.
- **Теги:** goal:web-access
Двигает пункты 5 и 6 «Завершения» цели: приложение ставится с телефона и
запускается с ярлыка без адресной строки, а открытое без сети показывает это
состоянием.
Берётся после того, как есть что ставить, — то есть после
`records-list-screen`.
## Затрагивает
- манифест приложения: имя, иконки под размеры экранов, цвета, режим показа;
- service worker: регистрация, обновление версии, поведение без сети;
- раздача манифеста и service worker с правильными заголовками и без длинного
кэша;
- версионирование собранной статики, чтобы установленное приложение обновлялось;
- `docs/conventions/web-ui.md` — раздел про статику и кэш;
- `docs/security.md` — service worker перехватывает запросы, и это новая
поверхность.
## Критерии приёмки
- Приложение предлагается к установке и после установки запускается с ярлыка на
отдельном экране, без адресной строки. Оракул — проверка на телефоне и
сверка манифеста инструментом браузера.
- Открытое без сети приложение показывает состояние «связи нет», а не пустую
страницу и не ошибку браузера. Оракул — тест либо ручная проверка с
выключенной сетью.
- Новая выкладка доходит до установленного приложения: старая статика из кэша не
переживает обновление. Оракул — установка, выкладка изменённой версии,
перезапуск приложения показывает новую.
- Service worker не кэширует ответы API и не отдаёт чужие данные после смены
сессии. Оракул — тест: после выхода и входа другой учётной записью список
записей чужих не содержит.
## Рамки
Офлайн-чтения готовых расшифровок и очереди отправки без сети **не делаем**
это за границей цели. Web Push не делаем: уведомления идут через apprise и ntfy,
цель `ready-notification`.