Files
h-school/docs/phases/06-foundation/reviewed.md
T
Leonid PershinandCursor 1ef051764b Restore golden-save host tests for slice 6 after later formats stopped loading historic files.
Phase 39 dropped GoldenSaveTests when format 2 saves became unstartable. Recheck restores the missing-field and seed-equals-id assertions against a stamped copy, and records the recheck.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 15:39:07 +03:00

6.4 KiB
Raw Blame History

Журнал ревью

Сводка: ../reviewed.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
  • Проверен на: REVIEW_COMMIT, 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.