Merge phase 27 save format and dump.
ci / server (push) Failing after 3m34s
ci / client (push) Successful in 13s

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Leonid Pershin
2026-08-20 00:34:54 +03:00
co-authored by Cursor
14 changed files with 480 additions and 12 deletions
+11 -11
View File
@@ -14,25 +14,25 @@
## Задачи
- [ ] Загрузка читает `Format`: новее своего — школу не стартовать, файл не трогать, в лог. Как с
- [x] Загрузка читает `Format`: новее своего — школу не стартовать, файл не трогать, в лог. Как с
пропавшей папкой мода
- [ ] Формат старее своего — явный шов для апгрейда: сегодня пустой, но названный и с комментарием
- [ ] `GET /api/dev/schools/{id}/dump` — ростер, присутствие, расписание и нужды одним JSON. За тем
- [x] Формат старее своего — явный шов для апгрейда: сегодня пустой, но названный и с комментарием
- [x] `GET /api/dev/schools/{id}/dump` — ростер, присутствие, расписание и нужды одним JSON. За тем
же переключателем, что и `reload-schools`, и никогда в проде по умолчанию
- [ ] Дамп читает опубликованные снимки и мейлбокс, а не лезет в `World` мимо работника
- [ ] Раздел «Things that will bite you» в `AGENTS.md` пополняется тем, что нашло ревью: сид школы
- [x] Дамп читает опубликованные снимки и мейлбокс, а не лезет в `World` мимо работника
- [x] Раздел «Things that will bite you» в `AGENTS.md` пополняется тем, что нашло ревью: сид школы
был её id; тесты хоста делят один сервер и одну папку сейвов, поэтому начинают с очистки;
на паузе кадры присутствия не приходят вовсе
- [ ] Классы тестов вокруг Arch перестают идти параллельно: `HSchool.Simulation.Tests` получает
- [x] Классы тестов вокруг Arch перестают идти параллельно: `HSchool.Simulation.Tests` получает
запрет параллельности, потому что нативная память Arch этого не любит
- [ ] `docs/protocol.md` описывает дамп в разделе дев-ручек
- [x] `docs/protocol.md` описывает дамп в разделе дев-ручек
## Тесты, без которых фаза не закрыта
- [ ] Сейв с `format` больше текущего оставляет школу незапущенной и файл нетронутым
- [ ] Сейв текущего формата грузится как раньше
- [ ] Дамп отдаёт людей, их узлы и текущее расписание для живой школы
- [ ] Дамп неизвестной школы — `404`
- [x] Сейв с `format` больше текущего оставляет школу незапущенной и файл нетронутым
- [x] Сейв текущего формата грузится как раньше
- [x] Дамп отдаёт людей, их узлы и текущее расписание для живой школы
- [x] Дамп неизвестной школы — `404`
## Критерий готовности
+1 -1
View File
@@ -111,5 +111,5 @@
| [24. Числа поведения](24-behavior-numbers.md) | 🔄 | Веса целей в `BehaviorDef`, а не в коде |
| [25. Золотые файлы](25-golden-fixtures.md) | ✅ | Отпечаток ростера, старый сейв, кривая голода, нехватка учителей |
| [26. Свой сид](26-school-seed.md) | 🔄 | Состав школы перестаёт зависеть от порядка создания |
| [27. Версия сейва и дамп](27-serviceability.md) | 🔄 | Формат читается, внутрь школы можно заглянуть |
| [27. Версия сейва и дамп](27-serviceability.md) | | Формат читается, внутрь школы можно заглянуть |
| [28. Тесты экранов](28-screen-tests.md) | ⬜ | DOM-окружение и логика клиента под тестом |