From c4d6ed6f720ed4bc92ce3770f823cc1263c56974 Mon Sep 17 00:00:00 2001 From: Leonid Pershin Date: Thu, 20 Aug 2026 06:32:07 +0300 Subject: [PATCH] Journal slice 7 stage B-C review (phases 32-36). --- docs/phases/reviewed.md | 48 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 47 insertions(+), 1 deletion(-) diff --git a/docs/phases/reviewed.md b/docs/phases/reviewed.md index df8b1d0..afe918c 100644 --- a/docs/phases/reviewed.md +++ b/docs/phases/reviewed.md @@ -256,4 +256,50 @@ - `Dump_ReturnsPeopleNodesAndTimetable` принимает `NodeId is not null || Needs.Count > 0`. Нужды есть у всех, так что узлы на кампусе не проверяются. Усиливать до явки — срез 5. -- Срез 7 (одежда) в работе: не писать в журнал как закрытый. +- Срез 7, фаза 37 — в работе на момент проверки B–C; этап A проверяет соседний ревьюер. + +## Срез 7. Этап B–C — климат и жизнь одежды (без 37) + +- **Фазы:** 32–36 +- **Проверен на:** `e461a9f`, 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,PeopleModels}.cs`, + `src/HSchool.Server/Game/PersonCardReader.cs`, `src/HSchool.Client/src/{ui/personCard.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.test.ts` +- **Итог:** фазы 32–36 подтверждены; дописано 5 тестов; исправлены 2 бага переодевания; фаза 37 в работе + +Что подтверждено: + +- Погода детерминирована от пресета, сида и времени; skip выставляет утро; кадр часов v8 (27 байт) в + `ProtocolCodec`, `protocol.ts`, `docs/protocol.md`; клиент рисует температуру с wire, не из месяца. +- `Warmth` декейит на морозе, дома восстанавливается; черты `HeatLoving`/`ColdLoving` несовместимы. +- Техник держит комфорт; двор = улица, кабинет теплее двора без техника; две раздевалки на ванили; + шкафчики по полу/старшинству, пересчёт на 1 сентября. +- Износ только на кампусе, skip/утро заменяют ветхое; утренняя выдача пишет `apparel-replaced`. +- Уместность: утро, PE, погода, правила «с завтра» через API; карточка — вкладки и HTTP-лог с 6:00. +- `HSchool.Simulation` без ASP.NET; `dotnet test` и Vitest (`personCard`, `weather`, `protocol`) зелёные. + +Дописано: + +- `AppropriatenessSimulationTests.MorningDress_StagesPeKitForTodaysLesson` +- `AppropriatenessSimulationTests.PeBreak_CompletesChangeBeforeLesson` +- `AppropriatenessSimulationTests.PeLesson_WearsPeThenReturnsToEveryday` +- `AppropriatenessSimulationTests.AfterPeBreak_ModeExpectsEveryday` +- `PresenceTests.PhysicalEducationBeforeLesson_GoesToChangingRoomOnTheBreak` (переименован с ожидания зала на перемене) + +Исправлено: + +- `PresenceSystem`: ходьба по duty больше не обрывает активный `ChangeClothes` — форма успевает надеться до + звонка. +- `ApparelPresence.ModeAt`: после перемены following PE режим «everyday», иначе `PeForbidden` не + поднимался и форму не снимали. + +Замечено рядом: + +- Фаза 37 (вкладка «Правила», UI смены дресс-кода) — в работе, не проверялась. +- `PhysicalEducationBeforeLesson_…` в `PresenceTests` не гоняет полный цикл «зал с формой» — это в + `AppropriatenessSimulationTests.PeLesson_…`.