2.7 KiB
2.7 KiB
Фаза 88. Кнопка на панели
Зависимости
Зачем
То, что уже открыто глазом, получает ту же кнопку, что портрет: узел, одежда, fill. Гость смотрит и рисует.
Задачи
- Панель выбранной локации: «создать картинку» и «показать промпт», если узел может дать непустой вклад (как 87). Нет вклада — кнопок нет. Открытие дерева не генерирует
- Строка одежды и ноши на карточке: кнопка, если у def есть
prompt. Цвет из строки уходит query. Износ в промпт кладёт сервер - Строка предмета в секции «предметы» локации: то же для fill с прозой; молчаливый стул — без кнопки
- Успех показывает PNG (как карточка человека). Ошибки Swarm — тот же текст, что портрет
- Гость видит и жмёт. Notice
generateImageне менять (хозяин, человек) - Строки через
t(...), обе локали. Сокет не бампить
Тесты, без которых фаза не закрыта
- Vitest: у узла Classroom кнопка есть; у узла без prompt (лестница/этаж) — нет
- Vitest: у строки TShirt кнопка есть; у Chair в предметах — нет
- Vitest: гость не лишает кнопку disabled так, как notice
- Клиент зовёт POST узла/вещи, не
.../people/.../portrait?kind=scene - «Показать промпт» показывает тело GET
.../prompt, не выдуманную строку на клиенте - Открытие панели / вкладки одежды не вызывает POST
Критерий готовности
- Клик по кабинету на дереве → панель → картинка класса
- Клик по белой футболке на карточке → PNG вещи
- Гость на чужой школе может то же
npm testпо затронутымui/*.test.ts(tsc+vitest клиента, не весь раствор)
Стоп
Не автоген утра. Не иконка на каждом ряду дерева. Не LLM. Не бумажная кукла. Не картинка журнала и часов.