Document slice 11: notices, scene prompt contributions, and a Krea-only catalog.
ci / server (push) Failing after 3m53s
ci / client (push) Successful in 35s

Agents can implement toasts, pausing warnings, and bounded object prompts without bringing SDXL back into new schools.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Leonid Pershin
2026-08-20 20:13:23 +03:00
co-authored by Cursor
parent 0428852388
commit ea3f5c7bf1
10 changed files with 472 additions and 0 deletions
+46
View File
@@ -0,0 +1,46 @@
# Фаза 67. Картинка с уведомления
## Зависимости
- [Фаза 65](65-warning-pause.md)
- [Фаза 66](66-scene-prompt.md)
- [Фаза 63](63-krea-only.md) (ваниль уже на Krea; не блокер сборки кнопки, но дефолт генерации)
## Зачем
Событие может предложить нарисовать человека из факта. Кнопка использует тот же сборщик, что
карточка, включая сцену.
## Задачи
- [ ] `EventDef.action`: `none` | `generateImage`. `generateImage` без `personId` на `Notice`
не рисовать, не 500
- [ ] Ваниль `GenerationFailed`: error, pause, `generateImage`. Эмит из сервиса портретов при
неуспехе Swarm (тот же personId и kind). Утро и звонок остаются `none`
- [ ] UI: на модале/тосте с action — кнопка; вызов существующего портретного HTTP (или узкого
`POST .../notices/{id}/generate`, если так проще связать права). Kind по умолчанию `full`.
Строки через `t(...)`
- [ ] Хозяин только. Гость кнопку не активирует. Успех не снимает паузу сам — нужен dismiss
- [ ] [`protocol.md`](../../protocol.md) — HTTP действия, тем же коммитом. Сокет не бампить
повторно, если кадр 64 уже несёт action/personId; иначе добавить поля в том же смысле,
что 64, без лишнего +1 если укладка уже есть
## Тесты, без которых фаза не закрыта
- [ ] Каталог: `GenerationFailed` с `generateImage`; `DayStarted` без кнопки
- [ ] Неуспех генерации ставит pausing notice с personId; успех — не ставит
- [ ] Хостовый: хозяин с кнопки получает PNG (или тот же outcome, что карточка); гость 403
- [ ] Промпт этой генерации содержит сцену узла человека (как 66), не пустой коридор без людей
- [ ] Notice без personId и с `generateImage` не дергает Swarm
- [ ] Клиентский: кнопка есть только при action; info-тост дня кнопки не имеет
## Критерий готовности
- Сломать/отменить Swarm на портрете: ошибка паузит школу, кнопка перерисовывает того же
- Утро по-прежнему тост без кнопки
- Гость видит модал и не запускает GPU
## Стоп
Не автогенерация утром всем. Не арт локации без человека. Не LLM. Не снимать паузу успехом
картинки. Не третью колонку.