Files
h-school/docs/phases/01-shell/reviewed.md
T

43 lines
2.9 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).
## Срез 1. Оболочка и карта
- **Фазы:** 04
- **Проверен на:** `418a4ea`, 2026-08-20
- **Пути:** `src/HSchool.Client`, `src/HSchool.Protocol`, `src/HSchool.Content`,
`src/HSchool.Server/Game`, `src/HSchool.Server/Api/ModEndpoints.cs`,
`src/HSchool.Server/Api/SchoolEndpoints.cs`, `src/HSchool.Server/Net`,
`tests/HSchool.Content.Tests`, `tests/HSchool.Protocol.Tests`,
`tests/HSchool.AppHost.Tests/SchoolApiTests.cs`, `tests/HSchool.AppHost.Tests/GameSocketTests.cs`
- **Итог:** обещания фаз 0–4 целы; дописаны 3 теста; протокол v7 в трёх местах
Что подтверждено:
- PixiJS нет; дерево карты, пять секций локации, клиентский фильтр, `localize()`. Оболочка —
вкладки Карта/Люди, не три панели; отказ от ленты событий записан в фазе 1 и в `design/near-term.md`.
- `SchoolWorker``LongRunning`, свой `World`, аккумулятор с потолком 5. Супервизор таблицу
держит и `World` не трогает. Сейв на create/shutdown/`SaveIntervalSeconds`;
`ReloadFromDisk_RestoresAPausedClock`, `PausingOneSchool_DoesNotStopAnother`.
- Восемь тестов каталога/карты в `HSchool.Content.Tests`. Ванильная раскладка валидна.
Пропавшая папка мода не стартует школу и файл не трогает.
- `GET /api/mods`, каталог, create с картой и модами, снимок при OpenSchool. `core` в диалоге
создания нельзя снять. Кодек, `protocol.ts` и `docs/protocol.md` описывают один `MapSnapshot`.
- `modal.ts` резолвит промис явно; `.dialog--screen``height: fit-content`;
`DefaultStartDate` UTC; `MapSnapshotSize` от сообщения; outbox `DropOldest`;
`WaitToReadAsync` переносится между итерациями; меню патчит `card.update`.
- Родной язык — HTTP/JSON без бампа протокола. Старый сейв без поля берёт первый язык набора,
не бросает кубик (`ReloadWithoutASavedPick_TakesTheFirstLanguageInsteadOfRolling`).
Дописано:
- `SchoolApiTests.Catalog_WithAnUnknownMod_IsRejected`
- `SchoolApiTests.ModId_ThatEscapesTheModsFolder_IsRejectedOnBothEndpoints`
- `SkillGrantTests.ReloadWithoutASavedPick_TakesTheFirstLanguageInsteadOfRolling`
Исправлено:
- Два поля `speedIndex` в клиентском `School` (`api.ts`) — артефакт мержа фазы 26; vitest не
ловил, `npm run build` падал с TS2300.