Files
h-school/docs/phases/02-people/reviewed.md
T

45 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Журнал ревью
Сводка: [`../reviewed.md`](../reviewed.md). Индекс среза: [`README.md`](README.md).
## Срез 2. Люди
- **Фазы:** 59
- **Проверен на:** `bdb1253`, 2026-08-20
- **Пути:** `src/HSchool.People`, `src/HSchool.Content/PeopleDefs.cs`,
`src/HSchool.Simulation/RosterSpawner.cs`, `src/HSchool.Simulation/School.cs`,
`src/HSchool.Server/Api/SchoolEndpoints.cs`, `src/HSchool.Server/Game/PersonCardReader.cs`,
`src/HSchool.Server/Game/SchoolWorker.cs`,
`src/HSchool.Client/src/ui/peoplePanel.ts`, `src/HSchool.Client/src/ui/personCard.ts`,
`tests/HSchool.People.Tests`, `tests/HSchool.Content.Tests/PeopleDefTests.cs`,
`tests/HSchool.Simulation.Tests/PeopleInSchoolTests.cs`,
`tests/HSchool.AppHost.Tests/PeopleApiTests.cs`,
`tests/HSchool.AppHost.Tests/SchoolSeedTests.cs`
- **Итог:** обещания фаз 5–9 целы; починены два API-теста, дописан один на reload после набора
Что подтверждено:
- Дефы человека: разбор, наследование, патч, неизвестная ссылка, склонение, мод со своим набором.
- Генератор: шесть тестов списка фазы, без Arch/ASP.NET/`DateTime.Now`. Неполные семьи 5–10%.
Сид — поле школы, не `school.Id`; хостовые тесты, которым нужен состав, передают сид явно.
- Одиннадцать кабинетов, сущности в `World`, `PersistPeople` только при смене состава.
Штат при создании пуст — это фаза 11.
- Список с опубликованного снимка, карточка через `TaskCompletionSource`. Фильтры, пейджер,
семейные ссылки, всё через `t(...)`. Вкладка рядом с картой, не нижний ряд — так записано
в фазе 8 и в `../../design/02-people/people.md`.
- Выпуск старшей имеющейся, вместимость, семьи через поколения, reload после набора.
Дописано:
- `PeopleApiTests.ReloadAfterTheYearlyIntake_RestoresTheNewComposition` — ждёт 1 сентября и
требует состав **после** набора, отличный от исходного (детерминизм от сида иначе скрыл бы
потерянный файл).
Исправлено:
- `Card_IncludesFamilyAndLiveNeeds` брал `People[0]` и требовал двух родителей. Состав зависит
от сида; на чистом клоне первый ученик иногда из неполной семьи. Теперь ищет ученика с матерью
и проверяет диапазон.
- `List_SortsBySurname` требовал ordinal-порядок, сервер ставит Ё на место Е. Совпадали, пока
в `core` не было фамилий на Ё.