Add SwarmUI settings management and portrait generation enhancements

- Introduced new API endpoints for managing SwarmUI settings, including fetching and saving presets and age rules.
- Updated the portrait generation logic to utilize the new settings structure, allowing for dynamic preset selection based on age.
- Enhanced UI components to support SwarmUI settings, including localization for new strings and improved styling for settings sections.
- Added tests to verify the functionality of new settings endpoints and portrait generation behavior.

This commit lays the groundwork for more flexible and user-friendly portrait generation options.
This commit is contained in:
Leonid Pershin
2026-08-20 06:06:45 +03:00
parent e0b7122f3b
commit 5a400be792
32 changed files with 2178 additions and 184 deletions
+37
View File
@@ -0,0 +1,37 @@
# Фаза 46. Политика речи и дом
## Зависимости
- [Фаза 42](42-talk-circles.md)
- [Фаза 37](37-school-rules.md)
- [Фаза 34](34-wear-home.md)
## Зачем
Школа задаёт, какие темы уместны — тем же жестом, что дресс-код. Родители двигают мнение утром,
не приходя на карту.
## Задачи
- [ ] В «Правилах» два комбобокса речи: ученики / сотрудники × свободно / без грубого / только учёба
- [ ] В силу с завтра; API сегодня не переодевает темы текущих кружков
- [ ] Система не стартует кружок с темой вне политики; начатый вчера доигрывает
- [ ] Одно семейное событие на человека за рабочее утро; skip ночи применяет
- [ ] Семейные темы из `TopicDef`; сдвиг меньше школьного разговора
- [ ] `docs/protocol.md` — HTTP правил речи
## Тесты, без которых фаза не закрыта
- [ ] POST «только учёба» сегодня не мешает текущему кружку «игры»
- [ ] На следующее рабочее утро грубая тема у учеников не стартует
- [ ] Skip с пятницы на понедельник применяет домашнее событие; мнение с родителем сдвинуто
- [ ] Клиентский тест: комбобоксы речи рядом с одеждой, подпись «с завтра»
## Критерий готовности
- Сменить политику, пережить ночь кнопкой, на перемене нет грубых кружков у учеников
- `dotnet test` и `npm test` / `build` проходят
## Стоп
Не романтика. Не вызов родителей в школу.