Files
h-school/docs/phases/11-events/67-notice-image.md
T

47 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Фаза 67. Картинка с уведомления
## Зависимости
- [Фаза 65](65-warning-pause.md)
- [Фаза 66](66-scene-prompt.md)
- [Фаза 63](63-krea-only.md) (ваниль уже на Krea; не блокер сборки кнопки, но дефолт генерации)
## Зачем
Событие может предложить нарисовать человека из факта. Кнопка использует тот же сборщик, что
карточка, включая сцену.
## Задачи
- [x] `EventDef.action`: `none` | `generateImage`. `generateImage` без `personId` на `Notice`
не рисовать, не 500
- [x] Ваниль `GenerationFailed`: error, pause, `generateImage`. Эмит из сервиса портретов при
неуспехе Swarm (тот же personId и kind). Утро и звонок остаются `none`
- [x] UI: на модале/тосте с action — кнопка; вызов существующего портретного HTTP (или узкого
`POST .../notices/{id}/generate`, если так проще связать права). Kind по умолчанию `full`.
Строки через `t(...)`
- [x] Хозяин только. Гость кнопку не активирует. Успех не снимает паузу сам — нужен dismiss
- [x] [`protocol.md`](../../protocol.md) — HTTP действия, тем же коммитом. Сокет не бампить
повторно, если кадр 64 уже несёт action/personId; иначе добавить поля в том же смысле,
что 64, без лишнего +1 если укладка уже есть
## Тесты, без которых фаза не закрыта
- [x] Каталог: `GenerationFailed` с `generateImage`; `DayStarted` без кнопки
- [x] Неуспех генерации ставит pausing notice с personId; успех — не ставит
- [x] Хостовый: хозяин с кнопки получает PNG (или тот же outcome, что карточка); гость 403
- [x] Промпт этой генерации содержит сцену узла человека (как 66), не пустой коридор без людей
- [x] Notice без personId и с `generateImage` не дергает Swarm
- [x] Клиентский: кнопка есть только при action; info-тост дня кнопки не имеет
## Критерий готовности
- Сломать/отменить Swarm на портрете: ошибка паузит школу, кнопка перерисовывает того же
- Утро по-прежнему тост без кнопки
- Гость видит модал и не запускает GPU
## Стоп
Не автогенерация утром всем. Не арт локации без человека. Не LLM. Не снимать паузу успехом
картинки. Не третью колонку.