9.5 KiB
9.5 KiB
Журнал ревью
Сводка: ../reviewed.md. Индекс среза: README.md.
Перепроверка среза 1 (после notices / portraits / Krea)
- Фазы: 0–4
- Проверен на:
5a0d75b, 2026-08-21 - Пути:
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,tests/HSchool.AppHost.Tests/ServiceabilityTests.cs - Итог: перепроверка;
git log d087486..HEADпо путям среза непустой (портреты, notices, Krea, сцена). Обещания фаз 0–4 целы. Усилен тестlocalize()под два.manager. Код не чинился. AppHost socket/API не гонялись (не трогали). Фазы 🔄/⬜ не закрывались.
Что подтверждено (после дрейфа):
- PixiJS нет в
package.jsonи в клиентском коде. Overview: вкладки Карта/Люди, дерево, локация с четырьмя секциями, клиентский фильтр,localize(). Панель общих событий по-прежнему снята (фаза 8 /near-term.md); notices — модалки/тосты, не возврат ленты. SchoolWorker—LongRunning,MaxCatchUpSteps = 5. СупервизорWorldне трогает.SchoolContentUnavailableException+persist: false+RememberIncompatible. OutboxDropOldest;WaitToReadAsyncпереносится.modal.tsрезолвит явно;.dialog--screen—height: fit-content;DefaultStartDateUTC; меню патчитcard.update.- Каталог/карта: last-wins, parent/abstract, патчи, связность, пустая комната, отказ без двора
(15 зелёных в
MapValidation/ExamplePack/Inheritance).MapSnapshotround-trip + size (4 зелёных в Protocol). Кодек /protocol.ts/docs/protocol.md— один снимок (протокол v10). coreв create заблокирован (createSchoolDialog.test.ts). Клиентский filter дерева и пустые секции локации —gameScreen.test.ts.
Дописано на этом проходе:
gameScreen.test.ts—localize()смотрит overview (не manage): вкладки + четыре секции и empty-строки до/после смены языка
Исправлено:
- ничего в прод-коде: расхождений с дизайном среза 1, которые надо чинить, не нашлось.
Открытое:
- ветка не слита: основное дерево на
main, но грязное (untracked срез 12 + dirty README/AGENTS) — без stash, ждёт чистый main. - соседний
review/slice-2-recheckтоже ждёт чистый main — не сливать чужое.
Перепроверка среза 1 (после одежды / сессии / общения)
- Фазы: 0–4
- Проверен на:
d087486, 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,tests/HSchool.AppHost.Tests/ServiceabilityTests.cs - Итог: перепроверка;
git log 418a4ea..HEADпо путям среза непустой (одежда, сессия, общение, ремесло). Обещания фаз 0–4 целы. Дописаны 3 теста. Код не чинился. Фазы 60 и 61 не закрывались.
Что подтверждено (после дрейфа):
- PixiJS нет в
package.jsonи в клиентском коде. Дерево карты, пять секций локации, клиентский фильтр,localize(). Оболочка — вкладки Карта/Люди; отказ от ленты событий в фазе 1 иdesign/near-term.md. SchoolWorker—LongRunning, свойWorld, аккумуляторMaxCatchUpSteps = 5. Супервизор таблицу держит иWorldне трогает (фаза 58 разрезала файл, не поток). Сейв на create/shutdown/SaveInterval;ReloadFromDisk_RestoresAPausedClock,PausingOneSchool_DoesNotStopAnother.- Каталог/карта: JSONC, last-wins, parent/abstract, патчи, связность, пустая комната, отказ без
двора, ванильная раскладка. Нет папки мода — школу не стартовать, файл не трогать
(
SchoolContentUnavailableException,persist: false,RememberIncompatible). GET /api/mods, каталог?lang=, create с картой и модами, снимок при OpenSchool.coreв диалоге нельзя снять. Кодек,protocol.tsиdocs/protocol.md— одинMapSnapshot(протокол v9, бамп поздних срезов, раскладка снимка та же).modal.tsрезолвит промис явно;.dialog--screen—height: fit-content;DefaultStartDateUTC;MapSnapshotSizeот сообщения; outboxDropOldest;WaitToReadAsyncпереносится между итерациями; меню патчитcard.update.
Дописано на этом проходе:
gameScreen.test.ts— клик по дереву фильтрует панель локации на клиентеgameScreen.test.ts—localize()обновляет пустые секции локацииServiceabilityTests.MissingModFolder_LeavesTheSchoolUnstartedAndTheFileUntouched
Исправлено:
- ничего: расхождений с дизайном среза 1, которые надо было чинить кодом, не нашлось.
Открытое:
- срезы 2–6 в сводке всё ещё на старых коммитах — дрейф после одежды/сессии/общения; не этот проход.
- фазы 60 и 61 (портреты) в работе; ревью их не закрывало.
Срез 1. Оболочка и карта
- Фазы: 0–4
- Проверен на:
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;DefaultStartDateUTC;MapSnapshotSizeот сообщения; outboxDropOldest;WaitToReadAsyncпереносится между итерациями; меню патчитcard.update.- Родной язык — HTTP/JSON без бампа протокола. Старый сейв без поля берёт первый язык набора,
не бросает кубик (
ReloadWithoutASavedPick_TakesTheFirstLanguageInsteadOfRolling).
Дописано:
SchoolApiTests.Catalog_WithAnUnknownMod_IsRejectedSchoolApiTests.ModId_ThatEscapesTheModsFolder_IsRejectedOnBothEndpointsSkillGrantTests.ReloadWithoutASavedPick_TakesTheFirstLanguageInsteadOfRolling
Исправлено:
- Два поля
speedIndexв клиентскомSchool(api.ts) — артефакт мержа фазы 26; vitest не ловил,npm run buildпадал с TS2300.