Pause the school on warning notices until the owner dismisses them.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -11,25 +11,25 @@
|
||||
|
||||
## Задачи
|
||||
|
||||
- [ ] `Notice` с `pause`: работник ставит `running=false`. `SetRunning(true)` игнор, пока есть
|
||||
- [x] `Notice` с `pause`: работник ставит `running=false`. `SetRunning(true)` игнор, пока есть
|
||||
хотя бы одно такое уведомление (как нелегальный skip — не fatal)
|
||||
- [ ] Модал (не тост): висит, очередь если несколько, на экране один. Закрытие — dismiss
|
||||
- [ ] Sticky в сейве школы; после загрузки и Open — снова кадры. Info по-прежнему не сохранять
|
||||
- [ ] Dismiss pausing — только хозяин; гость кадр видит, dismiss игнор / HTTP `403` `not-owner`
|
||||
- [ ] Потолок 8 sticky; девятый не эмитить. После последнего dismiss часы сами не запускать
|
||||
- [ ] Ванильный `GenerationFailed` (error, pause) можно положить в каталог; эмит с портрета —
|
||||
- [x] Модал (не тост): висит, очередь если несколько, на экране один. Закрытие — dismiss
|
||||
- [x] Sticky в сейве школы; после загрузки и Open — снова кадры. Info по-прежнему не сохранять
|
||||
- [x] Dismiss pausing — только хозяин; гость кадр видит, dismiss игнор / HTTP `403` `not-owner`
|
||||
- [x] Потолок 8 sticky; девятый не эмитить. После последнего dismiss часы сами не запускать
|
||||
- [x] Ванильный `GenerationFailed` (error, pause) можно положить в каталог; эмит с портрета —
|
||||
фаза 67, здесь достаточно тестового/внутреннего поста на доску
|
||||
- [ ] [`protocol.md`](../../protocol.md) — поведение паузы и прав, без лишнего бампа версии
|
||||
- [x] [`protocol.md`](../../protocol.md) — поведение паузы и прав, без лишнего бампа версии
|
||||
(версия уже +1 в 64)
|
||||
|
||||
## Тесты, без которых фаза не закрыта
|
||||
|
||||
- [ ] Пост pausing-notice: `running` становится false; последующий SetRunning(true) оставляет паузу
|
||||
- [ ] Dismiss последнего pausing: SetRunning(true) снова включает часы; без Play сами не идут
|
||||
- [ ] Сейв/загрузка: sticky на месте, info нет
|
||||
- [ ] Гость не снимает паузу dismiss-ом; хозяин снимает
|
||||
- [ ] Клиентский: модал не гаснет по TTL; очередь показывает следующий после закрытия
|
||||
- [ ] Хостовый: Open после рестарта работника отдаёт sticky, часы на паузе
|
||||
- [x] Пост pausing-notice: `running` становится false; последующий SetRunning(true) оставляет паузу
|
||||
- [x] Dismiss последнего pausing: SetRunning(true) снова включает часы; без Play сами не идут
|
||||
- [x] Сейв/загрузка: sticky на месте, info нет
|
||||
- [x] Гость не снимает паузу dismiss-ом; хозяин снимает
|
||||
- [x] Клиентский: модал не гаснет по TTL; очередь показывает следующий после закрытия
|
||||
- [x] Хостовый: Open после рестарта работника отдаёт sticky, часы на паузе
|
||||
|
||||
## Критерий готовности
|
||||
|
||||
|
||||
Reference in New Issue
Block a user