# Фаза 36. Вкладки карточки ## Зависимости - [Фаза 31](31-dress-generator.md) - [Фаза 8](08-people-browser.md) - [Фаза 28](28-screen-tests.md) ## Зачем Гардероб, ноша и сегодняшний след перестают быть секциями в одном свитке. Подробности о человеке читаются. ## Задачи - [x] Окно карточки: вкладки **Обзор / Одежда / Ноша / Сейчас** - [x] Обзор — прежнее: тело, навыки, черты, нужды, семья, расписание; текущее дело с обзора уходит на «Сейчас» - [x] Одежда: слои, цвет, полоска износа и подпись (если сервер прислал `condition` / `conditionLabel`), короткая уместность — прочерк до фазы 35 - [x] Ноша: сумка, несёшь/можешь, шкафчик или его отсутствие, кратко «ещё N дома» без полного домашнего списка - [x] Сейчас: на территории школы — подпись действия (`ест`, `идёт`, `учится (математика)`, `переодевается`). Вне школы — «дома» - [x] История за сегодня под текущим делом: поиск, сортировка, пейджинг - [x] `GET /api/schools/{id}/people/{personId}/log` — страница и фильтр; не сокет, не лента школы. Граница суток — шесть утра; skip ночи обнуляет вчерашнее - [x] Запись в лог: начало/конец действия есть; утренняя выдача одежды — тип `apparel-replaced` подхватывается, пишет фаза 34; переодевание — `apparel-changed` из фазы 35 - [x] Vitest: переключение вкладок, пейджер лога, «дома» когда activity пустая и человек away - [x] `docs/protocol.md` — HTTP лога в том же коммите ## Тесты, без которых фаза не закрыта - [x] Лог не едет в `GET .../people/{id}` — только отдельным запросом - [x] Страница лога не пересекается; неизвестный человек — `404` - [x] После 6:00 записей вчера нет - [x] Вне школы вкладка «Сейчас» показывает «дома», не пусто - [x] Клиентский тест: вкладка «Одежда» не монтирует таблицу лога ## Критерий готовности - Открыть ученика, переключить четыре вкладки, найти в истории сегодняшний обед - Тысяча строк лога не приезжает разом - `dotnet test` и `npm test` / `build` проходят ## Стоп Не возвращать панель общих событий школы. Не давать надевать с вкладки «Одежда».