This commit is contained in:
2026-10-17 16:00:33 +07:00
parent 3efcc9bb6a
commit 3824cd7c5f
3 changed files with 25 additions and 2 deletions
+10 -1
View File
@@ -134,7 +134,16 @@ make stop
при создании в последние 24 часа до игры или при первом игровом действии. при создании в последние 24 часа до игры или при первом игровом действии.
Для дополнительных операторов используйте отдельные локальные email Для дополнительных операторов используйте отдельные локальные email
и пароли в `.env` и снова выполните `make venue` (старые аккаунты сохраняются). и пароли в `.env` и снова выполните `make venue` (старые аккаунты сохраняются).
Используйте только тестовые игры до реализации возврата результатов онлайн.
На основном сервере в настройках игры, в блоке «Передача игры на площадку»,
кнопка «Сбросить локальный режим» снимает офлайн-отметку после подтверждения.
Данные игры сохраняются; скачанный пакет продолжает работать на площадке,
его результаты можно загрузить позже. «Подготовить новый пакет» доступна при
любом статусе игры и предыдущего экспорта: новый снимок содержит актуальные
материалы, команды и настройки для игры с нуля, без ходов, ответов и баллов.
Статус и прогресс исходной игры не меняются. Новая подготовка отменяет предыдущую
незавершённую попытку; готовые архивы сохраняются для возврата результатов.
Импорт нового пакета не заменяет уже импортированную игру автоматически.
Проверки для разработчика находятся в `tests/venue/` и не нужны для запуска Проверки для разработчика находятся в `tests/venue/` и не нужны для запуска
площадки. `deploy.py` проверяет сценарии запуска без Docker; `smoke.py` проверяет площадки. `deploy.py` проверяет сценарии запуска без Docker; `smoke.py` проверяет
+14
View File
@@ -2,6 +2,20 @@
Архив задач, переведённых в статус `DONE`. Архив задач, переведённых в статус `DONE`.
### ED-047 — Сброс локального режима и повторная подготовка пакета
- Статус: `DONE`
- Репозитории: `evening_detective_server`, `evening_detective_frontend`.
- Цель: вернуть игру на prod из локального режима с подтверждением без загрузки результатов; разрешить новый пакет при любом статусе игры и экспорта.
- Решение: сохранять готовые экспорты для последующей загрузки результатов; новый пакет — актуальная подготовка к игре с нуля, без изменения исходного прогресса. Отменять устаревшую незавершённую подготовку.
- Критерии: подтверждение/отмена, исчезновение отметок и подсказки игроку, защита от устаревшего сброса, новый пакет для всех статусов и форматов, старые результаты принимаются.
- Проверка: PostgreSQL-тесты экспорта/возврата и миграции, `go test ./...`, генерация API, type-check, оба линтера, сборка фронтенда, браузерный smoke, ревью стандартов.
- Ограничения: без экспорта из venue, переноса прогресса, автоматической замены импортированной игры, commit/push.
- Результат: добавлены RPC/REST сброса с ожидаемым ID экспорта, модальное подтверждение и блокировка повторной отправки. Снятие режима сохраняется в `released_at`; карточка, страница управления и подсказка игрока обновляются через существующее чтение. Готовые архивы доступны для поздних результатов; незавершённые попытки отменяются с fencing worker-а. Каждая подготовка создаёт новый снимок при любом статусе/формате игры; пакет нормализуется в черновик без прогресса. Обновлены protobuf-клиенты, README и тестовые схемы.
- Проверено: `make generate`, `npm run proto:gen`, `go test ./...` с отдельным PostgreSQL на порту 55447, `go test -race ./internal/repos/game_exports_repo ./internal/services/game_export_service`, `npm run type-check`, `npm run lint`, `npm run lint:css`, `npm run build`, `git diff --check` — успешно. Миграция проверена вперёд/назад; откат с несовместимой историей готовых пакетов отказывает без потери данных. Diff вручную проверен по обоим стандартам; новые тесты используют публичные методы сервисов/репозиториев.
- Браузерный smoke Firefox с тестовым API: desktop/mobile, подтверждение/отмена, ошибка/повтор, блокировка кнопок, сохранение сброса после перезагрузки, новая подготовка для всех статусов игры и экспорта, список игр и обновление подсказки игрока поллингом, скрытие операций в venue — успешно. PostgreSQL-тесты подтверждают реальный импорт черновика, неизменность исходной игры, поздние результаты и конкуренцию сброса/замены/возврата.
- Не проверено: развёртывание и ручной сценарий на рабочей площадке. Перед запуском нового backend требуется миграция `20261017120000_release_game_exports.sql`. Commit/push не выполнялись.
### ED-046 — Подсказка игроку о локальной сети ### ED-046 — Подсказка игроку о локальной сети
- Статус: `DONE` - Статус: `DONE`
+1 -1
Submodule prod updated: c12448afc8...d21525efa4