43 lines
2.8 KiB
Markdown
43 lines
2.8 KiB
Markdown
# Фаза 65. Варнинг и пауза
|
||
|
||
## Зависимости
|
||
|
||
- [Фаза 64](64-event-defs.md)
|
||
- [Фаза 39](../08-session/39-school-owners.md)
|
||
|
||
## Зачем
|
||
|
||
Ошибка и варнинг останавливают школу, пока хозяин не закроет карточку. F5 не проглатывает их.
|
||
|
||
## Задачи
|
||
|
||
- [x] `Notice` с `pause`: работник ставит `running=false`. `SetRunning(true)` игнор, пока есть
|
||
хотя бы одно такое уведомление (как нелегальный skip — не fatal)
|
||
- [x] Модал (не тост): висит, очередь если несколько, на экране один. Закрытие — dismiss
|
||
- [x] Sticky в сейве школы; после загрузки и Open — снова кадры. Info по-прежнему не сохранять
|
||
- [x] Dismiss pausing — только хозяин; гость кадр видит, dismiss игнор / HTTP `403` `not-owner`
|
||
- [x] Потолок 8 sticky; девятый не эмитить. После последнего dismiss часы сами не запускать
|
||
- [x] Ванильный `GenerationFailed` (error, pause) можно положить в каталог; эмит с портрета —
|
||
фаза 67, здесь достаточно тестового/внутреннего поста на доску
|
||
- [x] [`protocol.md`](../../protocol.md) — поведение паузы и прав, без лишнего бампа версии
|
||
(версия уже +1 в 64)
|
||
|
||
## Тесты, без которых фаза не закрыта
|
||
|
||
- [x] Пост pausing-notice: `running` становится false; последующий SetRunning(true) оставляет паузу
|
||
- [x] Dismiss последнего pausing: SetRunning(true) снова включает часы; без Play сами не идут
|
||
- [x] Сейв/загрузка: sticky на месте, info нет
|
||
- [x] Гость не снимает паузу dismiss-ом; хозяин снимает
|
||
- [x] Клиентский: модал не гаснет по TTL; очередь показывает следующий после закрытия
|
||
- [x] Хостовый: Open после рестарта работника отдаёт sticky, часы на паузе
|
||
|
||
## Критерий готовности
|
||
|
||
- Варнинг встаёт на паузу; Play серый/бесполезный, пока модал открыт
|
||
- Закрыли — можно нажать Play. F5: модал снова, пауза держится
|
||
- Гость модал видит и не закрывает школу
|
||
|
||
## Стоп
|
||
|
||
Не авто-Play. Не колонку. Не вклад сцены. Не кнопку «создать картинку». Не эмит Swarm в этой фазе.
|