45 lines
3.1 KiB
Markdown
45 lines
3.1 KiB
Markdown
# Журнал ревью
|
||
|
||
Сводка: [`../reviewed.md`](../reviewed.md). Индекс среза: [`README.md`](README.md).
|
||
|
||
## Срез 2. Люди
|
||
|
||
- **Фазы:** 5–9
|
||
- **Проверен на:** `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` не было фамилий на Ё.
|