Files
Leonid PershinandCursor 5bfdab0efd
ci / server (push) Failing after 3m47s
ci / client (push) Successful in 23s
Point slice 5 recheck journal at the merge.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 15:35:37 +03:00

82 lines
6.6 KiB
Markdown
Raw Permalink 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).
## Срез 5. Жизнь школы
- **Фазы:** 1821
- **Проверен на:** `cbe739a`, 2026-08-20
- **Пути:** `src/HSchool.Ai`, `src/HSchool.Simulation/{PresenceSystem,ActivitySystem,LessonLearningSystem,School}.cs`,
`src/HSchool.Protocol` (кадр `Presence`, пропуск в кадре часов),
`src/HSchool.Server/Game/PresenceFrame.cs`, `src/HSchool.Client/src/ui/gameScreen.ts`,
`src/HSchool.Server/mods/core/defs/{actions,behavior,needs}`, `tests/HSchool.Ai.Tests`,
`tests/HSchool.Simulation.Tests/{PresenceTests,DecisionTests,ActivityTests,NeedDecayTests,LunchTests}.cs`,
`tests/HSchool.AppHost.Tests/GameSocketTests.cs`
- **Итог:** все 32 теста из списков фаз на месте; дописаны 2 теста явки; `SetTimetable` сбрасывает
планы дня. Голод закрыт данными. AppHost после правки не гонялся — Aspire держал DLL.
Что подтверждено:
- Ходьба: 13 тестов списка фазы 18 (маршрут, `travelMinutes`, воскресенье/каникулы, звонок,
детерминизм, пропуск пустого времени, лето, промотанная неделя).
- Присутствие: раскладка с обеих сторон, круговой прогон, люди не в снимке карты, пропуск в
учебное время отбрасывается. На паузе кадры **идут** (occupancy + подписи урока); людей в них
может не быть.
- Нужды: декей, обед, стулья, ночь вне школы, неизвестная нужда, детерминизм.
`Hunger` восстанавливается вне школы, в столовой 112 стульев, обед — смена по параллелям.
`SleepAndHunger_ReturnToMaxOffCampus`, `AfterASchoolDay_NobodyIsLeftStarving`.
- Решения: восемь тестов фазы 21, в том числе туалет с урока и возврат, потолок отложенных,
детерминизм за неделю. `HSchool.Ai` без Arch/ASP.NET/`DateTime.Now`.
Дописано:
- `HireAndAssignMath_DuringLessonThree_PutsSomeoneOnCampus`
- `AssigningMath_AfterDayPlansWereBuilt_PutsSomeoneOnCampus`
Исправлено:
- `School.SetTimetable` обнуляет `PlanDay`. Иначе после назначения предмета без смены численности
`EnsurePlans` считает планы актуальными, `AppearAt` остаётся `null`, кампус пуст. Найм это
маскировал (численность растёт).
- `OpeningASchoolDuringAMathLesson_...` после снятия паузы сразу ждал людей и съедал бюджет на
паузные кадры. Теперь ждёт `clock.Running`, потом людей.
## Срез 5. Жизнь школы — перепроверка
- **Фазы:** 1821
- **Проверен на:** `1118c59`, 2026-08-20
- **Пути:** `src/HSchool.Ai`, `src/HSchool.Simulation/{PresenceSystem,ActivitySystem,LessonLearningSystem,School}.cs`,
`src/HSchool.Protocol` (кадр `Presence`, пропуск в кадре часов),
`src/HSchool.Server/Game/PresenceFrame.cs`, `src/HSchool.Client/src/ui/gameScreen.ts`,
`src/HSchool.Server/mods/core/defs/{actions,behavior,needs}`, `tests/HSchool.Ai.Tests`,
`tests/HSchool.Simulation.Tests/{PresenceTests,DecisionTests,ActivityTests,NeedDecayTests,LunchTests}.cs`,
`tests/HSchool.AppHost.Tests/GameSocketTests.cs`
- **Итог:** перепроверка после дрейфа с `cbe739a` (одежда, погода, темп часов, общение, последствия
урока). Все 32 теста из списков фаз на месте и зелёные. Код не менялся. AppHost не гонялся.
Что подтверждено:
- Ходьба и пропуск: `WalkingTests` и `PresenceTests` (маршрут 201, `travelMinutes`, воскресенье
и каникулы, класс без уроков, первый звонок, детерминизм, сейв на перемене, суббота→понедельник,
ночь/вечер, рабочее окно в 7:00, школа без учителей, лето через 1 сентября, промотанная неделя).
`SetTimetable` по-прежнему обнуляет `PlanDay`; тесты найма и назначения посреди урока зелёные.
- Присутствие: раскладка и круговой прогон с обеих сторон (в кадре теперь ещё кружок разговора —
срезы 9, версия протокола 9). Снимок карты без людей. `skipAllowed` в кадре часов. Клиент не
считает пропуск сам. `HSchool.Ai` без Arch/ASP.NET/`DateTime.Now`; ходьба на тике границу не
пересекает. Присутствие ~2 Гц (`TickRate / 2`).
- Нужды: декей голода, обед и стулья, сон и голод вне школы, неизвестная нужда, детерминизм.
В столовой 112 стульев, обед — две смены по параллелям.
- Решения: туалет с урока и возврат, порог, доведение действия, досуг на перемене, навык и голод,
потолок очереди, неделя с одним сидом, таблица весов без мира.
Замечено рядом (не этого среза):
- На перемене перед физкультурой класс идёт в раздевалку, не сразу в зал (фаза 35). Стоимость
пути 101→зал по-прежнему 6 минут из 10.
- Рост навыка дополнительно зависит от учителя в комнате, учебника и тепла (фазы 48–51). Тест
«голодный учится хуже» всё ещё проходит.
AppHost (`OpeningASchoolDuringAMathLesson`, `SkipEmpty_DuringWorkHours`) в этом проходе не
гонялся: чужой сервер не останавливали и свой не поднимали. Симуляционные тесты тех же обещаний
зелёные.