Files
h-school/docs/phases/06-foundation/reviewed.md
T
Leonid PershinandCursor 71a68b44fd
ci / server (push) Failing after 3m49s
ci / client (push) Successful in 24s
Point slice 6 recheck journal at the merge.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 15:50:22 +03:00

87 lines
6.4 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).
## Срез 6. Фундамент
- **Фазы:** 2228
- **Проверен на:** `cbe739a`, 2026-08-20
- **Пути:** `src/HSchool.Content` (`PackManifest`, `PackLoadOrder`, `BehaviorDef`),
`src/HSchool.Server/mods/{core/pack.jsonc,example}`, `src/HSchool.Server/Game/SchoolStore.cs`,
`src/HSchool.Server/Api/DevEndpoints.cs`, `src/HSchool.Server/Game/SchoolDumpReader.cs`,
`src/HSchool.People/RosterJson.cs`, `src/HSchool.Client/src/ui/*.test.ts`,
`tests/HSchool.Content.Tests/{PackIdentityTests,ExamplePackTests,BehaviorDefTests}.cs`,
`tests/HSchool.People.Tests/GoldenRosterTests.cs`,
`tests/HSchool.AppHost.Tests/{ExamplePackTests,GoldenSaveTests,SchoolSeedTests,ServiceabilityTests}.cs`
- **Итог:** все тесты из списков семи фаз на месте; дописан один клиентский; `foundation.md`
приведён к закрытому срезу. Хостовые тесты сверены по коду, не прогоном.
Что подтверждено:
- Пак: манифест, `missing-mod`, порядок — выбор игрока плюс топология (не алфавит), цикл —
`mod-cycle`, def без подписи предупреждает и грузится.
- `mods/example` на диске; каталог/create/reload; патч только с паком; ваниль без выбора не меняется.
- Веса в `BehaviorDef`; пак с обедом выше урока уводит класс; отрицательный вес роняет загрузку.
- Золотой ростер и сейв; `PrimarySchool` требует трёх; `teachersShort` в API и в `t(...)`.
- Сид — поле школы. Format новее — школа не стартует, файл нетронут. Дамп через снимок + мейлбокс,
не в `World` с HTTP. `HSchool.Simulation.Tests` без параллельности.
- Клиентские экраны в `happy-dom`: фильтры/пейджер, create, сетка, предел фонда текстом.
Дописано:
- `managementPanel.test.ts` — непокрытый предмет показывает `teachersShort`.
Исправлено:
- `AGENTS.md` утверждал, что на паузе кадры присутствия не приходят. Работник их шлёт
(occupancy + подписи). Тест, который ждёт *людей* на паузе, зависнет; тест на подпись урока — нет.
- `../../design/06-foundation/foundation.md`: порядок загрузки — не алфавит; «почему сейчас» про веса в `Decision.cs`
устарел.
Замечено рядом:
- `Dump_ReturnsPeopleNodesAndTimetable` принимает `NodeId is not null || Needs.Count > 0`.
Нужды есть у всех, так что узлы на кампусе не проверяются. Усиливать до явки — срез 5.
## Перепроверка среза 6. Фундамент
- **Фазы:** 2228
- **Проверен на:** `1c63357`, 2026-08-20
- **Пути:** `src/HSchool.Content` (`PackManifest`, `PackLoadOrder`, `BehaviorDef`, `CatalogLoader`),
`src/HSchool.Server/mods/{core/pack.jsonc,example}`, `src/HSchool.Server/Game/SchoolStore.cs`,
`src/HSchool.Server/Api/DevEndpoints.cs`, `src/HSchool.Server/Game/SchoolDumpReader.cs`,
`src/HSchool.People/RosterJson.cs`, `src/HSchool.Client/src/ui/{gameScreen,peoplePanel,createSchoolDialog,timetableGrid,managementPanel}.test.ts`,
`tests/HSchool.Content.Tests/{PackIdentityTests,ExamplePackTests,BehaviorDefTests,CatalogLoaderTests}.cs`,
`tests/HSchool.People.Tests/GoldenRosterTests.cs`,
`tests/HSchool.AppHost.Tests/{ExamplePackTests,GoldenSaveTests,SchoolSeedTests,ServiceabilityTests}.cs`,
`docs/design/06-foundation/foundation.md`
- **Итог:** перепроверка после дрейфа с `cbe739a`. Обещания фаз 22–24, 26–28 держатся.
Хостовые `GoldenSaveTests` (фаза 25/26), снятые в фазе 39, возвращены под текущий `CanStart`.
Дамп с фазы 59 ждёт человека на узле — прошлое открытое замечание закрыто кодом среза 10, не этим проходом.
Что подтверждено:
- Пак, пример, веса, золотой ростер, `teachersShort`, свой сид, формат новее, дамп через мейлбокс,
экраны в `happy-dom` — те же классы, что в первом проходе. `UnlabelledDef_WarnsButLoads` на месте.
- `Dump_ReturnsPeopleNodesAndTimetable` больше не принимает «нужды непусты» вместо явки.
- Формат 2 без страны школу не стартует; сид из `people.json` (в т.ч. равный id) поднимается.
Дописано:
- `GoldenSaveTests.HistoricFormat2Golden_LeavesTheSchoolUnstartedAndTheFileUntouched`
- `GoldenSaveTests.SaveWithoutNativeLanguage_LoadsWithoutReshuffling` — штамп format 3 + `countryId` + владелец на копию `legacy-no-native/`
- `gameScreen.test.ts` — заголовок показывает сид через `t('schoolSeed')`
Исправлено:
- `foundation.md`: «Format никогда не сравнивается» неверно после `CanStart`; золотые папки — исторический формат 2.
- `tests/HSchool.AppHost.Tests/golden/README.md` — то же про формат 2 и абстрактный `Underwear` в `current/1.people.json`
Открыто:
- `current/1.people.json` носит абстрактный `Underwear` (потом разложили на Briefs/Boxers/Panties). Даже со штампом сегодняшнего формата школа не стартует (`RequireKnownApparel`). Переписывать отпечаток одежды в этом срезе не стали — это гардероб.
Замечено рядом:
- Фаза 39 сняла золотую загрузку в пользу несовместимых сейвов; этот проход вернул узкие тесты, не миграцию формата 2.