7.2 KiB
7.2 KiB
Журнал ревью
Сводка: ../reviewed.md. Индекс среза: README.md.
Срез 7. Этап A — данные и гардероб
- Фазы: 29–31
- Проверен на:
d5547b7, 2026-08-20 - Пути:
src/HSchool.Content/{CountryDef,ApparelDefs,CatalogLoader}.cs,src/HSchool.People/{DressGenerator,CountryClimate,RosterJson}.cs,src/HSchool.Server/{Game/SchoolStore.cs,Api/{ModEndpoints,SchoolEndpoints}.cs,Api/PeopleModels.cs},src/HSchool.Client/src/ui/{createSchoolDialog.ts,personCard.ts},tests/HSchool.Content.Tests/{CountryDefTests,ApparelDefTests,VanillaCoreTests}.cs,tests/HSchool.People.Tests/{DressGeneratorTests,GoldenRosterTests}.cs,tests/HSchool.AppHost.Tests/{SchoolApiTests,InventoryApiTests,GoldenSaveTests,ServiceabilityTests}.cs,src/HSchool.Client/src/ui/createSchoolDialog.test.ts - Итог: все 17 тестов из списков фаз на месте; исправлен дубликат
peopleTabOverviewвstrings.ts(ломалnpm run build); одно замечание рядом про вкладки карточки
Что подтверждено:
- 29:
CountryDef/ClimatePresetDef;namesets/убран; ванильRussiaс двумя пресетами; каталог отдаётcountries; create принимаетcountryId,unknown-countryна чужую страну; пресет от сида (CreateSchool_WithTheSameSeed_GetsTheSameClimatePreset);nameSetId: Slavicподнимается черезUpgradeOlderSave(GoldenSaveTests,legacy-no-native/); формат без страны не стартует (ServiceabilityTests); диалог — страны и языки (createSchoolDialog.test.ts); золотой ростер обновлён (GoldenRosterTests). - 30: поля
ThingDef/ColorDef, слои как роли, мебель безlayers; ванильная палитра и одежда вVanillaCoreTests; локали ru/en (EveryVanillaLabel_ExistsInBothLocales); учебник один def безsubjectна def. - 31:
InventoryItemсdef/color/condition/location/subject;DressGeneratorдетерминирован (DressGeneratorTests,InventoryApiTests.SameSeed_YieldsTheSameShirt); слои без пересечения, платье на два слоя; пол/яркость/учебник/родители/соискатели/масса/Hauling; карточка отдаёт worn+carried, список — нет (InventoryApiTests); старыйpeople.jsonбез items одевается на reload (PeopleJsonWithoutInventory_IsDressedOnReloadAndRewritten);HSchool.People/HSchool.Contentбез ASP.NET; протокол не тронут.
Дописано:
- (нет новых тестов — списки фаз закрыты существующими)
Исправлено:
- Дубликат ключа
peopleTabOverviewвstrings.ts(ru/en): vitest не ловит TS2300/TS1117,npm run buildпадал; ключ перенесён,peopleTabPortraitрядом с остальными вкладками. - Повтор
using HSchool.ContentвSchoolStore.cs(CS0105).
Замечено рядом:
- Карточка уже с вкладками (
personCard.ts, фаза 31 обещала один свиток — позже по../../design/07-inventory/inventory.md); портрет/SwarmUI-строки вstrings.ts— не этап A. ResolveClimatePresetвSchoolWorkerпри reload без сохранённого пресета берёт первый пресет страны (schoolSeed: 0,rollIfOmitted: false) — по дизайну для legacy; create кидает пресет изGameLoopServiceдо spawn.
Срез 7. Этап B–C — климат, жизнь одежды и правила
- Фазы: 32–37
- Проверен на:
5dcdee6, 2026-08-20 - Пути:
src/HSchool.Simulation/{WeatherSampler,WarmthDecay,PlaceClimate,ApparelDresser,ApparelWear,MorningDress,PersonLogBrowser}.cs,src/HSchool.People/LockerAssigner.cs,src/HSchool.Content/{Appropriateness,ClimatePreset,DressRules}.cs,src/HSchool.Ai/ApparelGoals.cs,src/HSchool.Protocol,src/HSchool.Server/Api/{SchoolEndpoints,DressRulesModels}.cs,src/HSchool.Server/Game/{PersonCardReader,SchoolWorker}.cs,src/HSchool.Client/src/{ui/dressRulesPanel.ts,ui/managementPanel.ts,format/weather.ts,net/api.ts},docs/protocol.md,tests/HSchool.Simulation.Tests,tests/HSchool.People.Tests/LockerAssignerTests.cs,tests/HSchool.Content.Tests/{ClimatePresetTests,AppropriatenessTests,ChangingRoomMapTests}.cs,tests/HSchool.AppHost.Tests/{PersonLogApiTests,DressRulesApiTests}.cs,tests/HSchool.Protocol.Tests,src/HSchool.Client/src/ui/{personCard,dressRulesPanel,managementPanel}.test.ts - Итог: фазы 32–37 подтверждены; дописано 5 тестов симуляции; исправлены 2 бага переодевания и 2 регрессии тестов (не протокол)
Что подтверждено:
- 32–36: погода детерминирована; skip выставляет утро; кадр часов v8 (27 байт) в трёх местах;
Warmthи техник; шкафчики; износ и утренняя замена; уместность и PE; вкладки карточки и HTTP-лог. - 37: вкладка «Правила» в «Управлении»; четыре комбобокса; GET/POST
dress-rulesс pending;unknown-form/unknown-color→400; правило с завтра;ColorAllowedдляwhiteTopBlackBottom;dressRulesPanel.test.ts— combobox без API до Apply, ошибка текстом;ManagementPanelне ломает штат и сетку.
Дописано (32–36, прошлый проход):
AppropriatenessSimulationTests.MorningDress_StagesPeKitForTodaysLessonAppropriatenessSimulationTests.PeBreak_CompletesChangeBeforeLessonAppropriatenessSimulationTests.PeLesson_WearsPeThenReturnsToEverydayAppropriatenessSimulationTests.AfterPeBreak_ModeExpectsEverydayPresenceTests.PhysicalEducationBeforeLesson_GoesToChangingRoomOnTheBreak
Исправлено:
PresenceSystem: ходьба по duty не обрывает активныйChangeClothes.ApparelPresence.ModeAt: после перемены following PE — режим everyday.managementPanel.test.ts: панель штата скрывается черезhidden, не удаляется из DOM.PortraitApiTests.GetSwarmUiSettings_ReturnsPresets: URL/api/settings/swarmui(CS1503).dressRulesPanel.ts: неиспользуемый импортclear— TS6133 наnpm run build.
Замечено рядом:
PhysicalEducationBeforeLesson_…не гоняет полный цикл «зал с формой» — это вAppropriatenessSimulationTests.PeLesson_….- Портреты/SwarmUI — вне среза 7, но
PortraitApiTestsчинился, чтобы AppHost-сборка не падала.