Split the person card into overview, clothes, carry and now tabs.

Today's history is a paged HTTP log on the worker, not on the card or in people.json.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Leonid Pershin
2026-08-20 04:00:38 +03:00
co-authored by Cursor
parent 69106cb48b
commit 6be4fa75ab
27 changed files with 1551 additions and 109 deletions
+17 -16
View File
@@ -13,29 +13,30 @@
## Задачи
- [ ] Окно карточки: вкладки **Обзор / Одежда / Ноша / Сейчас**
- [ ] Обзор — прежнее: тело, навыки, черты, нужды, семья, расписание; текущее дело с обзора
- [x] Окно карточки: вкладки **Обзор / Одежда / Ноша / Сейчас**
- [x] Обзор — прежнее: тело, навыки, черты, нужды, семья, расписание; текущее дело с обзора
уходит на «Сейчас»
- [ ] Одежда: слои, цвет, полоска износа и подпись, короткая уместность к ситуации
- [ ] Ноша: сумка, несёшь/можешь, шкафчик или его отсутствие, кратко «ещё N дома» без полного
- [x] Одежда: слои, цвет, полоска износа и подпись (если сервер прислал `condition` /
`conditionLabel`), короткая уместность — прочерк до фазы 35
- [x] Ноша: сумка, несёшь/можешь, шкафчик или его отсутствие, кратко «ещё N дома» без полного
домашнего списка
- [ ] Сейчас: на территории школы — подпись действия (`ест`, `идёт`, `учится (математика)`,
- [x] Сейчас: на территории школы — подпись действия (`ест`, `идёт`, `учится (математика)`,
`переодевается`). Вне школы — «дома»
- [ ] История за сегодня под текущим делом: поиск, сортировка, пейджинг
- [ ] `GET /api/schools/{id}/people/{personId}/log` — страница и фильтр; не сокет, не лента
- [x] История за сегодня под текущим делом: поиск, сортировка, пейджинг
- [x] `GET /api/schools/{id}/people/{personId}/log` — страница и фильтр; не сокет, не лента
школы. Граница суток — шесть утра; skip ночи обнуляет вчерашнее
- [ ] Запись в лог: начало/конец действия, утренняя выдача одежды, переодевание. Хранит
работник, не `people.json`
- [ ] Vitest: переключение вкладок, пейджер лога, «дома» когда activity пустая и человек away
- [ ] `docs/protocol.md` — HTTP лога в том же коммите
- [ ] Запись в лог: начало/конец действия есть; утренняя выдача одежды — тип
`apparel-replaced` подхватывается, пишет фаза 34; переодевание — после фазы 35
- [x] Vitest: переключение вкладок, пейджер лога, «дома» когда activity пустая и человек away
- [x] `docs/protocol.md` — HTTP лога в том же коммите
## Тесты, без которых фаза не закрыта
- [ ] Лог не едет в `GET .../people/{id}` — только отдельным запросом
- [ ] Страница лога не пересекается; неизвестный человек — `404`
- [ ] После 6:00 записей вчера нет
- [ ] Вне школы вкладка «Сейчас» показывает «дома», не пусто
- [ ] Клиентский тест: вкладка «Одежда» не монтирует таблицу лога
- [x] Лог не едет в `GET .../people/{id}` — только отдельным запросом
- [x] Страница лога не пересекается; неизвестный человек — `404`
- [x] После 6:00 записей вчера нет
- [x] Вне школы вкладка «Сейчас» показывает «дома», не пусто
- [x] Клиентский тест: вкладка «Одежда» не монтирует таблицу лога
## Критерий готовности