diff --git a/docs/phases/10-craft/reviewed.md b/docs/phases/10-craft/reviewed.md new file mode 100644 index 0000000..98c864c --- /dev/null +++ b/docs/phases/10-craft/reviewed.md @@ -0,0 +1,48 @@ +# Журнал ревью — срез 10 + +Сводка: [`../reviewed.md`](../reviewed.md). Индекс среза: [`README.md`](README.md). + +## Срез 10. Этапы B–C — работник, карточка и дамп + +- **Фазы:** 58–59 +- **Проверен на:** `f4f726a`, 2026-08-20 +- **Пути:** `src/HSchool.Server/Game/SchoolWorker.cs`, + `src/HSchool.Server/Game/SchoolWorker.Mailbox.cs`, + `src/HSchool.Server/Game/SchoolWorker.Tick.cs`, + `src/HSchool.Server/Game/SchoolWorker.Persist.cs`, + `src/HSchool.Server/Game/PersonCardReader.cs`, + `src/HSchool.Server/Game/PersonCardReader.Overview.cs`, + `src/HSchool.Server/Game/PersonCardReader.Inventory.cs`, + `src/HSchool.Server/Game/PersonCardReader.Connections.cs`, + `src/HSchool.Server/Game/SchoolDumpReader.cs`, + `src/HSchool.Server/Api/DevEndpoints.cs`, + `src/HSchool.Client/src/ui/personCard.ts`, + `src/HSchool.Client/src/ui/personCardHost.ts`, + `src/HSchool.Client/src/ui/personCardOverview.ts`, + `src/HSchool.Client/src/ui/personCardApparel.ts`, + `src/HSchool.Client/src/ui/personCardCarry.ts`, + `src/HSchool.Client/src/ui/personCardNow.ts`, + `src/HSchool.Client/src/ui/personCardConnections.ts`, + `src/HSchool.Client/src/ui/personCardPortrait.ts`, + `src/HSchool.Client/src/ui/personCardDom.ts`, + `tests/HSchool.Server.Tests/SchoolWorkerShapeTests.cs`, + `tests/HSchool.AppHost.Tests/ServiceabilityTests.cs` +- **Итог:** обещания 58–59 на месте; тесты из списков фаз есть; код не чинился. Этап A (56–57) в этот проход не входил. 46 и 60 — **в работе на момент проверки**, как готовые не закрывались. + +### Что проверено + +**58.** `SchoolWorker` — один `internal sealed partial` (почта / тик / запись), тот же `LongRunning`-поток и тот же mailbox; `lock` вокруг `School`/`World` нет. `PersonCardReader.Read(School, personId, locale)` — единственный публичный вход; вкладки в `partial`. Клиент: вкладки в модулях, `personCardHost.ts` по-прежнему `fetchPerson` / `fetchPersonLog`. `GameLoopService` не резался. Протокол и сейв не тронуты. Карточка: `PeopleApiTests.Card_IncludesFamilyAndLiveNeeds`, `InventoryApiTests.Card_IncludesWornAndCarried_ListDoesNot`, `Card_ConnectionsCarryOnlyThisPersonsOpinions`. UI: `personCard.test.ts` (вкладки, портрет, связи). Пауза: `PausingOneSchool_DoesNotStopAnother`. Форма воркера: `SchoolWorkerShapeTests` (прогнан, 1/1). + +**59.** `Dump_ReturnsPeopleNodesAndTimetable` нанимает математику, требует идущие часы, ждёт непустой `NodeId`, отдельно нужды и `Lessons` Mathematics. На паузе wait сразу красный, не висит. Неизвестный id — 404 `unknown-school`. JSON дампа и `SchoolDumpReader` не расширялись; ручка по-прежнему за `HSchool:AllowSaveReload`; HTTP кладёт `DumpSchool` в mailbox, `World` читает только работник. + +### Что дописано + +- (нет — списки фаз закрыты существующими тестами) + +### Что исправлено + +- (нет) + +### Открытое + +- Нет. Этап A (56–57) проверяет соседний проход. 46 и 60 чужие 🔄. diff --git a/docs/phases/reviewed.md b/docs/phases/reviewed.md index 2bc5d0e..cb3a88c 100644 --- a/docs/phases/reviewed.md +++ b/docs/phases/reviewed.md @@ -32,3 +32,4 @@ | Срез 7. Этап B–C — климат, жизнь одежды и правила | `5dcdee6` | [07-inventory](07-inventory/reviewed.md) | | Срез 8. Сессия и темп | `1c3ae9a` | [08-session](08-session/reviewed.md) | | Срез 9. Этапы A–B — мнения и разговоры | `b38d0bb` | [09-social](09-social/reviewed.md) | +| Срез 10. Этапы B–C — работник, карточка и дамп | `f4f726a` | [10-craft](10-craft/reviewed.md) |